Add Command Center v2: DQ/RAG integration, S3 browser, Jupyter, GPU matrix.
Mirror mo/atc-GPU layout with config/, docs/, scripts/ for Gitea deploy.
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
# Command Center — VM304 (10.0.21.33)
|
||||
# Copy to /opt/atc-agents/.env — never commit secrets
|
||||
|
||||
# Postgres (internal)
|
||||
POSTGRES_USER=atc
|
||||
POSTGRES_PASSWORD=change-me
|
||||
POSTGRES_DB=atc_agents
|
||||
|
||||
# GPU / LLM (VM303)
|
||||
GPU_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
|
||||
|
||||
# ObjectScale S3 (VM objectscale 10.0.20.111)
|
||||
S3_ENDPOINT=http://10.0.20.111:9020
|
||||
S3_ACCESS_KEY=object_admin1
|
||||
S3_SECRET_KEY=REDACTED-use-deploy-yml-or-ecs-admin
|
||||
S3_REGION=us-east-1
|
||||
|
||||
# Jupyter
|
||||
JUPYTER_TOKEN=change-me-jupyter-token
|
||||
|
||||
# Lakehouse / ETL (optional probes)
|
||||
LAKEHOUSE_HOST=10.0.21.50
|
||||
AIRFLOW_URL=http://10.0.21.55:8080
|
||||
KAFKA_UI_URL=http://10.0.21.36:9000
|
||||
@@ -0,0 +1,17 @@
|
||||
:80 {
|
||||
handle_path /rag/* {
|
||||
reverse_proxy rag-api:5020
|
||||
}
|
||||
handle_path /jupyter/* {
|
||||
reverse_proxy jupyter:8888
|
||||
}
|
||||
handle_path /dq/* {
|
||||
reverse_proxy dq-api:5010
|
||||
}
|
||||
handle /api/* {
|
||||
reverse_proxy api:3201
|
||||
}
|
||||
handle {
|
||||
reverse_proxy ui:80
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,150 @@
|
||||
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:
|
||||
- .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
|
||||
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}
|
||||
volumes:
|
||||
- api_data:/data
|
||||
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
|
||||
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
|
||||
volumes:
|
||||
- rag_data:/data
|
||||
depends_on:
|
||||
- chromadb
|
||||
- docling-serve
|
||||
|
||||
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}
|
||||
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:
|
||||
Reference in New Issue
Block a user