Monitoring that never leaves your network.
Servers, endpoints and certificates, watched from inside your own perimeter. Two static binaries, two SQLite files, ten minutes.
A real Torwarden watching a synthetic fleet — read-only, and the sign-in page tells you how to get in.
Your metrics never leave your network. No cloud, no telemetry.
Up and running in two commands
Both scripts verify what they download against a published checksum, and both re-run to upgrade in place without touching your config or your data.
Step one
The server
Runs as its own unprivileged user. Every file it writes is readable by nobody else.
curl -fsSLO https://releases.torwarden.com/install-server.sh
sudo sh install-server.sh
It asks for the listen address, or take it up front with --listen :8080.
First start runs the schema migrations, so give it a few seconds before the dashboard
answers. The setup URL that creates your first administrator is printed in the log:
journalctl -u torwarden-server | grep -A2 'no accounts yet'
Step two
The agent
Register the host in the dashboard, copy the key it gives you, then run this on the machine you want to watch.
curl -fsSLO https://releases.torwarden.com/install-agent.sh
sudo sh install-agent.sh \
--url https://torwarden.example.com \
--key twd_xxxxxxxxxxxxxxxxxxxxxxxxxxxx \
--hostname web-01
Windows uses the PowerShell installer, with the same two arguments:
Invoke-WebRequest -Uri https://releases.torwarden.com/install-agent.ps1 -OutFile install-agent.ps1
powershell -ExecutionPolicy Bypass -File .\install-agent.ps1 `
-CollectorUrl "https://torwarden.example.com" `
-ApiKey "twd_xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Installing behind a proxy or without direct internet? Both installers
take TORWARDEN_RELEASE_BASE, so they fetch the binaries from your own
internal mirror rather than from us. The server itself needs to reach
api.polar.sh to validate its licence — twice a day, sending the licence
key and nothing else.
Three things to watch, one place to watch them
Most estates are monitored by two or three tools that do not know about each other. Torwarden covers the parts that page you at three in the morning.
Hosts
Machines, in detail
CPU per core, memory and swap, load, every filesystem and block device, every interface, processes and uptime. A Go agent on Linux or Windows, reporting outbound only.
Endpoints
Things you do not run
HTTP and TCP checks against any URL, from the server, with status, latency and keyword matching — including catching a maintenance page served with a 200.
Certificates
Expiry, before it is an outage
Full chain analysis, weak algorithms, self-signed detection and domain expiry. Warnings scale with the certificate's own lifetime rather than a fixed day count.
Alerting built to be trusted
An alert nobody believes is worse than no alert. Every mechanism here exists because of a specific way monitoring tools cry wolf.
N-of-M, not one bad sample
A rule fires when N of the last M samples agree. One spike during a backup does not page anyone.
Separate recovery thresholds
Fires at 90, clears at 85. A metric sitting on the line produces one alert, not forty.
An explicit no-data policy
Per rule: treat a missing reading as a problem, as recovered, or ignore it. A reading that legitimately stops does not freeze an alert nobody can clear.
Maintenance windows
Scheduled in advance, before the work starts. A host-level window covers that host's filesystems and interfaces automatically.
Backtesting
Replay a rule against 30 days of stored history before you enable it, and see exactly how often it would have fired and on what.
Why did this fire?
Every alert can explain itself: which samples, which threshold, which window — and why an alert you expected did not fire.
Availability you can put in a contract
Targets are derived from alert history, not from a second measurement system — so the number on the page and the incident it came from cannot disagree. Rolling or calendar windows, error budget and burn rate, with planned maintenance excluded by default.
Dashboards you lay out yourself
A twelve-column grid with drag-and-drop panels, a panel library, and JSON export so a dashboard can live in version control alongside everything else you deploy.
Pricing
You pay for the size of the estate, not for the features. Every capability on this page is in every tier, including the free one. What you are buying is seats and someone to call.
Starter
Outgrew the free tier
or €290 a year
€24.17 a month
- Hosts
- 25
- Support
- Email, best effort
Team
POPULARThe usual first licence
or €990 a year
€82.50 a month
- Hosts
- 100
- Support
- Email, 2 business days
Business
Growing estate
or €2,990 a year
€249.17 a month
- Hosts
- 500
- Support
- Next business day
What counts as a host. A seat is one machine running an agent. Endpoints and certificates are watched from the server and cost nothing, however many you add — so a 100-host licence can also be monitoring four hundred URLs and every certificate you own.
The limit applies when a host is enrolled, and only then. Going over it never stops monitoring a machine that is already reporting, and never silences an alert — it refuses the next enrolment. A monitoring tool that switches itself off is a monitoring tool that lied to you.
If a licence is cancelled or refunded the instance returns to the free limit of ten hosts at its next check, which is within twelve hours. Everything already enrolled keeps reporting; only new enrolments are refused. If it cannot reach us at all, the last good answer stands for seven days before that happens, so an outage on our side is never an outage on yours.
Billing and refunds. Plans are billed in advance and renew until you cancel. Cancel any time from the customer portal and the licence runs to the end of the period you have paid for. Want your money back? Ask within 14 days of a payment and you get it, no questions. Full terms.
Deployment is deliberately boring
Two binaries
A server and an agent, both static Go binaries with no runtime, no JVM, no package tree. The dashboard is embedded in the server.
SQLite, not a cluster
Two database files you can copy, back up and restore with cp. No external
time-series database to run, tune or lose.
Measured, not estimated
Benchmarked at 5,000 hosts and 270,000 series on a four-core machine — the host list still
rendered in 0.07 s and chart queries in single-digit milliseconds.
What to size, and
torwarden-server bench reproduces it on your hardware.
What leaves your network
Your metrics do not. Not a sample, not a hostname, not an aggregate — there is no telemetry and no usage reporting, and the dashboard reads from a database on your own disk. That is the part that matters for a regulated estate, and it is unconditional.
Torwarden makes exactly three kinds of outbound request, all of them yours to see: the notification channels you configure, domain expiry lookups if you switch them on, and a licence check to Polar roughly twice a day. The licence check sends your licence key and nothing else — no machine identifier, no host count, no inventory. If it cannot get through, the last answer stands for seven days and every host you already monitor keeps reporting regardless.