Here’s how to install Uptime Kuma on Debian VPS—the fastest and cleanest way to deploy it.
What is Uptime Kuma?
Uptime Kuma is a self-hosted, open-source monitoring tool that allows you to track the availability and uptime of websites, services, and servers in real time. It is often referred to as a free alternative to commercial uptime monitoring platforms like UptimeRobot, Pingdom, or StatusCake.
✅ Prerequisites
- Debian 11/Debian 12 VPS
- Root/sudo access
- Docker and Docker Compose installed
🐳 How to Install Uptime Kuma on Debian VPS
To install Uptime Kuma on Debian VPS, follow the steps below:
-
Update System and Install Docker
sudo apt update && sudo apt upgrade -y sudo apt install -y ca-certificates curl gnupg lsb-release # Add Docker’s GPG key sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # Add Docker repo echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # Install Docker and Docker Compose sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
Verify Docker is working:
sudo docker run hello-world
-
Create Uptime Kuma Docker Setup
mkdir -p ~/uptime-kuma-docker cd ~/uptime-kuma-docker
Create a
docker-compose.yml
file:nano docker-compose.yml
Paste the following:
version: '3' services: uptime-kuma: image: louislam/uptime-kuma:latest container_name: uptime-kuma restart: always volumes: - ./uptime-kuma-data:/app/data ports: - "3001:3001"
Save and close.
-
Start the Container
sudo docker compose up -d
Uptime Kuma will now be running in the background on port
3001
. -
Access Uptime Kuma
Visit:
http://your-server-ip:3001
You’ll be greeted by the setup screen. -
Set Up Reverse Proxy with Nginx (Optional but Recommended)
-
Install Nginx:
sudo apt install nginx -y
-
Create an Nginx config:
sudo nano /etc/nginx/sites-available/uptime-kuma
Paste the following:
server { listen 80; server_name uptime.example.com; location / { proxy_pass http://localhost:3001/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
-
Enable the site:
sudo ln -s /etc/nginx/sites-available/uptime-kuma /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx
-
Use Let’s Encrypt for HTTPS:
sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d uptime.example.com
Access the web dashboard:
https://uptime.example.com
:
-
-
Useful Docker Commands
sudo docker ps # Show running containers sudo docker logs uptime-kuma # Show logs sudo docker compose down # Stop and remove container sudo docker compose restart # Restart container
Conclusion
You now know how to install Uptime Kuma on Debian VPS-isolated, portable, and easy to update. To update:
sudo docker compose pull sudo docker compose up -d