oo-workers is the open-source, self-hosted slice of ObserveOne: the monitoring engine, the scheduler, and a minimal admin UI. It runs eight probe types (HTTP uptime, API checks, full Playwright browser tests, TCP and UDP probes, database liveness, TLS certificate checks, and heartbeats) and starts with a single docker compose up. Licensed Apache-2.0.
Run it#
git clone https://github.com/Observeone1/oo-workers.gitcd oo-workers./scripts/setup.sh # writes .env with random Postgres + Redis passwordsdocker compose up -d
git clone https://github.com/Observeone1/oo-workers.gitcd oo-workers./scripts/setup.sh # writes .env with random Postgres + Redis passwordsdocker compose up -d
This pulls the prebuilt observeone/oo-workers:latest image from Docker Hub. To build from source instead, run docker compose -f docker-compose.build.yml up -d.
Five containers boot: worker (queue consumers and scheduler), ui (HTTP API and dashboard), postgres, redis, and rustfs (S3-compatible object storage for browser-test scripts and run artifacts). Schema migrations run automatically on first boot.
First login#
Open http://localhost:3001. On first visit a setup wizard asks you to create an admin account with an email and password; after that it is a normal email/password login. Click + Add monitor to create your first check.
The UI port binds to 127.0.0.1 by default. Put it behind TLS and a reverse proxy before exposing it publicly. The docker-compose.tls.yml overlay adds Caddy with Let's Encrypt certificates for that.
Compose files#
| File | When to use |
|---|---|
docker-compose.yml | Default self-host stack (worker, UI, Postgres, Redis, RustFS). |
docker-compose.build.yml | Build the image from source instead of pulling from Docker Hub. |
docker-compose.agent.yml | Start a regional agent for multi-region probing. |
docker-compose.tls.yml | Caddy TLS termination via Let's Encrypt. |
docker-compose.dev.yml | Contributor dev setup (Postgres and Redis only). |
Programmatic access#
For the CLI, regional agents, or CI, mint API keys in the dashboard under Settings → API keys, or from the shell:
docker compose exec worker bun scripts/create-api-key.ts --name ci
docker compose exec worker bun scripts/create-api-key.ts --name ci
Send the printed oo_… key as Authorization: Bearer oo_….