decide in the repo what the server should not have to guess
فایلِ نمونهی قبلی هنوز چند جای خالی داشت که کسی باید پرشان میکرد، و دو بار همین باعثِ رفتوبرگشت شد. حالا فقط چیزهایی جای خالیاند که واقعاً فقط آن طرف میداند: کلیدهای سرویسهای بیرونی و نامِ سرویسِ systemd. بقیه از قبل تصمیم گرفته شدهاند و اگر فایل خالی هم باشد سرویس بالا میآید. حالتِ پیشفرض عمداً مرحلهی توسعه است (DEBUG=1) با ریسکهایش نوشته، نه پروداکشن — چون وضعیتِ امروزِ پروژه همین است و فایلی که وضعیتِ واقعی را توصیف نکند دوباره حدسزدنی میشود. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,38 +1,37 @@
|
||||
# نمونهی فایلِ .env برای سرور. یکبار پر میشود و بعد دیگر کاری با آن نیست.
|
||||
# نمونهی فایلِ .env برای سرور.
|
||||
#
|
||||
# بعد از پر کردن، هر آپدیت فقط این است:
|
||||
# cp .env.production.example .env
|
||||
#
|
||||
# تقریباً هیچ چیزی لازم نیست پر شود. هر چیزی که ما میتوانستیم از قبل تصمیم
|
||||
# بگیریم، در خودِ کد پیشفرض شده: دامنهها، origin های مجاز، کلیدِ امضا (اولین
|
||||
# اجرا خودش یک کلیدِ تصادفی میسازد و نگه میدارد). حتی اگر این فایل خالی
|
||||
# باشد سرویس بالا میآید.
|
||||
#
|
||||
# بعد از این، هر آپدیت فقط:
|
||||
# git pull && ./deploy.sh
|
||||
|
||||
# ─── اجباری ──────────────────────────────────────────────────────────────
|
||||
# دامنههایی که این سرویس روی آنها سرو میشود (با ویرگول جدا).
|
||||
DJANGO_ALLOWED_HOSTS=api.math.tadrisino2.ir
|
||||
|
||||
# ─── حالتِ پروداکشن ──────────────────────────────────────────────────────
|
||||
# DJANGO_DEBUG را ست نکنید (یا 0 بگذارید).
|
||||
# ─── مرحلهی توسعه (وضعیتِ فعلی) ─────────────────────────────────────────
|
||||
# با DEBUG=1 اپ راحتتر بالا میآید و خطاها کامل دیده میشوند.
|
||||
#
|
||||
# ⚠️ با DJANGO_DEBUG=1 روی یک سرورِ عمومی:
|
||||
# ⚠️ ولی روی یک سرورِ عمومی این دو ریسک را بپذیرید:
|
||||
# • صفحههای خطا کلِ تنظیمات و traceback را نشان میدهند
|
||||
# • کدِ ورودِ آزمایشیِ 0000 برای هر شمارهای پذیرفته میشود،
|
||||
# یعنی هر کسی میتواند بهجای هر کاربری وارد شود
|
||||
DJANGO_DEBUG=0
|
||||
#
|
||||
# تا وقتی کاربرِ واقعی ندارید اشکالی ندارد. قبل از اولین کاربرِ واقعی
|
||||
# حتماً 0 کنید.
|
||||
DJANGO_DEBUG=1
|
||||
|
||||
# با DEBUG خاموش این دو اجباریاند:
|
||||
DJANGO_SECRET_KEY=
|
||||
# یک رشتهی تصادفیِ بلند. ساختنش:
|
||||
# python -c "import secrets; print(secrets.token_urlsafe(64))"
|
||||
|
||||
CACHE_URL=redis://127.0.0.1:6379/1
|
||||
# بدونِ کشِ مشترک، محدودیتِ نرخ بینِ workerهای gunicorn مشترک نیست.
|
||||
# ─── ریاستارتِ خودکار ───────────────────────────────────────────────────
|
||||
# نامِ سرویسِ systemd. فقط شما میدانید چیست؛ یکبار پر کنید تا deploy.sh
|
||||
# دیگر خودش ریاستارت کند و لازم نباشد دستی بزنید.
|
||||
# TADRISINO_SERVICE=
|
||||
|
||||
# دامنههایی که فرم/ادمین از آنها POST میکند
|
||||
CSRF_TRUSTED_ORIGINS=https://api.math.tadrisino2.ir
|
||||
|
||||
# ─── اختیاری ─────────────────────────────────────────────────────────────
|
||||
# origin های فرانت. اگر خالی باشد از فهرستِ پیشفرضِ داخلِ کد استفاده میشود
|
||||
# که https://math.tadrisino2.ir را شامل است — معمولاً لازم نیست ست شود.
|
||||
# CORS_ALLOWED_ORIGINS=https://math.tadrisino2.ir
|
||||
|
||||
# کلیدهای سرویسهای بیرونی
|
||||
# ─── کلیدهای سرویسهای بیرونی ────────────────────────────────────────────
|
||||
# بدونِ اینها اپ بالا میآید ولی دستیارِ هوش مصنوعی و پیامک کار نمیکنند.
|
||||
OPENAI_API_KEY=
|
||||
OPENAI_BASE_URL=https://api.gapgpt.app/v1
|
||||
QDRANT_URL=https://qdrant.tadrisino2.ir:443
|
||||
@@ -40,5 +39,17 @@ QDRANT_API_KEY=
|
||||
KAVENEGAR_API_KEY=
|
||||
KAVENEGAR_SENDER=
|
||||
|
||||
# نامِ سرویسِ systemd تا deploy.sh خودش ریاستارت کند
|
||||
# TADRISINO_SERVICE=tadrisino
|
||||
|
||||
# ─── وقتی به پروداکشنِ واقعی رسیدید ──────────────────────────────────────
|
||||
# اینها را آن موقع باز کنید، الان لازم نیستند:
|
||||
#
|
||||
# DJANGO_DEBUG=0
|
||||
# CACHE_URL=redis://127.0.0.1:6379/1
|
||||
# بدونِ Redis سرویس بالا میآید ولی محدودیتِ نرخ بینِ workerها مشترک
|
||||
# نیست؛ /api/health همین را هشدار میدهد.
|
||||
#
|
||||
# اینها پیشفرضِ درست دارند و فقط اگر دامنه عوض شد لازم میشوند:
|
||||
# DJANGO_ALLOWED_HOSTS=api.math.tadrisino2.ir,math.tadrisino2.ir
|
||||
# CSRF_TRUSTED_ORIGINS=https://api.math.tadrisino2.ir
|
||||
# CORS_ALLOWED_ORIGINS=https://math.tadrisino2.ir
|
||||
# DJANGO_SECRET_KEY=
|
||||
|
||||
Reference in New Issue
Block a user