Skip to main content
Every exposed port and persistent volume, at a glance.

Host ports (default)

The worker has no exposed port; it talks to Redis and ClickHouse internally only.

Remap on startup

Checking port conflicts

Persistent volumes

All volumes are named and managed by Docker. They survive docker compose down but are deleted by docker compose down -v. Back up apidata and pgdata before any upgrade. See Backup and restore.

Security posture defaults

The stack uses hardened defaults out of the box:
  • Read-only root filesystem on observal-api, observal-worker, observal-web (tmpfs for /tmp).
  • no-new-privileges on every service.
  • Memory limits on all services (see Requirements).
  • Health checks on Postgres, ClickHouse, Redis, API.
  • Bridge network (observal-net) isolates inter-service traffic.

Internal DNS

Inside the compose network, services resolve each other by service name: The CLI running on your host machine resolves via localhost:<host port>.

Next

→ Databases