Uptime Kuma is an open-source, self-hosted monitoring platform designed to check the availability of websites, APIs, servers, and other network services. It can be used as an alternative to hosted monitoring platforms such as Pingdom or StatusCake, while keeping the monitoring system entirely under your control. Uptime Kuma provides a simple web interface for creating monitors, reviewing uptime history, configuring alerts, and publishing public status pages. It is actively maintained, lightweight, and works particularly well when deployed with Docker.
This guide explains how to run Uptime Kuma in Docker, create different types of monitors, configure notifications, and publish a status page for your services.
Why Self-Host Your Monitoring
Many commercial monitoring platforms base their pricing on the number of monitored services or the frequency of checks. With a self-hosted Uptime Kuma installation, you can monitor multiple services and choose your own check intervals without additional per-monitor costs.
Another advantage is that monitoring data remains on your own infrastructure, giving you greater control over configuration, history, retention, and alerting. The main consideration is that you are responsible for maintaining the monitoring server itself, although using Docker makes deployment and ongoing management relatively simple.
Install Docker
Update the package index and install Docker:
Enable Docker and start it immediately:
Install Uptime Kuma 2
Run Uptime Kuma 2 as a Docker container and store its persistent data in a Docker volume:
The --restart=always option automatically starts Uptime Kuma again after a server reboot or container failure. The uptime-kuma Docker volume keeps the application data persistent.
Check Uptime Kuma Container
Verify that the container is running and healthy:
Open Uptime Kuma
Open a web browser and connect to port 3001 of the Ubuntu server:
On the first visit, Uptime Kuma will ask you to create the administrator account.
Check Uptime Kuma Logs
Follow the container logs in real time:
Press Ctrl+C to exit the log view without stopping the container.
Restart Uptime Kuma
Restart the Uptime Kuma container:
Stop and Start Uptime Kuma
Stop the container:
Start it again:
Remove the Uptime Kuma Container
Stop and remove the container:
This does not remove the persistent Uptime Kuma data stored in the Docker volume.
Remove Uptime Kuma Data
To permanently remove the persistent Uptime Kuma data, first remove the container and then delete the Docker volume:
Warning: Removing the Docker volume permanently deletes the Uptime Kuma configuration, monitors, history and other stored application data.