MCP ConfigsApr 3, 2026·3 min read

Uptime Kuma — Self-Hosted Uptime Monitoring

Monitor HTTP, TCP, DNS, Docker services with notifications to 90+ channels. Beautiful dashboard. 84K+ GitHub stars.

TL;DR
Uptime Kuma monitors your services via HTTP/TCP/DNS and alerts through 90+ notification channels, all self-hosted.
§01

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.

§02

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.

§03

How to use

  1. Start Uptime Kuma with Docker:
docker run -d -p 3001:3001 \
  -v uptime-kuma:/app/data \
  --name uptime-kuma \
  louislam/uptime-kuma:1
  1. Open http://localhost:3001 and create an admin account
  2. Click 'Add New Monitor' and configure your first HTTP, TCP, or DNS monitor
  3. Set up notification channels under Settings > Notifications
§04

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.

§05

Related on TokRepo

§06

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

How many monitors can Uptime Kuma handle?+

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.

Can I create public status pages?+

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.

Does Uptime Kuma support API access?+

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.

Can I monitor internal services behind a firewall?+

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.

How do I back up Uptime Kuma data?+

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)
🙏

Source & Thanks

Created by Louis Lam. Licensed under MIT.

uptime-kuma — ⭐ 84,700+

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.