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.
An install that fits in four commands
Section titled “An install that fits in four commands”git clone https://github.com/liliang-dev/SilenceWatch.gitcd SilenceWatchcp .env.example .env # set SECRET_KEY and POSTGRES_PASSWORDdocker compose up -dOpen 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:
SECRET_KEY=… # openssl rand -hex 32POSTGRES_PASSWORD=… # openssl rand -hex 24SMTP_URL=smtp://user:password@relay.example.com:587BASE_URL=https://watch.example.comBASE_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.
Light by design
Section titled “Light by design”- 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.
Never crippled
Section titled “Never crippled”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.
Good to know
Section titled “Good to know”- 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.
Frequently asked questions
Section titled “Frequently asked questions”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.