689db5ab33
Beeline - Open-source LLM observability and control platform Features: - Real-time agent monitoring dashboard - LLM metrics and analytics (TimescaleDB) - Cost tracking and budget controls - WebSocket event streaming - MCP (Model Context Protocol) server Apache 2.0 License
139 lines
3.7 KiB
YAML
139 lines
3.7 KiB
YAML
services:
|
|
# Frontend - React application
|
|
honeycomb:
|
|
build:
|
|
context: ./honeycomb
|
|
target: production
|
|
args:
|
|
VITE_API_URL: ${VITE_API_URL:-http://localhost:4000}
|
|
container_name: honeycomb-frontend
|
|
ports:
|
|
- "${FRONTEND_PORT:-3000}:3000"
|
|
depends_on:
|
|
hive:
|
|
condition: service_healthy
|
|
restart: unless-stopped
|
|
networks:
|
|
- honeycomb-network
|
|
|
|
# Backend - Hive API (LLM observability & control plane)
|
|
hive:
|
|
build:
|
|
context: ./hive
|
|
target: production
|
|
args:
|
|
NPM_TOKEN: ${NPM_TOKEN:-}
|
|
container_name: honeycomb-backend
|
|
ports:
|
|
- "${BACKEND_PORT:-4000}:4000"
|
|
environment:
|
|
- NODE_ENV=${NODE_ENV:-production}
|
|
- PORT=4000
|
|
- LOG_LEVEL=${LOG_LEVEL:-info}
|
|
# PostgreSQL (TimescaleDB)
|
|
- TSDB_PG_URL=postgresql://postgres:postgres@timescaledb:5432/aden_tsdb
|
|
# MongoDB
|
|
- MONGODB_URL=mongodb://mongodb:27017
|
|
- MONGODB_DBNAME=${MONGODB_DBNAME:-aden}
|
|
- MONGODB_ERP_DBNAME=${MONGODB_ERP_DBNAME:-erp}
|
|
# Redis
|
|
- REDIS_URL=redis://redis:6379
|
|
# Authentication
|
|
- JWT_SECRET=${JWT_SECRET:-change-me-in-production-use-min-32-chars}
|
|
- PASSPHRASE=${PASSPHRASE:-change-me-in-production}
|
|
# Hive backend URL for SDK quickstart documents
|
|
- HIVE_HOST=${HIVE_HOST:-http://localhost:4000}
|
|
depends_on:
|
|
timescaledb:
|
|
condition: service_healthy
|
|
mongodb:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test:
|
|
[
|
|
"CMD",
|
|
"node",
|
|
"-e",
|
|
"fetch('http://localhost:4000/health').then(r => process.exit(r.ok ? 0 : 1)).catch(() => process.exit(1))",
|
|
]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
start_period: 15s
|
|
restart: unless-stopped
|
|
networks:
|
|
- honeycomb-network
|
|
|
|
# TimescaleDB - Time series database for LLM metrics
|
|
timescaledb:
|
|
image: timescale/timescaledb:latest-pg16
|
|
container_name: honeycomb-timescaledb
|
|
ports:
|
|
- "${TSDB_PORT:-5432}:5432"
|
|
environment:
|
|
- POSTGRES_USER=postgres
|
|
- POSTGRES_PASSWORD=postgres
|
|
- POSTGRES_DB=aden_tsdb
|
|
volumes:
|
|
- timescaledb_data:/var/lib/postgresql/data
|
|
# Auto-run schema files on first startup (alphabetical order)
|
|
- ./hive/src/services/tsdb/00-init-timescaledb.sql:/docker-entrypoint-initdb.d/00-init-timescaledb.sql:ro
|
|
- ./hive/src/services/tsdb/schema.sql:/docker-entrypoint-initdb.d/01-schema.sql:ro
|
|
- ./hive/src/services/tsdb/users_schema.sql:/docker-entrypoint-initdb.d/02-users.sql:ro
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U postgres -d aden_tsdb"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
start_period: 10s
|
|
restart: unless-stopped
|
|
networks:
|
|
- honeycomb-network
|
|
|
|
# MongoDB - Policies, pricing, and control configuration
|
|
mongodb:
|
|
image: mongo:7
|
|
container_name: honeycomb-mongodb
|
|
ports:
|
|
- "${MONGODB_PORT:-27017}:27017"
|
|
volumes:
|
|
- mongodb_data:/data/db
|
|
healthcheck:
|
|
test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
start_period: 10s
|
|
restart: unless-stopped
|
|
networks:
|
|
- honeycomb-network
|
|
|
|
# Redis - Caching and Socket.IO adapter
|
|
redis:
|
|
image: redis:7-alpine
|
|
container_name: honeycomb-redis
|
|
ports:
|
|
- "${REDIS_PORT:-6379}:6379"
|
|
volumes:
|
|
- redis_data:/data
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
start_period: 5s
|
|
restart: unless-stopped
|
|
networks:
|
|
- honeycomb-network
|
|
|
|
networks:
|
|
honeycomb-network:
|
|
driver: bridge
|
|
|
|
volumes:
|
|
timescaledb_data:
|
|
mongodb_data:
|
|
redis_data:
|