رفتن به محتوای اصلی

قالب ترکیبی

چند اپ و پایگاه داده با یک فایل 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: جایگزین کنید.

هزینه

هزینه قالب، جمع هزینه اپ‌ها و پایگاه‌های داده آن است و پیش از ساخت در ویرایشگر نمایش داده می‌شود. هر منبع جداگانه در پنل مدیریت و حذف می‌شود.