refactor: structure docker-compose/ + scripts deploy.sh et setup.sh
CI / Lint & Format (push) Failing after 20s
CI / Tests (push) Has been skipped
CI / Security Scan (push) Failing after 9s
CI / Docker Build (push) Has been skipped

This commit is contained in:
2026-06-23 22:17:26 -04:00
parent a9c5a5900d
commit a626ab4981
7 changed files with 565 additions and 197 deletions
+7 -86
View File
@@ -1,86 +1,7 @@
# ═══════════════════════════════════════════════════════════════
# 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=/app/data/uploads
THUMBNAILS_DIR=/app/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
# Ce fichier est déprécié.
# Le template de configuration se trouve désormais dans :
# docker-compose/.env.example
#
# Pour déployer :
# 1. sudo ./scripts/setup.sh (une seule fois, prépare le serveur)
# 2. ./scripts/deploy.sh (déploiement ou mise à jour)