fix: complete .env.production with all provider ENABLED flags
Some checks failed
Deploy to Homelab / Deploy Wordly to 192.168.1.151 (push) Has been cancelled
Deploy to Homelab / Deploy Monitoring (if configured) (push) Has been cancelled

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-10 12:57:41 +02:00
parent 7e97bbd07b
commit 90efc7c0f8

View File

@@ -1,86 +1,94 @@
# ============================================ # ============================================
# Document Translation API - Production Environment # Wordly.art - .env de production
# ============================================
# Copier ce fichier en .env sur le serveur
# cp .env.production .env
# Puis remplacer les valeurs [A CHANGER]
# ============================================ # ============================================
# IMPORTANT: Review and update all values before deployment
# =========================================== # ---- Application ----
# Application Settings APP_NAME=Wordly
# ===========================================
APP_NAME=Document Translation API
APP_ENV=production APP_ENV=production
DEBUG=false DEBUG=false
LOG_LEVEL=INFO LOG_LEVEL=INFO
# =========================================== # ---- Domaine ----
# Server Configuration DOMAIN=wordly.art
# =========================================== NEXT_PUBLIC_API_URL=https://wordly.art
HTTP_PORT=80
HTTPS_PORT=443
BACKEND_PORT=8000 BACKEND_PORT=8000
FRONTEND_PORT=3000 FRONTEND_PORT=3000
# =========================================== # ---- Service de traduction par defaut ----
# Domain Configuration # Choisir: google, ollama, deepseek, minimax, deepl, openai, openrouter
# =========================================== TRANSLATION_SERVICE=google
DOMAIN=translate.yourdomain.com
NEXT_PUBLIC_API_URL=https://translate.yourdomain.com
# =========================================== # ---- Google (gratuit, toujours actif) ----
# Translation Service Configuration GOOGLE_TRANSLATE_ENABLED=true
# ===========================================
TRANSLATION_SERVICE=ollama # ---- Ollama (local, gratuit) ----
OLLAMA_ENABLED=false
OLLAMA_BASE_URL=http://ollama:11434 OLLAMA_BASE_URL=http://ollama:11434
OLLAMA_MODEL=llama3 OLLAMA_MODEL=llama3
# DeepL API (optional) # ---- DeepSeek ----
DEEPSEEK_ENABLED=false
DEEPSEEK_API_KEY=
DEEPSEEK_MODEL=deepseek-chat
DEEPSEEK_BASE_URL=https://api.deepseek.com/v1
# ---- Minimax ----
MINIMAX_ENABLED=false
MINIMAX_API_KEY=
MINIMAX_MODEL=MiniMax-M1
MINIMAX_BASE_URL=https://api.minimax.chat/v1
# ---- DeepL ----
DEEPL_ENABLED=false
DEEPL_API_KEY= DEEPL_API_KEY=
# OpenAI API (optional) # ---- OpenAI ----
OPENAI_ENABLED=false
OPENAI_API_KEY= OPENAI_API_KEY=
OPENAI_MODEL=gpt-4o-mini OPENAI_MODEL=gpt-4o-mini
OPENAI_BASE_URL=https://api.openai.com/v1
# =========================================== # ---- OpenRouter ----
# File Upload Settings OPENROUTER_ENABLED=false
# =========================================== OPENROUTER_API_KEY=
OPENROUTER_MODEL=deepseek/deepseek-chat
# ---- Upload ----
MAX_FILE_SIZE_MB=50 MAX_FILE_SIZE_MB=50
ALLOWED_EXTENSIONS=.docx,.xlsx,.pptx ALLOWED_EXTENSIONS=.docx,.xlsx,.pptx
# =========================================== # ---- Rate Limiting ----
# Rate Limiting
# ===========================================
RATE_LIMIT_ENABLED=true RATE_LIMIT_ENABLED=true
RATE_LIMIT_REQUESTS_PER_MINUTE=60 RATE_LIMIT_REQUESTS_PER_MINUTE=60
RATE_LIMIT_TRANSLATIONS_PER_MINUTE=10 RATE_LIMIT_TRANSLATIONS_PER_MINUTE=10
RATE_LIMIT_TRANSLATIONS_PER_HOUR=100 RATE_LIMIT_TRANSLATIONS_PER_HOUR=100
RATE_LIMIT_TRANSLATIONS_PER_DAY=500 RATE_LIMIT_TRANSLATIONS_PER_DAY=500
# =========================================== # ---- Admin ----
# Security (CHANGE THESE!)
# ===========================================
ADMIN_USERNAME=admin ADMIN_USERNAME=admin
ADMIN_PASSWORD_HASH=CHANGE_WITH_BCRYPT_HASH
# Use bcrypt hash — NEVER store plaintext password in production # ---- Secrets (deja generes) ----
# Generate with: python -c "from passlib.context import CryptContext; print(CryptContext(schemes=['bcrypt']).hash('YOUR_PASSWORD'))" JWT_SECRET_KEY=84-MniOv3rOZZ3FczwDvsNNHqZRf8yKI06uMNQGAgMSV8yAJ19comNe6FHHcnVyeNm-fvDxlcb9CWe40y4oy7A
ADMIN_PASSWORD_HASH= ADMIN_TOKEN_SECRET=1301880be1bc8026676d7f4fb13ae1c70fcd2abbd2f2cdfcb044eea5c7005ce3
CORS_ORIGINS=https://wordly.art
# JWT secret key — REQUIRED, generates random key at startup if not set (breaks auth on restart) # ---- Database ----
# Generate with: python -c "import secrets; print(secrets.token_urlsafe(64))" POSTGRES_USER=translate
JWT_SECRET_KEY= POSTGRES_PASSWORD=yLLgkEvt6mvzGDdoqtQvI1vEgMmR-W75ZTPW5StaIAU
POSTGRES_DB=translate_db
# Admin token secret — REQUIRED, generates random key at startup if not set (breaks admin sessions on restart) # ---- Monitoring ----
# Generate with: python -c "import secrets; print(secrets.token_hex(32))"
ADMIN_TOKEN_SECRET=
# CORS Configuration
CORS_ORIGINS=https://translate.yourdomain.com
# ===========================================
# Monitoring (Optional)
# ===========================================
GRAFANA_USER=admin GRAFANA_USER=admin
GRAFANA_PASSWORD=CHANGE_THIS_TOO GRAFANA_PASSWORD=WordlyGrafana2026!
# =========================================== # ---- Stripe ----
# SSL Configuration STRIPE_SECRET_KEY=
# =========================================== STRIPE_WEBHOOK_SECRET=
LETSENCRYPT_EMAIL=admin@yourdomain.com STRIPE_STARTER_PRICE_ID=
STRIPE_PRO_PRICE_ID=
STRIPE_BUSINESS_PRICE_ID=