keep one env example instead of two
دو فایلِ نمونه یعنی دو جا که باید همزمان بهروز بمانند، و همان چیزی بود که قبلاً باعث شد نمونه عقب بماند و کسی که سرور را بالا میآورد نداند چه بنویسد. حالا یک فایل، هم برای ماشینِ محلی هم برای سرور. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
43
.env.example
43
.env.example
@@ -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=
|
||||||
|
|||||||
@@ -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=
|
|
||||||
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user