# کپی کنید: cp .env.example .env — و همه مقادیر change-me را عوض کنید. # راه ساده‌تر: bash scripts/gen-env.sh — همهٔ رمزها را تصادفی و قوی می‌سازد. # docker compose به‌طور خودکار این فایل را می‌خواند؛ بدون آن استک بالا نمی‌آید. # --- رمزهای اصلی (اجباری) --- # تولید کلید تصادفی: python -c "import secrets; print(secrets.token_urlsafe(48))" SECRET_KEY=change-me-to-a-long-random-string POSTGRES_PASSWORD=change-me-db-password MINIO_ROOT_USER=aramesh MINIO_ROOT_PASSWORD=change-me-minio-password ADMIN_USERNAME=admin ADMIN_PASSWORD=change-me-admin-password # --- اختیاری --- # پورت ورود Traefik در توسعه (پیش‌فرض 5173) TRAEFIK_HTTP_PORT=5173 # نشانی عمومی سایت برای sitemap و آدرس مطلق OG — در تولید مثل https://aramesh.example # در تولید این مقدار هم پایهٔ پروب بیرون‌نگر مانیتورینگ است. SITE_URL= # آدرس‌های مجاز CORS (لیست JSON) — پیش‌فرض فقط لوکال‌هاست # CORS_ORIGINS=["http://localhost:5173"] # --- بیلد فرانت‌اند (در زمان npm run build روی هاست خوانده می‌شود — stack.sh پاس می‌دهد) --- # اگر API روی مبدأ دیگری است (مثل توسعه ویندوز با پورت 19001) تنظیم کنید؛ هم‌مبدأ یعنی خالی VITE_API_URL= # اسکریپت ردیاب Umami — خالی یعنی آنالیتیکس خاموش؛ در تولید مثل: # VITE_UMAMI_SRC=https://analytics.aramesh.example/script.js VITE_UMAMI_SRC= # شناسهٔ وب‌سایت از داشبورد Umami (اولین بار: وب‌سایت را در analytics.localhost بسازید) VITE_UMAMI_WEBSITE_ID= # --- چت‌بات (دستیار هوشمند) --- # LLM سازگار با OpenAI — اجباری برای پاسخ‌گویی چت‌بات؛ خالی یعنی سرویس بالا می‌آید اما پاسخ نمی‌دهد LLM_BASE_URL= LLM_API_KEY= LLM_MODEL=openai/gpt-oss-120b # توکن محافظت از POST /chat/reindex — خالی یعنی فقط از شبکه داخلی CHAT_REINDEX_TOKEN= # --- مانیتورینگ (docker-compose.monitoring.yml) --- GRAFANA_ADMIN_USER=admin GRAFANA_ADMIN_PASSWORD=change-me-grafana-password # هشدارها به بله — توکن بات (همان شکل تلگرام؛ از BotFather بله) و شناسه چت/گروه # شناسه چت: به بات یک پیام بدهید سپس: # curl "https://tapi.bale.ai/bot<توکن>/getUpdates" ALERT_BOT_TOKEN= ALERT_CHAT_ID=0 # --- عملیات --- # نگهداری پشتیبان‌های شبانه (روز) — scripts/backup.sh RETENTION_DAYS=14 # انتشار پشتیبان خارج از سرور (rclone remote مثل storage:aramesh-backups) — خالی یعنی خاموش OFFSITE_RCLONE_REMOTE= # --- فقط برای docker-compose.prod.yml (حالت تولید با TLS) --- # DOMAIN=aramesh.example # ACME_EMAIL=admin@aramesh.example