قالب ترکیبی
چند اپ و پایگاه داده با یک فایل YAML؛ متغیرها، اتصالها و تبدیل docker-compose.
«قالب ترکیبی» یک فایل YAML است که چند اپ و پایگاه داده مدیریتشده را با هم میسازد و به هم وصل میکند؛ مثل docker-compose، ولی با پایگاه دادههای پشتیباندار، دیسک دائمی و رمزهای تولیدشده. از پنل › اپهای آماده › قالب ترکیبی یکی از نمونههای گالری را بردارید یا قالب خودتان را بنویسید.
نمونه
name: docmost
databases:
- { id: main, engine: postgres, version: "16" }
- { id: cache, engine: redis, version: "7.4" }
apps:
- name: $APP_NAME
image: docmost/docmost:0.96.0
port: 3000
plan: app-small
disk: { size: 5, mount: /app/data/storage }
env:
APP_URL: $APP_URL
APP_SECRET: $RANDOM_STRING
DATABASE_URL: $DB_main_URL
REDIS_URL: $DB_cache_URLپایگاههای داده
| کلید | توضیح |
|---|---|
id | شناسه کوتاه (حرف کوچک و عدد، حداکثر ۱۶)؛ در متغیرها استفاده میشود |
engine | هر موتور مدیریتشده: postgres، mysql، mariadb، mongodb، redis، clickhouse… |
version | یکی از نسخههای همان موتور (خالی = جدیدترین) |
plan | پلن پایگاه داده (پیشفرض db-micro) |
نام هر پایگاه داده «نام پایه-id» است، مثل wiki-main.
اپها
| کلید | توضیح |
|---|---|
name | اپ اول $APP_NAME است (آدرس اصلی)؛ بقیه $APP_NAME-پسوند، مثل $APP_NAME-worker |
image | ایمیج عمومی؛ یا به جای آن git: { url, branch } |
stack و version | برای اپهای Git: پشته (laravel، nextjs…) و نسخه زبان |
port | پورتی که اپ روی آن گوش میدهد |
plan، instances | پلن اپ و تعداد نمونه |
start، build | دستور اجرا (جایگزین entrypoint ایمیج) و دستور بیلد |
health | مسیر سلامت، مثل /healthz |
disk | { size: 5, mount: /data } دیسک دائمی (فقط با یک نمونه) |
env | متغیرهای محیطی |
حداکثر ۶ اپ و ۴ پایگاه داده در هر قالب. anchorهای YAML (&env و *env) برای مشترک کردن متغیرها بین وب و worker پشتیبانی میشوند.
متغیرها
| متغیر | مقدار |
|---|---|
$APP_NAME | نام پایهای که هنگام ساخت وارد میکنید |
$APP_URL، $APP_HOST | نشانی HTTPS و نام میزبان اپ اول |
$RANDOM_STRING | رشته تصادفی ۶۴ نویسهای، در هر استفاده جدید |
$RANDOM_STRING_برچسب | یک مقدار تصادفی مشترک برای همه استفادههای همان برچسب (مثلاً کلید رمزنگاری مشترک وب و worker) |
$RANDOM_HEX، $RANDOM_BASE64 | ۳۲ رقم هگز، یا ۳۲ بایت تصادفی به base64 (مثل APP_KEY لاراول)؛ با _برچسب مشترک میشوند |
$DB_<id>_URL | نشانی اتصال پایگاه داده (postgresql://…، redis://…) |
$DB_<id>_HOST، _PORT، _USER، _PASSWORD، _NAME | اجزای اتصال، برای ایمیجهایی که نشانی کامل نمیپذیرند |
متغیرهای $DB_… باید کل مقدار باشند. این متغیرها بهصورت «اتصال» ذخیره میشوند، نه مقدار ثابت؛ پس با عوض شدن رمز پایگاه داده، اپها مقدار جدید را میگیرند.
تبدیل docker-compose
در ویرایشگر «از docker-compose» را بزنید و فایل را بچسبانید. سرویسهای postgres، mysql، mariadb، mongo و redis به پایگاه داده مدیریتشده، اولین سرویس دارای ports به اپ اصلی، اولین volume هر سرویس به دیسک دائمی و نشانیهایی مثل postgres://user:pass@db:5432/app به $DB_db_URL تبدیل میشوند. سرویسهای build را با git: جایگزین کنید.
هزینه
هزینه قالب، جمع هزینه اپها و پایگاههای داده آن است و پیش از ساخت در ویرایشگر نمایش داده میشود. هر منبع جداگانه در پنل مدیریت و حذف میشود.