kir / docker /docker-compose.full.yml
Shinway Deploy
feat: Add enhanced dashboard with HF Spaces support
866dfb3
Raw
History Blame Contribute Delete
2.75 kB
# Full Stack Docker Compose
# Includes: Kiro Gateway, Dashboard, Prometheus, Grafana
version: '3.8'
services:
# Kiro Gateway (FastAPI Backend)
kiro-gateway:
build:
context: ..
dockerfile: Dockerfile
container_name: kiro-gateway
ports:
- "8000:8000"
environment:
- PROXY_API_KEY=${PROXY_API_KEY:-my-super-secret-password-123}
- METRICS_ENABLED=true
- LOAD_BALANCER_ENABLED=${LOAD_BALANCER_ENABLED:-false}
- LOAD_BALANCER_STRATEGY=${LOAD_BALANCER_STRATEGY:-round_robin}
env_file:
- ../.env
volumes:
# Mount credentials if using file-based auth
- ${HOME}/.aws/sso/cache:/home/kiro/.aws/sso/cache:ro
# Debug logs
- ../debug_logs:/app/debug_logs
# Accounts config (optional)
- ../accounts.json:/app/accounts.json:ro
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
networks:
- kiro-network
restart: unless-stopped
# Dashboard (Next.js)
dashboard:
build:
context: ..
dockerfile: docker/Dockerfile.dashboard
container_name: kiro-dashboard
ports:
- "3000:3000"
environment:
- NEXT_PUBLIC_API_URL=http://kiro-gateway:8000
- DASHBOARD_API_KEY=${PROXY_API_KEY:-my-super-secret-password-123}
depends_on:
- kiro-gateway
networks:
- kiro-network
restart: unless-stopped
# Prometheus (Metrics Storage)
prometheus:
image: prom/prometheus:v2.48.0
container_name: kiro-prometheus
ports:
- "9090:9090"
volumes:
- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro
- prometheus-data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.console.libraries=/usr/share/prometheus/console_libraries'
- '--web.console.templates=/usr/share/prometheus/consoles'
- '--web.enable-lifecycle'
- '--storage.tsdb.retention.time=30d'
depends_on:
- kiro-gateway
networks:
- kiro-network
restart: unless-stopped
# Grafana (Visualization - Optional)
grafana:
image: grafana/grafana:10.2.0
container_name: kiro-grafana
ports:
- "3001:3000"
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD:-admin}
- GF_USERS_ALLOW_SIGN_UP=false
volumes:
- grafana-data:/var/lib/grafana
- ./grafana/provisioning:/etc/grafana/provisioning:ro
depends_on:
- prometheus
networks:
- kiro-network
restart: unless-stopped
networks:
kiro-network:
driver: bridge
volumes:
prometheus-data:
grafana-data: