version: '3.8' services: # Base de données PostgreSQL postgres: image: postgres:16-alpine container_name: socialflow-db restart: unless-stopped ports: - "4523:4523" environment: POSTGRES_DB: ${PGDATABASE:-socialflow} POSTGRES_USER: ${PGUSER:-socialflow} POSTGRES_PASSWORD: ${PGPASSWORD:-changeme} PGPORT: 4523 volumes: - postgres_data:/var/lib/postgresql/data networks: - internal - nginx_default healthcheck: test: [ "CMD-SHELL", "pg_isready -U ${PGUSER:-socialflow}" ] interval: 10s timeout: 5s retries: 5 # Application Social Flow app: build: context: . dockerfile: Dockerfile container_name: socialflow-app restart: unless-stopped environment: NODE_ENV: production PORT: 5555 DATABASE_URL: postgresql://${PGUSER:-socialflow}:${PGPASSWORD:-changeme}@postgres:4523/${PGDATABASE:-socialflow} OPENROUTER_API_KEY: ${OPENROUTER_API_KEY} SESSION_SECRET: ${SESSION_SECRET:-your-secret-key-change-me} APP_URL: ${APP_URL:-http://localhost:5555} networks: - internal - nginx_default depends_on: postgres: condition: service_healthy volumes: - encryption_key:/app/.encryption-key-data command: npm run start volumes: postgres_data: driver: local encryption_key: driver: local networks: # Réseau interne pour la communication DB <-> App internal: driver: bridge # Réseau externe pour nginx reverse proxy nginx_default: external: true