Remove hardcoded S3 settings and dev-specific defaults from production docker-compose, use .env instead of .env.production, and comment out development-only values in .env.example
87 lines
3.8 KiB
Bash
87 lines
3.8 KiB
Bash
# ═══════════════════════════════════════════════════════════════
|
|
# Imago — Configuration
|
|
# ═══════════════════════════════════════════════════════════════
|
|
# Copiez ce fichier en .env et ajustez les valeurs.
|
|
# cp .env.example .env
|
|
|
|
# ── Application ──────────────────────────────────────────────
|
|
APP_NAME=Imago
|
|
APP_VERSION=2.0.0
|
|
DEBUG=false
|
|
SECRET_KEY=changez-moi-par-une-valeur-longue-et-aleatoire
|
|
|
|
# ── Serveur (pour dev seulement) ──────────────────────────────
|
|
# HOST=0.0.0.0
|
|
# PORT=8000
|
|
|
|
# ── Base de données ──────────────────────────────────────────
|
|
# SQLite (dev): sqlite+aiosqlite:///./data/imago.db
|
|
PostgreSQL: postgresql+asyncpg://user:pass@host:5432/imago
|
|
# DATABASE_URL=sqlite+aiosqlite:///./data/imago.db
|
|
|
|
# ── Stockage ─────────────────────────────────────────────────
|
|
# local (fichiers sur disque) ou s3 (MinIO / AWS S3 / Cloudflare R2)
|
|
STORAGE_BACKEND=local
|
|
UPLOAD_DIR=./data/uploads
|
|
THUMBNAILS_DIR=./data/thumbnails
|
|
MAX_UPLOAD_SIZE_MB=50
|
|
SIGNED_URL_SECRET=changez-moi-en-prod
|
|
|
|
# ── Stockage S3 (si STORAGE_BACKEND=s3) ──────────────────────
|
|
S3_BUCKET=imago
|
|
S3_PREFIX=
|
|
S3_REGION=us-east-1
|
|
S3_ENDPOINT_URL=http://localhost:9000
|
|
S3_ENDPOINT_PUBLIC=http://localhost:9000
|
|
S3_ACCESS_KEY=minioadmin
|
|
S3_SECRET_KEY=minioadmin
|
|
SIGNED_URL_SECRET=changez-moi-en-prod
|
|
|
|
# ── AI ───────────────────────────────────────────────────────
|
|
AI_ENABLED=true
|
|
AI_PROVIDER=openrouter
|
|
|
|
# Google Gemini
|
|
GEMINI_API_KEY=
|
|
GEMINI_MODEL=gemini-3.1-pro-preview
|
|
GEMINI_MAX_TOKENS=1024
|
|
|
|
# OpenRouter
|
|
OPENROUTER_API_KEY=
|
|
OPENROUTER_MODEL=qwen/qwen2.5-vl-72b-instruct
|
|
|
|
# AI Comportement
|
|
AI_TAGS_MIN=5
|
|
AI_TAGS_MAX=10
|
|
AI_DESCRIPTION_LANGUAGE=francais
|
|
AI_CACHE_DAYS=30
|
|
AI_REQUEST_TIMEOUT=60
|
|
AI_MAX_RETRIES=2
|
|
|
|
# ── OCR ──────────────────────────────────────────────────────
|
|
OCR_ENABLED=true
|
|
TESSERACT_CMD=/usr/bin/tesseract
|
|
OCR_LANGUAGES=fra+eng
|
|
|
|
# ── CORS ─────────────────────────────────────────────────────
|
|
# Format JSON : ["http://localhost:3000", "http://localhost:5173"]
|
|
CORS_ORIGINS=["http://localhost:3000", "http://localhost:5173"]
|
|
|
|
# ── Authentification ─────────────────────────────────────────
|
|
ADMIN_API_KEY=
|
|
JWT_SECRET_KEY=changez-moi-jwt-secret
|
|
JWT_ALGORITHM=HS256
|
|
|
|
# ── Rate Limiting ────────────────────────────────────────────
|
|
RATE_LIMIT_FREE_UPLOAD=20
|
|
RATE_LIMIT_FREE_AI=50
|
|
RATE_LIMIT_STANDARD_UPLOAD=100
|
|
RATE_LIMIT_STANDARD_AI=200
|
|
RATE_LIMIT_PREMIUM_UPLOAD=500
|
|
RATE_LIMIT_PREMIUM_AI=1000
|
|
# Redis pour persistence des compteurs (optionnel, mémoire par défaut)
|
|
# Format: redis://host:***@RATE_LIMIT_STORAGE_URL=
|
|
|
|
# ── Redis + ARQ Worker ───────────────────────────────────────
|
|
REDIS_URL=redis://localhost:***@PIPELINE_TIMEOUT=300
|