DevOps & Containers Beginner 15 min

How to Set Up Uptime Kuma Self-Hosted Monitoring on Ubuntu 24.04

Monitor websites, ping latency, DNS records, and SSL certificates with automated incident alerts

IndSoft Cloud Engineering
Reviewed October 2026
Production Verified Commands

Guide Overview & Architecture Outcome

By following this guide, you will deploy Uptime Kuma in Docker on an Ubuntu 24.04 server. You will be able to monitor website ping, HTTP status, and SSL expiries, and publish a public status page identical to status.indsoft.net.

Prerequisites & System Requirements

A lightweight Linux VPS with at least 1 GB RAM and Docker installed. Recommended: IndSoft Micro VPS.

1

Create Data Volume and Launch Uptime Kuma Container

Create a persistent volume so monitoring history survives container rebuilds.

bash · step-1-command.sh
docker volume create uptime-kuma docker run -d --restart=always -p 127.0.0.1:3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
Expected System Output:
b428d09f7a9562725e225... Container started
2

Configure Nginx Reverse Proxy with WebSocket Support

Uptime Kuma uses Socket.io; configure Upgrade and Connection headers in your Nginx configuration.

bash · step-2-command.sh
sudo nano /etc/nginx/sites-available/status # proxy_pass http://127.0.0.1:3001; # proxy_set_header Upgrade $http_upgrade; # proxy_set_header Connection "upgrade"; sudo ln -s /etc/nginx/sites-available/status /etc/nginx/sites-enabled/ sudo systemctl reload nginx
Expected System Output:
Syntax OK. Reloaded.
3

Secure with Let's Encrypt SSL

Issue a free TLS certificate for your status subdomain.

bash · step-3-command.sh
sudo certbot --nginx -d status.example.com
Expected System Output:
Certificate deployed.

Check That It Worked (Verification)

Run this quick verification check to confirm your installation is responding properly:

verify-service.sh
curl -I https://status.example.com
Expected Response:
HTTP/2 200 server: nginx

Troubleshooting Common Errors

Quick resolutions for frequent setup pitfalls and configuration issues.

Diagnostic Tips
WebSocket connection failed / Red disconnected banner
Ensure proxy_set_header Upgrade $http_upgrade; and proxy_http_version 1.1; are inside your Nginx location block.
Docker container fails on reboot
Check that --restart=always was specified when launching the container.
Notifications failing
Test email SMTP or Telegram bot token directly from Uptime Kuma Settings -> Notifications -> Test.