Files
atc-agents/docker-compose.yml
T
mo 9fb5b0a780 feat(llm): approval-gated movement executor + rag-api agent wiring + agent UI
- decide_approval now executes the underlying data movement when an approved
  request carries an executor=movement payload (real human-gated executor).
- rag-api service gets OPENMETADATA_* (via atc.env) + COMMAND_CENTER_URL so it can
  sync the catalog and call platform tools.
- Knowledge Chat gains an Agent-mode toggle (SSE tool-loop with step chips) and a
  'Sync catalog' button.
2026-06-27 03:28:18 +02:00

166 lines
4.3 KiB
YAML

services:
redis:
image: redis:7-alpine
restart: unless-stopped
volumes:
- redis_data:/data
postgres:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: atc
POSTGRES_PASSWORD: atc-agents-pg
POSTGRES_DB: atc_agents
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U atc -d atc_agents"]
interval: 5s
timeout: 5s
retries: 10
api:
build: ./api
restart: unless-stopped
env_file:
- atc.env
environment:
REDIS_URL: redis://redis:6379/0
DOCKHAND_URL: http://10.0.21.45:8082
DATABASE_URL: postgresql+psycopg2://atc:atc-agents-pg@postgres:5432/atc_agents
SQLITE_FALLBACK_PATH: /data/atc-agents.db
DOCLING_URL: http://docling-serve:5001
PRESENTATIONS_DIR: /data/presentations
GPU_URL: http://10.0.20.106:9000
GPU_UI_URL: http://10.0.20.106:9000
LLM_URL: http://10.0.20.106:8001/v1
LLM_MODEL: gpt-4o
LLM_API_KEY: sk-local
LAKEHOUSE_HOST: 10.0.21.50
AIRFLOW_URL: http://10.0.21.55:8080
TRINO_URL: http://10.0.21.50:8089
TRINO_USER: ${TRINO_USER:-mo}
OPENMETADATA_URL: ${OPENMETADATA_URL:-http://10.0.21.47:8585}
KAFKA_UI_URL: http://10.0.21.36:9000
HDFS_NN_URL: http://10.0.21.61:9870
S3_ENDPOINT: ${S3_ENDPOINT:-http://10.0.20.111:9020}
S3_ACCESS_KEY: ${S3_ACCESS_KEY:-object_admin1}
S3_SECRET_KEY: ${S3_SECRET_KEY}
S3_REGION: ${S3_REGION:-us-east-1}
ELASTICSEARCH_URL: ${ELASTICSEARCH_URL:-https://10.0.21.46:9200}
KIBANA_URL: ${KIBANA_URL:-http://10.0.21.46:5601}
ELASTIC_USER: ${ELASTIC_USER:-elastic}
ELASTIC_PASSWORD: ${ELASTIC_PASSWORD:-}
volumes:
- api_data:/data
- /root/.ssh:/root/.ssh:ro
depends_on:
redis:
condition: service_started
postgres:
condition: service_healthy
ui:
build: ./ui
restart: unless-stopped
depends_on:
- api
docling-serve:
image: quay.io/docling-project/docling-serve-cpu
restart: unless-stopped
ports:
- "5001:5001"
environment:
DOCLING_SERVE_ENABLE_UI: "1"
DOCLING_SERVE_MAX_SYNC_WAIT: "300"
chromadb:
image: chromadb/chroma:0.5.23
restart: unless-stopped
volumes:
- chroma_data:/chroma/chroma
environment:
ANONYMIZED_TELEMETRY: "false"
rag-api:
build: ../atc-data-quality/rag-api
restart: unless-stopped
env_file:
- atc.env
environment:
CHROMA_HOST: chromadb
CHROMA_PORT: 8000
DOCLING_URL: http://docling-serve:5001
LLM_URL: http://10.0.20.106:8001/v1
LLM_MODEL: gpt-4o
LLM_API_KEY: sk-local
RAG_DATA_DIR: /data
OPENMETADATA_URL: ${OPENMETADATA_URL:-http://10.0.21.47:8585}
COMMAND_CENTER_URL: http://api:3201
volumes:
- rag_data:/data
depends_on:
- chromadb
- docling-serve
- api
dq-api:
build: ../atc-data-quality/dq-api
restart: unless-stopped
environment:
DOCLING_URL: http://docling-serve:5001
DQ_DATA_DIR: /data
RAG_URL: http://rag-api:5020
RAG_COLLECTION: default
volumes:
- dq_data:/data
depends_on:
- docling-serve
- rag-api
jupyter:
image: quay.io/jupyter/scipy-notebook:latest
restart: unless-stopped
environment:
JUPYTER_TOKEN: ${JUPYTER_TOKEN:-atc-jupyter}
AWS_ACCESS_KEY_ID: ${S3_ACCESS_KEY:-object_admin1}
AWS_SECRET_ACCESS_KEY: ${S3_SECRET_KEY}
S3_ENDPOINT: ${S3_ENDPOINT:-http://10.0.20.111:9020}
AWS_DEFAULT_REGION: ${S3_REGION:-us-east-1}
ELASTICSEARCH_URL: ${ELASTICSEARCH_URL:-https://10.0.21.46:9200}
KIBANA_URL: ${KIBANA_URL:-http://10.0.21.46:5601}
command: >
start-notebook.sh
--NotebookApp.base_url=/jupyter/
--NotebookApp.token=${JUPYTER_TOKEN:-atc-jupyter}
--NotebookApp.allow_origin=*
volumes:
- jupyter_data:/home/jovyan/work
caddy:
image: caddy:2-alpine
restart: unless-stopped
ports:
- "80:80"
volumes:
- ./caddy/Caddyfile:/etc/caddy/Caddyfile:ro
depends_on:
- ui
- api
- dq-api
- docling-serve
- rag-api
- chromadb
- jupyter
volumes:
chroma_data:
rag_data:
dq_data:
redis_data:
postgres_data:
api_data:
jupyter_data: