Eyes on
every server.
HawkDNS sits on your box, watches everything that breathes — Docker, PHP-FPM, your domains — and pings your Telegram the moment something flinches. Install line is short. Memory is shorter.
curl -fsSL https://bot.hawkdns.info/install.sh | sudo bash
Specialised for servers that matter.
Multi-Server Federation
One install on one box. Or one install on every box. Or one hub
that SSH's into the rest. Same bot, same Telegram chat,
unified status with /all.
Smart Down-Alerts
Knows the difference between a 3-second blip and a service that actually died. Retries with backoff, sends one alert when down, one when recovered. No flap spam at 3 a.m.
Boot Detection
Server rebooted at 04:17 without telling you? Telegram message within 30 seconds: hostname, kernel, uptime. You know before your customers do.
Independent Watchdog
A second checker runs on cron, polling your domains. If the main bot crashes, the watchdog still talks to Telegram. Belt and suspenders. Birds and fallback birds.
Three lines, three minutes,
zero babysitting.
Talk to BotFather, get a token.
Open Telegram, message @BotFather,
type /newbot. Name your bird.
Save the token. (Pro tip: ask @userinfobot for your chat-ID.)
Curl the install script on the server.
Paste it, hit enter, answer two prompts. The installer figures out your OS, installs Python if missing, writes the systemd unit, schedules the cron, ping-tests the bot, and sends a confirmation to your chat.
curl -fsSL https://bot.hawkdns.info/install.sh | sudo bash
Tap /start in Telegram.
The dashboard appears as an inline keyboard. Pick a server, see load, RAM, disk, container health, last 20 log lines. Or just sit back — alerts come to you when something needs eyes.
Watch one,
or watch the flock.
Install on a single server and you're done. Want a fleet? Designate one as hub, install on each peer with a flag, and the hub aggregates everything. The Telegram dashboard shows all of them at once.
$ curl -fsSL bot.hawkdns.info/install.sh | sudo bash
# on the hub, watching three peers
$ curl -fsSL bot.hawkdns.info/install.sh | sudo bash -s -- \
--peers="web1:10.0.0.10,db1:10.0.0.11,cache:10.0.0.12"
Talks to you
in your terminal.
# one-liner — interactive, asks for token + chat id $ curl -fsSL https://bot.hawkdns.info/install.sh | sudo bash # headless, all flags up front $ curl -fsSL https://bot.hawkdns.info/install.sh | sudo bash -s -- \ --token="123456:ABC-DEF…" \ --chat="987654321" \ --name="web-prod-1" \ --yes # add peers (multi-server hub mode) $ curl -fsSL https://bot.hawkdns.info/install.sh | sudo bash -s -- \ --peers="db:10.0.0.10,cache:10.0.0.11"
// generated by installer, edit any time and restart the service { "bot_token": "123456:ABC-DEF…", "chat_whitelist": ["987654321"], "server_name": "web-prod-1", "peers": [ { "name": "db", "host": "10.0.0.10", "port": 22 }, { "name": "cache", "host": "10.0.0.11", "port": 22 } ] }
# domain | accepted-codes — cron polls every 2 min example.com|200 api.example.com|200,401 shop.example.com|200,301,302 internal.tools.example.com|200 # alert after 3 fails (~6 min), one recovery message on return
🚨 DOWN: shop.example.com → HTTP 502 (seit 6 min) [web-prod-1] --- 8 minutes later --- ✅ RECOVERED: shop.example.com → HTTP 200 (war ~14 min down) [web-prod-1] --- on reboot --- 🔄 Server reboot detected server: web-prod-1 host: web-prod-1.internal kernel: 6.8.0-49-generic HawkDNS is online and watching.
One line.
One chat.
No accounts. No dashboards. No subscription. The bot lives on your machine, speaks your language, and stops talking when you ask it to.
curl -fsSL https://bot.hawkdns.info/install.sh | sudo bash