Upgrade configuration and Docker stack to v2.0.0

This commit is contained in:
2026-06-22 14:49:56 -04:00
parent 2f2a5e9b4a
commit 0d2ecbd218
19 changed files with 779 additions and 495 deletions
+58 -80
View File
@@ -1,106 +1,84 @@
version: '3.9'
services:
# ── Portail Admin (React + Nginx) ──────────────────────────
admin:
build:
context: ./imago-admin
args:
VITE_API_BASE_URL: ""
ports:
- "3000:3000"
depends_on:
backend:
condition: service_healthy
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000"]
interval: 30s
timeout: 5s
retries: 3
# ── Backend Imago Hub (FastAPI + Uvicorn) ──────────────────
backend:
build: .
ports:
- "8000:8000"
volumes:
- ./data:/app/data
env_file:
- .env
environment:
- DATABASE_URL=postgresql+asyncpg://imago:imago@db:5432/imago
- REDIS_URL=redis://redis:6379/0
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
db:
postgres:
image: postgres:16-alpine
environment:
POSTGRES_USER: imago
POSTGRES_PASSWORD: imago
POSTGRES_DB: imago
ports:
- '5432:5432'
volumes:
- postgres_data:/var/lib/postgresql/data
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U imago -d imago"]
test: ['CMD-SHELL', 'pg_isready -U imago']
interval: 5s
timeout: 5s
retries: 5
restart: unless-stopped
redis:
image: redis:7-alpine
ports:
- "6379:6379"
- '6379:6379'
volumes:
- redis_data:/data
command: redis-server --appendonly yes
restart: unless-stopped
- redisdata:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
test: ['CMD', 'redis-cli', 'ping']
interval: 5s
timeout: 5s
retries: 3
worker:
build: .
command: python worker.py
volumes:
- ./data:/app/data
env_file:
- .env
environment:
- DATABASE_URL=postgresql+asyncpg://imago:imago@db:5432/imago
- REDIS_URL=redis://redis:6379/0
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
restart: unless-stopped
retries: 5
minio:
image: minio/minio
ports:
- "9000:9000"
- "9001:9001"
image: minio/minio:latest
command: server /data --console-address ':9001'
environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin
command: server /data --console-address ":9001"
ports:
- '9000:9000'
- '9001:9001'
volumes:
- minio_data:/data
restart: unless-stopped
- miniodata:/data
healthcheck:
test: ['CMD', 'mc', 'ready', 'local']
interval: 5s
timeout: 5s
retries: 5
api:
build: .
ports:
- '8000:8000'
environment:
- DATABASE_URL=postgresql+asyncpg://imago:imago@postgres:5432/imago
- REDIS_URL=redis://redis:6379/0
- STORAGE_BACKEND=s3
- S3_BUCKET=imago
- S3_ENDPOINT_URL=http://minio:9000
- S3_ENDPOINT_PUBLIC=http://localhost:9000
- S3_ACCESS_KEY=minioadmin
- S3_SECRET_KEY=minioadmin
- S3_REGION=us-east-1
- SIGNED_URL_SECRET=dev-secret-change-in-prod
- SECRET_KEY=dev-secret-change-in-prod
- TESSERACT_CMD=/usr/bin/tesseract
- GEMINI_API_KEY=${GEMINI_API_KEY:-}
- OPENROUTER_API_KEY=${OPENROUTER_API_KEY:-}
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
minio:
condition: service_healthy
volumes:
- uploads:/app/data/uploads
- thumbnails:/app/data/thumbnails
volumes:
postgres_data:
redis_data:
minio_data:
pgdata:
redisdata:
miniodata:
uploads:
thumbnails: