Skip to content

How to self host openstatus

If you want to self host openstatus, we provide a docker-compose file to get you started quickly.

  • It only works with private locations. You have to deploy our probes to the cloud provider of your choice.
  1. Clone the repository
Terminal window
git clone
  1. Copy the .env.example file to .env and modify the environment variables as needed.
Terminal window
cp .env.docker.example .env.docker
  1. Build the containers
export DOCKER_BUILDKIT=1
docker compose up -d
  1. Migrate the database
Terminal window
cd packages/db
pnpm migrate
  1. Create Tinybird datasources, pipes and endpoints
Terminal window
cd packages/tinybird
tb --local deploy
  1. Access Tinybird local UI and get your TOKEN
Terminal window
tb --local open
  1. Update the .env.docker file with your Tinybird TOKEN

  2. Connect to your OpenStatus instance and create a new workspace.

  3. Update your newly created workspace with the following limits:

{
"monitors": 100,
"periodicity": ["30s", "1m", "5m", "10m", "30m", "1h"],
"multi-region": true,
"data-retention": "24 months",
"status-pages": 20,
"maintenance": true,
"status-subscribers": true,
"custom-domain": true,
"password-protection": true,
"white-label": true,
"notifications": true,
"sms": true,
"pagerduty": true,
"notification-channels": 50,
"members": "Unlimited",
"audit-log": true,
"private-locations": true
}
  1. Create a new private location in the dashboard.

  2. Deploy the private location to your cloud provider of choice with your location api key OPENSTATUS_KEY, and OPENSTATUS_INGEST_URL .

The docker image of the private location is ghcr.io/openstatushq/private-location:latest

  1. Create monitors and start monitoring your services!
Openstatus running locally
ServicePortPurpose
workflows3000Background jobs
server3001API backend (tRPC)
dashboard3002Admin interface
status-page3003Public status pages
private-location8081Monitoring agent
libsql8080Database (HTTP)
libsql5001Database (gRPC)
tinybird-local7181Analytics