Uptime Kuma — Self-Hosted Uptime Monitoring
Monitor HTTP, TCP, DNS, Docker services with notifications to 90+ channels. Beautiful dashboard. 84K+ GitHub stars.
What it is
Uptime Kuma is a self-hosted monitoring tool that tracks the availability of your HTTP endpoints, TCP ports, DNS records, Docker containers, and more. It provides a clean dashboard showing uptime percentages, response times, and incident history. When a service goes down, it sends notifications through over 90 channels including Slack, Discord, Telegram, email, PagerDuty, and webhooks.
Uptime Kuma is designed for developers, sysadmins, and small teams who need monitoring without paying for SaaS tools like Pingdom or UptimeRobot. It runs as a single Docker container with no external database dependencies.
How it saves time or tokens
Setting up monitoring with cloud services requires account creation, billing configuration, and per-monitor pricing. Uptime Kuma runs on any server with Docker and costs nothing beyond hosting. The setup takes under a minute with a single docker run command.
The dashboard provides instant visibility into service health without switching between multiple monitoring tools. Status pages can be shared publicly to communicate uptime to users and stakeholders.
How to use
- Start Uptime Kuma with Docker:
docker run -d -p 3001:3001 \
-v uptime-kuma:/app/data \
--name uptime-kuma \
louislam/uptime-kuma:1
- Open
http://localhost:3001and create an admin account - Click 'Add New Monitor' and configure your first HTTP, TCP, or DNS monitor
- Set up notification channels under Settings > Notifications
Example
# Docker Compose setup with persistent storage
cat > docker-compose.yml << 'EOF'
version: '3'
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
volumes:
- ./data:/app/data
ports:
- '3001:3001'
restart: unless-stopped
EOF
docker compose up -d
After startup, the web interface is available at port 3001. Monitors check at configurable intervals (default 60 seconds) and record response time, status code, and certificate expiry.
Related on TokRepo
- Monitoring tools -- Compare other monitoring and observability tools
- Self-hosted tools -- Browse applications you can run on your own infrastructure
Common pitfalls
- Uptime Kuma stores data in a SQLite database inside the container. Mount a volume (
-v uptime-kuma:/app/data) to persist data across container restarts. Without the volume, all monitors and history are lost when the container is removed. - Running too many monitors at short intervals (e.g., 100 monitors every 10 seconds) can overload the SQLite database. For large deployments, increase the check interval or use multiple Uptime Kuma instances.
- The default port 3001 may conflict with other services. Change the host port mapping in the docker run command if needed.
Frequently Asked Questions
Uptime Kuma comfortably handles hundreds of monitors on modest hardware. The SQLite database is the bottleneck for very large deployments. For thousands of monitors, consider running multiple instances or increasing check intervals to reduce database write frequency.
Yes. Uptime Kuma includes a built-in status page feature. You can create public-facing pages showing the uptime of selected monitors. Status pages support custom domains, incidents, and maintenance windows.
Uptime Kuma does not have a full REST API. It uses Socket.IO for real-time communication between the frontend and backend. Third-party tools like uptime-kuma-api (Python) provide programmatic access for automation.
Yes, as long as Uptime Kuma is deployed within the same network as the services. It makes outbound requests to the monitored endpoints. For monitoring across networks, you can deploy multiple Uptime Kuma instances or use push monitors where the service reports its own status.
Back up the /app/data directory in the container, which contains the SQLite database and configuration. You can use docker cp, mount a host volume, or use a backup plugin. Restore by copying the data directory into a new container.
Citations (3)
- Uptime Kuma GitHub— Self-hosted monitoring with 90+ notification channels
- Uptime Kuma Wiki— Supports HTTP, TCP, DNS, Docker, and more monitor types
- Uptime Kuma Docker Hub— Single Docker container deployment
Related on TokRepo
Source & Thanks
Created by Louis Lam. Licensed under MIT.
uptime-kuma — ⭐ 84,700+