diff --git a/.env.example b/.env.example index 6a0dd9a..8eb85fb 100644 --- a/.env.example +++ b/.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 + +# این سه پیش‌فرضِ درست دارند (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_ALLOWED_HOSTS=localhost,127.0.0.1 -CSRF_TRUSTED_ORIGINS= + +# بدونِ Redis سرویس بالا می‌آید ولی محدودیتِ نرخ بینِ workerها مشترک نیست؛ +# /api/health همین را هشدار می‌دهد. برای پروداکشنِ واقعی پرش کنید. CACHE_URL= +# نامِ سرویسِ systemd تا deploy.sh خودش ری‌استارت کند (فقط روی سرور). +# TADRISINO_SERVICE= + # اختیاری — بدونش OTP واقعی ارسال نمی‌شه (فقط خطای صریح ۵۰۳ برمی‌گرده، # طبق رفتارِ موجودِ accounts/services.py) KAVENEGAR_API_KEY= diff --git a/.env.production.example b/.env.production.example deleted file mode 100644 index 762f7f9..0000000 --- a/.env.production.example +++ /dev/null @@ -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= diff --git a/deploy.sh b/deploy.sh index 0b84001..81497fd 100755 --- a/deploy.sh +++ b/deploy.sh @@ -84,7 +84,7 @@ if missing: for name, why in missing: print(f' {name:24} {why}') print() - print(' در فایلِ .env سرور اضافه‌شان کنید (نمونه: .env.production.example).') + print(' در فایلِ .env سرور اضافه‌شان کنید (نمونه: .env.example).') sys.exit(1) if debug: