Skip to content

Open source, self-hosted job monitoring

SilenceWatch is an open source job monitoring tool, under the Apache 2.0 licence. You can run it yourself: one container, one PostgreSQL database, and that is all.

Terminal window
git clone https://github.com/liliang-dev/SilenceWatch.git
cd SilenceWatch
cp .env.example .env # set SECRET_KEY and POSTGRES_PASSWORD
docker compose up -d

Open http://localhost:8080 and create the first account: on an empty instance it is always allowed, and that account becomes the owner. Schema migrations run automatically at startup, so upgrading is: change the version tag in docker-compose.yml, then docker compose pull and docker compose up -d.

The minimum to set in .env:

.env
SECRET_KEY=… # openssl rand -hex 32
POSTGRES_PASSWORD=… # openssl rand -hex 24
SMTP_URL=smtp://user:password@relay.example.com:587
BASE_URL=https://watch.example.com

BASE_URL is what your users actually type: ping URLs and alert links are built from it. The server refuses to boot on an unsafe or incoherent configuration rather than running degraded, and says which one.

  • Node.js and PostgreSQL, nothing else. No Redis, no Kafka, no Kubernetes. PostgreSQL is also the work queue and the cache-invalidation bus: every component added is a component to monitor, which would be ironic for this product.
  • A modest VPS is enough: 1 vCPU and 1 GB of RAM handle thousands of checks.
  • Several instances without duplicate alerts: rows are claimed with FOR UPDATE SKIP LOCKED.
  • The ingestion path stays bare: no ORM, no validation pipes, no outbound call. It is the path that must never fall over.

The self-hosted edition has no reserved feature, no “enterprise edition” and no seat limit. What the hosted offer at app.silencewatch.com sells is not running a server, not features.

  • Do not self-host the SMTP for alerts. Deliverability is a reputation game; the day an alert matters is the day it must not land in a spam folder. Relay through a provider or one you already trust. Postmark and Brevo are supported besides SMTP.
  • Back up PostgreSQL, that is where everything is.
  • Monitor the monitor: the self-hosting guide explains how, including with an outbound heartbeat.
What licence is SilenceWatch under?

Apache 2.0, for all the code. You can use, modify and host it, commercially included, without publishing your own code. The name and the logo are not covered by the licence.

What do I need to self-host SilenceWatch?

Docker with Compose, a small server (1 vCPU and 1 GB of RAM are enough for thousands of checks), and an email relay to send alerts. The PostgreSQL database comes with the Compose file.

Does the self-hosted edition have fewer features than the hosted offer?

No. There is no reserved feature: the hosted offer sells not running a server.

How do I upgrade a self-hosted instance?

Change the image version in docker-compose.yml, then run docker compose pull and docker compose up -d. Schema migrations apply automatically at startup.