x-app: &app build: . env_file: .env environment: POSTGRES_HOST: ${POSTGRES_HOST} POSTGRES_PORT: ${POSTGRES_PORT} POSTGRES_USER: ${POSTGRES_USER} POSTGRES_DB: ${POSTGRES_DB} depends_on: postgres: condition: service_healthy networks: [bizcompass] services: postgres: image: pgvector/pgvector:pg16 env_file: .env ports: ["5432:5432"] volumes: ["pgdata:/var/lib/postgresql/data"] healthcheck: test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"] interval: 5s timeout: 5s retries: 10 networks: [bizcompass] streamlit: <<: *app command: ["uv", "run", "streamlit", "run", "src/bizcompass_kh/ui/app.py", "--server.address=0.0.0.0", "--server.fileWatcherType=none"] ports: ["8501:8501", "8000:8000"] grafana: image: grafana/grafana:12.1.0 env_file: .env environment: GF_SECURITY_ADMIN_USER: ${GRAFANA_ADMIN_USER:-admin} GF_SECURITY_ADMIN_PASSWORD: ${GRAFANA_ADMIN_PASSWORD:-admin} GF_AUTH_ANONYMOUS_ENABLED: "false" volumes: - grafana:/var/lib/grafana - ./grafana/provisioning:/etc/grafana/provisioning:ro - ./grafana/dashboards:/var/lib/grafana/dashboards:ro ports: ["3000:3000"] networks: [bizcompass] networks: bizcompass: volumes: pgdata: grafana: