English
€EUR
Monitoring

Uptime Kuma

Compatible with the Infrawire installer

Website and service monitoring with alerts and status pages, over HTTPS

Minimum requirements
  • 1 GB RAM
Developer
Louis Lam et contributeurs
Version
Latest stable
License
MIT
Systems
Debian 12, Debian 13, Ubuntu 20.04, Ubuntu 22.04, Ubuntu 24.04

About Uptime Kuma

Uptime Kuma is a self-hosted monitoring tool, developed by Louis Lam and its community under the MIT license. It polls your websites, APIs, TCP ports, hosts (ping), DNS records or Docker containers at regular intervals, then notifies you through Telegram, Discord, Slack, email or webhook when something stops responding. The interface is clean and easy to pick up without reading the documentation.

It is aimed at developers, agencies and small teams who want to know a service is down before their customers do, without paying a SaaS subscription per monitor. Running the tool on your own VPS also keeps your monitoring data under your control.

After delivery, the server contains Docker, Uptime Kuma (image louislam/uptime-kuma:2) and a Caddy reverse proxy. The application listens only on 127.0.0.1:3001, and Caddy publishes it over HTTPS on port 443 of the server's public IP, with a self-signed certificate. All that is left is to open the URL and create the administrator account.

What you can do with Uptime Kuma

  • Many monitor types

    HTTP(S), keyword in a page, TCP, ping, DNS, Docker container and more. You choose the check interval and the number of failures before an alert is sent.

  • Alerts on your usual channels

    Telegram, Discord, Slack, SMTP email, webhooks and many other notification services are available from the interface, with no plugin to install.

  • Public status pages

    Publish a status page for your services, for your customers or your team, on your own domain if you like.

  • TLS certificate tracking

    Uptime Kuma reads the expiry date of the certificates on the HTTPS sites it monitors and can warn you before they expire.

  • Docker and Caddy preinstalled

    Two containers with automatic restart (restart: always), described in a docker-compose.yml file that you can edit and keep under version control.

  • Data in a dedicated volume

    Configuration and monitor history are stored in the Docker volume kuma_data, which keeps backups and updates simple.

Get started with Uptime Kuma

From order to production in a few minutes.

  1. 1

    Order the VPS with Uptime Kuma

    On the order form, choose a Linux VPS (Paris or Frankfurt) running Debian 12, Debian 13 or Ubuntu 20.04, 22.04, 24.04. In the "Applications" tab, tick Uptime Kuma.

  2. 2

    Wait for delivery and open the interface

    Once the server is delivered, the installation runs in the background for a few minutes (downloading Docker and the images). Then open the URL below. The browser shows a warning because the certificate is self-signed: accept the exception to continue.

    Bash
    https://SERVER_IP:443 # Check the container status over SSH: ssh root@SERVER_IP cd /opt/uptime-kuma && docker compose ps
  3. 3

    Create the admin account and your first monitor

    On first access, Uptime Kuma asks you to create the administrator user. Then add a monitor (for example HTTP(S) on your website) and set up a notification channel to receive alerts.

  4. 4

    Secure it for production

    Point a DNS A record for YOUR_DOMAIN to SERVER_IP, then replace the address in the Caddyfile with your domain: Caddy will obtain a trusted certificate. Ports 80 and 443 must stay open, and port 22 should be restricted to your own IPs if possible.

    Bash
    cd /opt/uptime-kuma nano Caddyfile # YOUR_DOMAIN { # reverse_proxy 127.0.0.1:3001 # } docker compose restart caddy

Uptime Kuma use cases

  • Monitor your websites and APIs

    One HTTP monitor per site or critical endpoint, with a Telegram or email alert as soon as the response code falls outside the expected range.

  • Status page for your customers

    An agency or SaaS vendor publishes the state of its services on a dedicated page, so it no longer has to answer every question by message.

  • Check servers and internal ports

    Ping your machines, run TCP checks on a database or an SSH service, verify a Docker container: a single view of your infrastructure.

  • Catch certificate expiries early

    Track the expiry dates of your domains' certificates and get an alert before a failed renewal takes a site offline.

Uptime Kuma FAQ

The recipe configures Caddy with tls internal, which generates a self-signed certificate for the server's IP address. Encryption is active, but the browser cannot verify the issuer. Attach a domain to the server and edit the Caddyfile to get a trusted certificate.

More about Uptime Kuma

File locations

Everything lives in /opt/uptime-kuma: the installation script install-uptime-kuma.sh, the docker-compose.yml file and the Caddyfile. Caddy runs with network_mode: host and reads the Caddyfile read-only.

Do not rerun the installation script after editing the Caddyfile: it rewrites the file with the public IP address, and you would lose your domain configuration. To apply a change, use docker compose restart caddy.

Switching from an IP address to a domain

By default, the Caddyfile contains https://IP_PUBLIQUE:443 with tls internal, which is why the certificate is self-signed. When you replace that line with a domain name and remove tls internal, Caddy requests and renews a public certificate on its own. DNS must already point to the server, otherwise the request fails.

Backups

Uptime Kuma's data is stored in the Docker volume kuma_data. The safest approach is to stop the container while you copy the data, then archive it.

Bash
cd /opt/uptime-kuma docker compose stop uptime-kuma docker volume ls | grep kuma_data docker run --rm -v uptime-kuma_kuma_data:/data -v $(pwd):/backup alpine \ tar czf /backup/kuma-backup.tar.gz -C /data . docker compose start uptime-kuma

The exact volume name depends on the project folder, so check it with docker volume ls. Then copy the archive off the server. A VPS snapshot is a useful complement.

Updates

The image uses the 2 tag, which follows the 2.x releases. To get the latest version, take a backup, then run:

Bash
cd /opt/uptime-kuma docker compose pull docker compose up -d

Where to run your monitoring

A monitor hosted on the server it watches cannot warn you if that entire server goes down. For important services, install Uptime Kuma on a separate VPS, for example at the other location (Paris or Frankfurt). See our tutorials to go further.

Stay up to date with the latest offers, discounts and special promotions.

View promotions

We use cookies

We use analytics cookies to improve your experience on our site. No data is sold to third parties. Learn more in our privacy policy.