Installation
Observal has two parts: a server you self-host and a CLI installed on each developer machine.
Install the server
The server runs as a Docker Compose stack (API, web UI, PostgreSQL, ClickHouse, Redis, worker, load balancer). Prometheus and Grafana are optional deployment overlays.
[!NOTE] Requires Docker Engine ≥ 24.0 with Compose v2 (
docker compose, notdocker-compose). Homebrew's Docker formula is outdated. Install Docker Desktop or use your distro's upstream packages. Verify withdocker versionanddocker compose version.
One-line install:
curl -fsSL https://raw.githubusercontent.com/Observal/Observal/main/install-server.sh | bashThis downloads a config package, runs guided setup (domain, secrets, ports), pulls container images from GHCR, and starts the full stack.
From source (for contributors):
git clone https://github.com/Observal/Observal.git && cd Observal
cp .env.example .env
make upFor deployment options, see Self-Hosting and Production deployment.
Install the CLI
The CLI is what you use to log in, instrument harness configs, pull agents, and query traces.
Install (standalone binary)
The standalone binary is the simplest way to install. No Python required.
This downloads the latest release binary for your platform and places it on your PATH.
This validates the Ed25519-signed key, installs the CLI, and writes the key to ~/.observal/config.json. If the key is invalid or expired, the installer exits with an error.
Verify it worked:
Alternative: install with Python
If you prefer to install via Python, use one of these methods. Requires Python 3.11 or newer.
uv (recommended):
pipx:
pip:
Optional extras
Observal ships with two opt-in extras for the Python install:
sandbox
Docker SDK (for sandbox execution)
If you run agents inside Observal sandboxes
migrate
pyarrow (for observal server migrate)
If you move registry and telemetry data between deployments
all
Both of the above
If you do both
Install an extra:
Install from source (for contributors)
What gets installed
Four entry points land on your PATH:
observal
The main CLI
observal-sandbox-run
Sandbox runner invoked by Observal sandboxes
You will almost never call the sandbox runner directly. The CLI wires it into your harness config for you.
Upgrade
Uninstall
Standalone binary:
Python install:
Uninstalling the CLI does not remove your config (~/.observal/). Delete that folder if you want a clean slate:
Next
-> Quickstart
Last updated
Was this helpful?