نصب و راه‌اندازی

در این راهنما ویترو بلاگ را با Docker Compose روی سرور نصب می‌کنیم. می‌توانید مراحل را برای روش‌هایی مانند Kubernetes نیز تطبیق دهید.

پیش‌نیازها

سرور: سرور Linux با دست‌کم ۱ گیگابایت RAM و یک هستهٔ پردازنده.

Docker: طبق راهنمای رسمی نصب کنید.

فراهم‌کنندهٔ OpenID Connect (OIDC): احراز هویت ویترو بلاگ بر پایهٔ OIDC است. در فراهم‌کنندهٔ خود یک برنامه بسازید و نشانی صادرکننده، شناسه و رمز محرمانهٔ کلاینت را دریافت کنید. سپس این نشانی‌ها را مجاز کنید:

  • نشانی بازگشت: https://<your-app-domain>/api/oidc/callback
  • نشانی خروج: https://<your-app-domain>

دامنه: دامنهٔ نمونهٔ ویترو بلاگ شما که «دامنهٔ برنامه» نامیده می‌شود.

دامنهٔ برنامه
ویترو بلاگ می‌تواند چند دامنه را در یک نصب مدیریت کند (دامنه‌های اختصاصی وبلاگ‌ها). **دامنهٔ برنامه** میزبان پنل و API اصلی است؛ دامنه‌های دیگر دامنه‌های اختصاصی به‌شمار می‌روند.

تنظیم DNS

دامنهٔ برنامه را به نشانی IP سرور وصل کنید:

نوع
میزبان
مقدار
A
blogs.example.com
123.123.123.123

اگر ویترو بلاگ را پشت پراکسی معکوس اجرا می‌کنید، راهنمای پراکسی معکوس را ببینید.

نصب

بستهٔ استقرار را از مدیر سرویس دریافت و استخراج کنید؛ سپس وارد پوشهٔ deploy شوید.

بسته شامل دو فایل است:

deploy/
   compose.yaml
   .env

پیکربندی

فایل .env را ویرایش و مقادیر لازم را وارد کنید:

  • APP_SECRET: رشته‌ای تصادفی و قوی؛ با دستور زیر بسازید:
    openssl rand -base64 32
  • POSTGRES_PASSWORD: گذرواژهٔ امن و سازگار با URL برای پایگاه دادهٔ Postgres:
    openssl rand -base64 32 | tr '+/' '-_' | tr -d '='
  • DOMAIN_APP: دامنهٔ اصلی نمونه، مانند blogs.example.com؛ پنل و APIها در این دامنه‌اند.
  • OIDC_ISSUER_URL، OIDC_CLIENT_ID، OIDC_CLIENT_SECRET: مقادیر برنامهٔ OIDC.

فهرست کامل متغیرها در راهنمای متغیرهای محیطی است.

حالت TLS

TLS_MODE نحوهٔ مدیریت HTTPS برای دامنهٔ برنامه (DOMAIN_APP) را تعیین می‌کند و روی دامنه‌های اختصاصی وبلاگ‌ها اثری ندارد؛ برای آن‌ها گواهی TLS خودکار صادر می‌شود.

حالت
رفتار
auto
پیش‌فرض؛ Caddy گواهی Let's Encrypt را می‌گیرد و تمدید می‌کند. دامنه باید عمومی باشد و درگاه‌های ۸۰ و ۴۴۳ از اینترنت در دسترس باشند.
external
برای پراکسی جلویی مانند Nginx یا Traefik که TLS را خاتمه می‌دهد. کانتینر فقط HTTP می‌گیرد و درگاه ۸۰ کافی است. پراکسی باید سرآیندهای X-Forwarded-Proto: https و X-Forwarded-For را بفرستد و IP آن در TRUSTED_PROXIES باشد.
manual
گواهی و کلید خود را در مسیرهای /certs/cert.pem و /certs/key.pem کانتینر قرار دهید.
disabled
TLS و انتقال خودکار به HTTPS خاموش می‌شود و پیوندها با http:// ساخته می‌شوند. فقط در شبکهٔ داخلی مورداعتماد استفاده کنید.

اجرا

docker compose up -d

ویترو بلاگ اجرا می‌شود و در اولین راه‌اندازی، مهاجرت‌های پایگاه داده را خودکار انجام می‌دهد.

برای دیدن گزارش‌ها:

docker compose logs -f blogs

برای بررسی پیکربندی:

docker compose exec blogs bin/console app:verify

به‌روزرسانی

نسخهٔ تصویر را در compose.yaml تغییر دهید:

services:
  blogs:
    image: hyvor/blogs:<version>

سپس اجرا کنید:

docker compose up -d

مهاجرت‌های پایگاه داده هنگام اجرا خودکار اعمال می‌شوند.