keep one env example instead of two

دو فایلِ نمونه یعنی دو جا که باید هم‌زمان به‌روز بمانند، و همان چیزی بود که
قبلاً باعث شد نمونه عقب بماند و کسی که سرور را بالا می‌آورد نداند چه بنویسد.
حالا یک فایل، هم برای ماشینِ محلی هم برای سرور.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-13 21:15:42 +03:30
parent 3e31fea42e
commit e5d2427560
3 changed files with 35 additions and 65 deletions

View File

@@ -1,18 +1,43 @@
# این فایل نمونه‌ست؛ در صورتِ نیاز کپی کنید به .env و مقداردهی کنید: # نمونه‌ی فایلِ تنظیمات — هم برای ماشینِ خودتان، هم برای سرور.
# cp .env.example .env
# #
# اگه .env نسازید، docker-compose.yml از همین مقادیرِ دیفالتِ پایین # cp .env.example .env
# استفاده می‌کنه (که برای اجرای محلی/دِمو کافیه، نه برای پروداکشن). #
# تقریباً هیچ‌کدام اجباری نیستند. هر چیزی که از قبل قابلِ تصمیم بود در خودِ
# کد پیش‌فرض شده: دامنه‌ها، origin های مجاز، و کلیدِ امضا (اولین اجرا خودش
# یک کلیدِ تصادفی می‌سازد و در .django_secret_key نگه می‌دارد). حتی با یک
# فایلِ خالی هم سرویس بالا می‌آید.
#
# روی سرور، بعد از یک‌بار ساختنِ این فایل، هر آپدیت فقط:
# git pull && ./deploy.sh
# DEBUG=1 یعنی SECRET_KEY و CACHE_URL دیفالتِ dev دارن و DEV_MASTER_OTP # -----------------------------------------------------------------------
# (کدِ 0000) فعاله؛ برای شبیه‌سازیِ پروداکشن این رو 0 کنید (اون‌وقت # پایه
# DJANGO_SECRET_KEY و CACHE_URL رو هم باید صریحاً بدید). # -----------------------------------------------------------------------
# DEBUG=1 حالتِ توسعه است: خطاها کامل دیده می‌شوند و اپ راحت‌تر بالا می‌آید.
#
# ⚠️ روی سرورِ عمومی دو ریسک دارد:
# • صفحه‌های خطا کلِ تنظیمات و traceback را نشان می‌دهند
# • کدِ ورودِ آزمایشیِ 0000 برای هر شماره‌ای پذیرفته می‌شود، یعنی هر
# کسی می‌تواند به‌جای هر کاربری وارد شود
# تا وقتی کاربرِ واقعی ندارید اشکالی ندارد؛ قبل از اولین کاربرِ واقعی 0 کنید.
DJANGO_DEBUG=1 DJANGO_DEBUG=1
# این سه پیش‌فرضِ درست دارند (api.math.tadrisino2.ir و math.tadrisino2.ir)
# و فقط اگر دامنه عوض شد لازم می‌شوند.
# DJANGO_ALLOWED_HOSTS=localhost,127.0.0.1
# CSRF_TRUSTED_ORIGINS=
# CORS_ALLOWED_ORIGINS=
# خالی بگذارید تا خودش ساخته و ذخیره شود.
DJANGO_SECRET_KEY= DJANGO_SECRET_KEY=
DJANGO_ALLOWED_HOSTS=localhost,127.0.0.1
CSRF_TRUSTED_ORIGINS= # بدونِ Redis سرویس بالا می‌آید ولی محدودیتِ نرخ بینِ workerها مشترک نیست؛
# /api/health همین را هشدار می‌دهد. برای پروداکشنِ واقعی پرش کنید.
CACHE_URL= CACHE_URL=
# نامِ سرویسِ systemd تا deploy.sh خودش ری‌استارت کند (فقط روی سرور).
# TADRISINO_SERVICE=
# اختیاری — بدونش OTP واقعی ارسال نمی‌شه (فقط خطای صریح ۵۰۳ برمی‌گرده، # اختیاری — بدونش OTP واقعی ارسال نمی‌شه (فقط خطای صریح ۵۰۳ برمی‌گرده،
# طبق رفتارِ موجودِ accounts/services.py) # طبق رفتارِ موجودِ accounts/services.py)
KAVENEGAR_API_KEY= KAVENEGAR_API_KEY=

View File

@@ -1,55 +0,0 @@
# نمونه‌ی فایلِ .env برای سرور.
#
# cp .env.production.example .env
#
# تقریباً هیچ چیزی لازم نیست پر شود. هر چیزی که ما می‌توانستیم از قبل تصمیم
# بگیریم، در خودِ کد پیش‌فرض شده: دامنه‌ها، origin های مجاز، کلیدِ امضا (اولین
# اجرا خودش یک کلیدِ تصادفی می‌سازد و نگه می‌دارد). حتی اگر این فایل خالی
# باشد سرویس بالا می‌آید.
#
# بعد از این، هر آپدیت فقط:
# git pull && ./deploy.sh
# ─── مرحله‌ی توسعه (وضعیتِ فعلی) ─────────────────────────────────────────
# با DEBUG=1 اپ راحت‌تر بالا می‌آید و خطاها کامل دیده می‌شوند.
#
# ⚠️ ولی روی یک سرورِ عمومی این دو ریسک را بپذیرید:
# • صفحه‌های خطا کلِ تنظیمات و traceback را نشان می‌دهند
# • کدِ ورودِ آزمایشیِ 0000 برای هر شماره‌ای پذیرفته می‌شود،
# یعنی هر کسی می‌تواند به‌جای هر کاربری وارد شود
#
# تا وقتی کاربرِ واقعی ندارید اشکالی ندارد. قبل از اولین کاربرِ واقعی
# حتماً 0 کنید.
DJANGO_DEBUG=1
# ─── ری‌استارتِ خودکار ───────────────────────────────────────────────────
# نامِ سرویسِ systemd. فقط شما می‌دانید چیست؛ یک‌بار پر کنید تا deploy.sh
# دیگر خودش ری‌استارت کند و لازم نباشد دستی بزنید.
# TADRISINO_SERVICE=
# ─── کلیدهای سرویس‌های بیرونی ────────────────────────────────────────────
# بدونِ این‌ها اپ بالا می‌آید ولی دستیارِ هوش مصنوعی و پیامک کار نمی‌کنند.
OPENAI_API_KEY=
OPENAI_BASE_URL=https://api.gapgpt.app/v1
QDRANT_URL=https://qdrant.tadrisino2.ir:443
QDRANT_API_KEY=
KAVENEGAR_API_KEY=
KAVENEGAR_SENDER=
# ─── وقتی به پروداکشنِ واقعی رسیدید ──────────────────────────────────────
# این‌ها را آن موقع باز کنید، الان لازم نیستند:
#
# 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=

View File

@@ -84,7 +84,7 @@ if missing:
for name, why in missing: for name, why in missing:
print(f' {name:24} {why}') print(f' {name:24} {why}')
print() print()
print(' در فایلِ .env سرور اضافه‌شان کنید (نمونه: .env.production.example).') print(' در فایلِ .env سرور اضافه‌شان کنید (نمونه: .env.example).')
sys.exit(1) sys.exit(1)
if debug: if debug: