Uptime Kuma logoMonitoring

Uptime Kuma

Monitor uptime, latency, and status pages for websites, APIs, and VPS services.

Review notes

Lightweight and beginner-friendly. Back up the SQLite database or Docker volume regularly.

Deployment guide

Run it as a single Docker container, ideal for a small VPS.

  1. Create a dedicated Docker volume for Uptime Kuma data.
  2. Run the container and map the internal port, for example `3001:3001`.
  3. Create the admin user on first launch.
  4. Add HTTP, TCP, or Ping monitors for important websites, APIs, and services.
  5. Configure notifications via Telegram, Discord, email, or webhook.
Backup:Back up the `/app/data` volume, especially the SQLite file with monitors and alert settings.

Copy and run on your server

Use each block separately: save the compose file, or copy the bash script to create it and start the container.

docker-compose.ymlyaml
services:
  uptime-kuma:
    image: louislam/uptime-kuma:1
    container_name: uptime-kuma
    volumes:
      - ./data:/app/data
    ports:
      - "3001:3001"
    restart: unless-stopped
setup.shbash
#!/usr/bin/env bash
set -euo pipefail

sudo mkdir -p /opt/uptime-kuma
sudo chown "$USER":"$USER" /opt/uptime-kuma
cd /opt/uptime-kuma

cat > docker-compose.yml <<'COMPOSE'
services:
  uptime-kuma:
    image: louislam/uptime-kuma:1
    container_name: uptime-kuma
    volumes:
      - ./data:/app/data
    ports:
      - "3001:3001"
    restart: unless-stopped
COMPOSE

docker compose up -d
echo "Uptime Kuma is running on http://SERVER_IP:3001"

Stack

Node.jsSQLiteDocker