version: "3.8" services: db: image: postgres:16-alpine restart: always environment: POSTGRES_USER: ${PGUSER:-arcadia} POSTGRES_PASSWORD: ${PGPASSWORD:-SuaSenhaSegura} POSTGRES_DB: ${PGDATABASE:-arcadia} volumes: - pgdata:/var/lib/postgresql/data ports: - "5432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U ${PGUSER:-arcadia}"] interval: 10s timeout: 5s retries: 5 app: build: . restart: always depends_on: db: condition: service_healthy ports: - "5000:5000" env_file: - .env environment: DATABASE_URL: postgresql://${PGUSER:-arcadia}:${PGPASSWORD:-SuaSenhaSegura}@db:5432/${PGDATABASE:-arcadia} PGHOST: db NODE_ENV: production volumes: - uploads:/app/uploads # ── Superset BI ────────────────────────────────────────────────────────────── superset: build: context: ./docker/superset dockerfile: Dockerfile restart: unless-stopped environment: SUPERSET_SECRET_KEY: ${SUPERSET_SECRET_KEY:-superset-secret-change-in-dev} SQLALCHEMY_DATABASE_URI: postgresql://${PGUSER:-arcadia}:${PGPASSWORD:-SuaSenhaSegura}@db:5432/superset DATABASE_URL: postgresql://${PGUSER:-arcadia}:${PGPASSWORD:-SuaSenhaSegura}@db:5432/superset PYTHONPATH: /app/pythonpath SUPERSET_ADMIN_USER: ${SUPERSET_ADMIN_USER:-admin} SUPERSET_ADMIN_USERNAME: ${SUPERSET_ADMIN_USER:-admin} SUPERSET_ADMIN_PASSWORD: ${SUPERSET_ADMIN_PASSWORD:-arcadia2026} SUPERSET_ADMIN_EMAIL: ${SUPERSET_ADMIN_EMAIL:-admin@arcadia.app} ARCADIA_DATABASE_URL: postgresql+psycopg2://${PGUSER:-arcadia}:${PGPASSWORD:-SuaSenhaSegura}@db:5432/${PGDATABASE:-arcadia} command: ["/bin/bash", "/app/docker/init.sh"] volumes: - ./docker/superset/superset_config.py:/app/pythonpath/superset_config.py:ro - ./docker/superset/init.sh:/app/docker/init.sh:ro - superset_home:/app/superset_home ports: - "8088:8088" depends_on: db: condition: service_healthy profiles: [bi] # ── Neo4j (Knowledge Graph) ───────────────────────────────────────────────── # Ativar com: docker compose --profile kg up neo4j: image: neo4j:5 restart: unless-stopped environment: NEO4J_AUTH: neo4j/${NEO4J_PASSWORD:-arcadia123} NEO4J_PLUGINS: '["apoc"]' volumes: - neo4j_data:/data - neo4j_logs:/logs ports: - "7474:7474" - "7687:7687" profiles: [kg] volumes: pgdata: uploads: superset_home: neo4j_data: neo4j_logs: