64 docs indexed

Endpoints & Ports

All three obleth listeners, Docker Compose host port mappings, Kubernetes service ports, and HAProxy frontend.

obleth listeners

ListenerBind addressPurpose
Data plane0.0.0.0:8080OpenAI-compatible proxy for client requests
Management API0.0.0.0:9180Admin REST API for all configuration
Prometheus metrics0.0.0.0:9091Prometheus scrape endpoint

Docker Compose host ports

ServiceContainer portHost portPurpose
obleth data plane80808088Access via HAProxy on port 80 (edge profile)
obleth admin91809180Management API
obleth metrics90919091Prometheus scrape
control-plane30003002Dashboard
postgres54325432Database
redis63796379Cache
clickhouse HTTP81238123ClickHouse HTTP API
clickhouse native90009000ClickHouse native protocol
benchmark-backend80818081Benchmark fixture backend (benchmark profile)
haproxy8080TLS-optional edge proxy (edge profile)
prometheus90909090Prometheus UI (observability profile)
grafana30003001Grafana UI (observability profile)
jaeger1668616686Jaeger trace UI (observability profile)

Kubernetes service ports (Helm)

ServicePortType
obleth data plane8080ClusterIP
obleth admin9180ClusterIP (internal only)
obleth metrics9091ClusterIP
control-plane3000ClusterIP (exposed via Ingress if enabled)

HAProxy frontend

When running the Docker Compose edge profile or the Helm HAProxy chart:

PortProtocolBackend
80HTTPobleth data plane (8080)
443HTTPS (TLS)obleth data plane (8080)

HAProxy does round-robin across all obleth pod IPs. Add TLS by mounting certificates at /etc/ssl/certs/obleth.pem in the HAProxy container.

Health check

# Management API health
curl http://localhost:9180/api/v1/health

# Data plane liveness (no auth required)
curl http://localhost/health          # via HAProxy (edge profile)
# curl http://localhost:8088/health   # direct host port in Docker Compose
# curl http://localhost:8080/health   # native cargo run (binds :8080 on the host)

# Metrics
curl http://localhost:9091/metrics | head -20

The data plane's /v1/models route requires a tenant API key. Use /health for a liveness probe instead.