67 docs indexed
All three obleth listeners, Docker Compose host port mappings, Kubernetes service ports, and HAProxy frontend.
| Listener | Bind address | Purpose |
|---|---|---|
| Data plane | 0.0.0.0:8080 | OpenAI-compatible proxy for client requests |
| Management API | 0.0.0.0:9180 | Admin REST API for all configuration |
| Prometheus metrics | 0.0.0.0:9091 | Prometheus scrape endpoint |
| Service | Container port | Host port | Purpose |
|---|---|---|---|
obleth data plane | 8080 | 8088 | Access via HAProxy on port 80 (edge profile) |
obleth admin | 9180 | 127.0.0.1:9180 | Management API |
obleth metrics | 9091 | 127.0.0.1:9091 | Prometheus scrape |
control-plane | 3000 | 3002 | Dashboard |
postgres | 5432 | 127.0.0.1:5432 | Database |
redis | 6379 | 127.0.0.1:6379 | Cache |
clickhouse HTTP | 8123 | 127.0.0.1:8123 | ClickHouse HTTP API |
clickhouse native | 9000 | 127.0.0.1:9000 | ClickHouse native protocol |
benchmark-backend | 8081 | 8081 | Benchmark fixture backend (benchmark profile) |
haproxy | 80 | 80 | Edge proxy (edge profile) |
prometheus | 9090 | 127.0.0.1:9090 | Prometheus UI (observability profile) |
grafana | 3000 | 3001 | Grafana UI (observability profile) |
jaeger UI | 16686 | 127.0.0.1:16686 | Jaeger trace UI (observability profile) |
jaeger OTLP | 4317, 4318 | 127.0.0.1:4317, 127.0.0.1:4318 | OTLP gRPC/HTTP collector (observability profile) |
dex | 5556 | 5556 | Local OIDC provider (sso-dev profile) |
The Management API, metrics, datastore, Prometheus, and Jaeger host ports are
published on 127.0.0.1 only, so they are reachable from the host but not from
the network. The data plane (8088), dashboard (3002), and HAProxy (80)
bind all interfaces.
Container ports that are only exposed to the Compose network, with no host
binding: HAProxy's 8404 (Prometheus exporter plus the /stats UI), the
compression sidecar's 8080 (compressor profile), ClickHouse's 9363
exporter, and the postgres-exporter (9187) / redis-exporter (9121)
that ship with the observability profile.
| Service | Port | Type |
|---|---|---|
obleth data plane | 8080 | ClusterIP |
obleth admin | 9180 | ClusterIP (internal only) |
obleth metrics | 9091 | ClusterIP |
control-plane | 3000 | ClusterIP (exposed via Ingress if enabled) |
When running the Docker Compose edge profile. The Helm chart does not deploy HAProxy; on Kubernetes the same role is filled by the obleth Service plus the chart's optional Ingress.
| Port | Protocol | Backend |
|---|---|---|
80 | HTTP | obleth data plane (8080) |
8404 | HTTP | HAProxy's own /metrics and /stats (in-network only) |
The shipped deploy/docker/haproxy.cfg binds plaintext :80 only and
round-robins across the obleth backend servers. It is a reference topology that
assumes TLS is terminated in front of it; to make HAProxy the TLS edge itself,
add a bind *:443 ssl crt /etc/ssl/private/obleth.pem frontend and mount the
certificate. See HAProxy.
# 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.