Uptime Kuma¶
External Uptime Monitoring
Uptime Kuma is a self-hosted monitoring tool with a clean web interface. It supports HTTP(s), TCP, DNS, and other monitoring types with notifications via Telegram, Discord, Slack, and many more. This instance runs on an external Hetzner VPS, independent from the home infrastructure, to provide reliable outside-in monitoring.
Why Choose Uptime Kuma?¶
- External perspective - monitors home services from an independent VPS
- Rich notifications - Telegram, Discord, email, webhooks, and 90+ integrations
- Multiple protocols - HTTP(s), TCP, ping, DNS, Docker, and more
- Status pages - public status pages for your services
Architecture¶
External Monitoring Server
Unlike other services in this setup, Uptime Kuma runs on a Hetzner VPS rather than the home Incus infrastructure. This ensures monitoring remains operational even when the home network or server is down - which is exactly when you need monitoring the most.
Install¶
Docker Compose¶
The deployment uses a single Docker Compose service with persistent data stored on the host.
services:
uptime-kuma:
image: louislam/uptime-kuma:2.0.2
container_name: uptime-kuma
volumes:
- /opt/uptime-kuma/data:/app/data
ports:
- 3001:3001
restart: always
Complete initial setup
Access the web interface at http://<vps-ip>:3001 and create your admin account.
Reverse Proxy
Uptime Kuma is exposed via the same HAProxy instance running on the Vultr VPS (Tokyo region) that serves the home Incus services, providing TLS termination and public access without exposing port 3001 directly.
Upgrade¶
Update the image tag
Edit docker-compose.yml and update the image version:
Verify upgrade
Check the Uptime Kuma web interface and confirm the version in Settings > About.
Upgrade Complete
Data in /opt/uptime-kuma/data persists across container recreations.
Related Documentation:
- Infrastructure Overview - Complete self-hosting architecture
- Beszel - Server resource monitoring
External Resources: