uptime-watchdog is a minimalist and fast monitoring tool that tracks the availability of specified URLs and notifies you if a service stops responding. The tool is written in Go, consumes almost no resources, and can run even on low-powered servers or inside containers.
It’s suitable for DevOps engineers, developers, pet-project owners, and anyone who needs a simple self-hosted monitoring solution without heavy systems.
Why choose us:
- 24/7 support — specialists always available
- 99.9% SLA — guaranteed stability and reliability
- 8 data centers worldwide — connect to the location closest and fastest for you
Work comfortably, securely, and without limitations — in the Serverspace cloud.
What uptime-watchdog is used for
The tool solves several tasks:
1. Service uptime monitoring
You can add any URLs — APIs, websites, health-check endpoints, microservices. Watchdog will regularly check them and record their status.
2. Fast failure notifications
If the application stops responding or returns an error, you will receive a notification (Slack, Telegram, or another webhook), allowing you to react faster.
3. A lightweight alternative to Prometheus + Alertmanager
If you don’t need a heavy monitoring stack, uptime-watchdog is a perfect option. You can run it in Docker or as a standalone binary.
4. External availability checks
The tool checks your service the same way an external user would — making monitoring more accurate.
Installation
1. Via Go
2. Via binary
Download the release from GitHub Releases, make it executable, and run:
3. Via Docker
Configuration
The main configuration is done in config.yaml.
Example configuration:
endpoints:
name: "Frontend"
url: "https://myapp.com
"
timeout: 5s
name: "API"
url: "https://api.myapp.com/health
"
timeout: 3s
notify:
telegram:
token: "YOUR_TELEGRAM_BOT_TOKEN"
chat_id: "123456789"
Explanation:
- interval — check frequency.
- endpoints — list of services to monitor.
- timeout — response waiting time.
- notify — where to send failure notifications.
Running
Logs will appear in stdout — you can forward them to journald or capture via Docker.
Practical use cases
- Production service monitoring Add microservice health-checks and receive notifications if any service goes down or latency increases.
- Pet projects and test environments If you host small services on a VPS, watchdog helps you detect when they become unavailable due to hosting issues.
- Third-party API monitoring Monitor external services your application depends on — such as payment gateways.
- Post-deployment checks Run watchdog during releases to ensure all health-checks pass after deployment.
Best practices
- Use a short interval — 30–60 seconds is enough in most cases.
- Your health-check endpoint should be fast and lightweight.
- Run watchdog in a different data center for a realistic availability picture.
- Store the config in Git and update it via CI/CD.
Conclusion
uptime-watchdog is a simple, fast, and convenient tool for monitoring service availability. It’s perfect for those who need reliable uptime checks without configuring complex monitoring systems. It’s easy to deploy, simple to configure, and introduces minimal load on your infrastructure.
FAQ
- Can I use watchdog without Docker?
Yes, it’s a standard Go binary - it runs on any system. - Where is the data stored?
The tool does not store history. It focuses on real-time monitoring and notifications. - Does watchdog support file logging?
By default, logs go to stdout. You can redirect them into a file via systemd or Docker. - How do I configure multiple notification channels?
In config.yaml you can specify Telegram, Slack, and a webhook simultaneously. - Can I add basic authentication?
Yes, you can include login:password@host in the URL - standard HTTP client behavior.