Fifty MikroTik routers in one window
Availability monitoring, bulk operations, scheduled backups, logs and WireGuard links. It runs on your own server, the data sits in a file next to it and goes nowhere.
The screenshots come from a live fleet of 49 routers with screenshot mode on: site names, addresses and client names are replaced by the panel itself.
What it does
Everything a fleet makes you do by hand, one router at a time.
One action for the whole fleet
Reboot, a script, a backup, setting identity, checking for and installing RouterOS updates. Every run becomes a job with a per-device result: you see which 3 of 49 failed and what the router actually said.
Availability monitoring
History per site, latency and loss measured by the router itself, a fleet map and reports by group, by device and over any date range.
Scheduled backups
Binary .backup and text .rsc, N copies kept per
device, a diff between any two configs and full-text search across all of
them. Plus an archive of the panel itself, for the day the server dies.
Script library
Your scripts in one place, and the answer to which router actually has which one. Deploy to chosen sites or to the whole fleet in two clicks.
WireGuard
Router-to-router links through a hub: handshakes, traffic and routes in one table. The spoke configuration is generated for you.
Logs and clients
A syslog receiver for the whole fleet, with filters and rules for hiding the noise. And a list of what is connected at each site: wired or wireless, in which port, with which address.
Screens
Install
Any server with Docker that can reach the routers. The panel comes up on port 8080.
git clone https://github.com/maximdr86/tikpilot cd tikpilot cp .env.example .env docker compose up -d
Then: create an API user on the routers and add devices by hand or by CSV import.
The panel talks to RouterOS over the API (8728/8729) and over SSH for the terminal.
To update: git pull and docker compose up -d --build.
What it is not
- Not a replacement for Zabbix or The Dude. It does not scan the network, does not draw topology and does not poll SNMP. It manages a fleet you already know about.
- Not a replacement for WinBox. Fine tuning still happens there; the panel takes over the repetitive work across the fleet.
- Not a cloud service. No sign-up and nothing running on someone else's side: it all runs on your machine and the database is a single SQLite file.
- No messenger notifications. On purpose: on a fleet with bad links that stream of messages stops being read within a week.
Frequently asked
Is Tikpilot an alternative to The Dude?
Partly. The Dude and Zabbix answer “what is happening in my network” and do it better. Tikpilot answers “do this on all my routers”: run a script, take a backup, upgrade RouterOS, and show a result for every device. It also keeps availability history, so for a small fleet it often replaces both.
How do I upgrade RouterOS on all routers at once?
Pick the devices or a whole group, choose “Check for RouterOS updates” and then “Upgrade RouterOS”. Every run becomes a job with a per-device result, the panel waits for each router to come back, refuses downgrades and checks free space before it starts.
Can it back up MikroTik configs on a schedule?
Yes. Rules run on their own: binary .backup, text .rsc or both, N copies kept per device. Any two configs can be compared line by line, and there is full-text search across everything stored.
Does it work without internet access?
Yes. The panel talks only to your routers over the RouterOS API and SSH. The two optional exceptions are looking up the mobile operator in the address registry and downloading the MAC vendor database, both of which you switch on yourself.
How much does it cost?
Nothing. MIT licence, the source is on GitHub, there is no paid edition and no cloud account.
How it is built
A boring stack
Python and FastAPI, pages rendered on the server, a SQLite file for the database. No build step, no npm, no external CDN: it works in an isolated network.
Passwords and access
Router passwords are encrypted with a key kept outside the database. The panel can be limited to trusted networks, every capability is granted separately, and everything anyone does goes into an audit log.
Proven on a live fleet
49 routers in shops, canteens and oilfield sites, reachable over WireGuard with SSTP as a fallback. More than 300 tests run in CI on three versions of Python.
The code was written by an AI model (Claude) under my direction: I am a sysadmin, not a developer. The panel runs my own fleet, so the bugs reach me first. The code is open - read it before you trust it.