98 lines
3.5 KiB
YAML
98 lines
3.5 KiB
YAML
# OpenLIT - AI Engineering Observability Platform
|
|
# OpenLIT provides OpenTelemetry-native LLM Observability, GPU Monitoring,
|
|
# Guardrails, Evaluations, Prompt Management, Vault, and Playground.
|
|
# Repository: https://github.com/openlit/openlit
|
|
|
|
x-defaults: &defaults
|
|
restart: unless-stopped
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: 100m
|
|
max-file: "3"
|
|
|
|
services:
|
|
clickhouse:
|
|
<<: *defaults
|
|
image: ${GLOBAL_REGISTRY:-}clickhouse/clickhouse-server:${CLICKHOUSE_VERSION:-24.4.1}
|
|
environment:
|
|
- TZ=${TZ:-UTC}
|
|
- CLICKHOUSE_PASSWORD=${OPENLIT_DB_PASSWORD:-OPENLIT}
|
|
- CLICKHOUSE_USER=${OPENLIT_DB_USER:-default}
|
|
- CLICKHOUSE_DATABASE=${OPENLIT_DB_NAME:-openlit}
|
|
- CLICKHOUSE_ALWAYS_RUN_INITDB_SCRIPTS=true
|
|
volumes:
|
|
- clickhouse_data:/var/lib/clickhouse
|
|
ports:
|
|
- "${CLICKHOUSE_HTTP_PORT_OVERRIDE:-8123}:8123"
|
|
- "${CLICKHOUSE_NATIVE_PORT_OVERRIDE:-9000}:9000"
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "clickhouse-client --user=$${CLICKHOUSE_USER} --password=$${CLICKHOUSE_PASSWORD} --query='SELECT 1' || exit 1"]
|
|
interval: 5s
|
|
timeout: 3s
|
|
retries: 10
|
|
start_period: 100s
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: ${CLICKHOUSE_CPU_LIMIT:-2.0}
|
|
memory: ${CLICKHOUSE_MEMORY_LIMIT:-4G}
|
|
reservations:
|
|
cpus: ${CLICKHOUSE_CPU_RESERVATION:-0.5}
|
|
memory: ${CLICKHOUSE_MEMORY_RESERVATION:-2G}
|
|
|
|
openlit:
|
|
<<: *defaults
|
|
image: ${GLOBAL_REGISTRY:-}ghcr.io/openlit/openlit:${OPENLIT_VERSION:-latest}
|
|
environment:
|
|
- TZ=${TZ:-UTC}
|
|
- TELEMETRY_ENABLED=${TELEMETRY_ENABLED:-true}
|
|
- INIT_DB_HOST=clickhouse
|
|
- INIT_DB_PORT=8123
|
|
- INIT_DB_DATABASE=${OPENLIT_DB_NAME:-openlit}
|
|
- INIT_DB_USERNAME=${OPENLIT_DB_USER:-default}
|
|
- INIT_DB_PASSWORD=${OPENLIT_DB_PASSWORD:-OPENLIT}
|
|
- SQLITE_DATABASE_URL=file:/app/client/data/data.db
|
|
- PORT=${OPENLIT_INTERNAL_PORT:-3000}
|
|
- DOCKER_PORT=${OPENLIT_INTERNAL_PORT:-3000}
|
|
# OAuth Configuration (Optional)
|
|
- GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID:-}
|
|
- GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET:-}
|
|
- GITHUB_CLIENT_ID=${GITHUB_CLIENT_ID:-}
|
|
- GITHUB_CLIENT_SECRET=${GITHUB_CLIENT_SECRET:-}
|
|
# OpAMP Server Configuration
|
|
- OPAMP_ENVIRONMENT=${OPAMP_ENVIRONMENT:-production}
|
|
- OPAMP_CERTS_DIR=/app/opamp/certs
|
|
- OPAMP_TLS_INSECURE_SKIP_VERIFY=${OPAMP_TLS_INSECURE_SKIP_VERIFY:-false}
|
|
- OPAMP_TLS_REQUIRE_CLIENT_CERT=${OPAMP_TLS_REQUIRE_CLIENT_CERT:-true}
|
|
- OPAMP_TLS_MIN_VERSION=${OPAMP_TLS_MIN_VERSION:-1.2}
|
|
- OPAMP_TLS_MAX_VERSION=${OPAMP_TLS_MAX_VERSION:-1.3}
|
|
- OPAMP_LOG_LEVEL=${OPAMP_LOG_LEVEL:-info}
|
|
ports:
|
|
- "${OPENLIT_PORT_OVERRIDE:-3000}:${OPENLIT_INTERNAL_PORT:-3000}"
|
|
- "${OPENLIT_OTLP_GRPC_PORT_OVERRIDE:-4317}:4317"
|
|
- "${OPENLIT_OTLP_HTTP_PORT_OVERRIDE:-4318}:4318"
|
|
depends_on:
|
|
clickhouse:
|
|
condition: service_healthy
|
|
volumes:
|
|
- openlit_data:/app/client/data
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:${OPENLIT_INTERNAL_PORT:-3000}/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 60s
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: ${OPENLIT_CPU_LIMIT:-1.0}
|
|
memory: ${OPENLIT_MEMORY_LIMIT:-2G}
|
|
reservations:
|
|
cpus: ${OPENLIT_CPU_RESERVATION:-0.25}
|
|
memory: ${OPENLIT_MEMORY_RESERVATION:-512M}
|
|
|
|
volumes:
|
|
clickhouse_data:
|
|
openlit_data:
|