Uptime Kuma: self-hosted uptime monitoring in Docker
Uptime Kuma checks your sites and services and alerts you when one goes down. How to run it with Docker Compose in a couple of minutes.
Uptime Kuma is a monitoring tool with a clean web interface. It checks HTTP(S) endpoints, TCP ports, ping, DNS records, Docker containers and more, draws response-time charts, sends notifications through dozens of channels such as Telegram, email and Slack, and can publish a status page.
What you need
- A server with Docker and the Compose plugin
- A local directory for data. The project states that network file systems such as NFS are not supported.
A monitor that lives on the same server as the services it watches goes down together with them. If you can, run it on a separate machine or a small VPS.
Install
Create a folder and a compose.yaml. This is the file from the project repository:
services:
uptime-kuma:
image: louislam/uptime-kuma:2
restart: unless-stopped
volumes:
- ./data:/app/data
ports:
# <Host Port>:<Container Port>
- "3001:3001"
Start it:
docker compose up -d
First run
Open http://<host>:3001, go through the setup page and create the admin account. Then add the first monitor: choose the type, enter the address and the check interval.
Set up at least one notification channel straight away under Settings, Notifications. A monitor that nobody hears from is only a chart.
To listen only on the server itself, for use behind a reverse proxy, change the port line to "127.0.0.1:3001:3001".
Backup
Everything is in the ./data folder next to the compose file.
Updating
docker compose pull && docker compose up -d
The image tag 2 follows the 2.x releases. Moving from 1.x to 2.x is a migration; read the project’s migration guide before changing the tag on an old install.