All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.
Set Up Your Own 24/7 Monitoring Dashboard with Uptime Kuma

I saw a topic about Uptime Kuma here the other day and I thought a little tutorial on how to install it won't hurt. Aleady searched on LET and I couldn't find one already written.
So, as many of you already know, downtime can mean lost revenue and frustrated users/clients. Instead of relying only on expensive third-party services (like uptimerobot), you can host your own powerful, FOSS monitoring tool called Uptime Kuma. It is a fantastic tool, with a really intuitive dashboard, that gives you a real-time view of your services' health, complete with notifications and simple (but beautiful) status pages.
This small tutorial I made, will show you how to install it on your own VPS Hosting plan, giving you full control over your monitoring setup.
Step 1: Prepare Your Server
First, connect to your server using SSH. It's always a good practice to ensure your system's package manager is up to date.
For Debian/Ubuntu systems:
sudo apt update && sudo apt upgrade -y
For RHEL/CentOS/Rocky Linux systems:
sudo dnf update -y
Step 2: Install Docker and Docker Compose
We'll use Docker for a clean, simple, and isolated installation. The official convenience script works on most Linux distributions.
# This command works for both Debian and RHEL-based systems
curl -sSL https://get.docker.com/ | sh
Start and enable the Docker service
sudo systemctl start docker
sudo systemctl enable docker
Next, you'll need the Docker Compose plugin to manage the application configuration.
For Debian/Ubuntu systems:
sudo apt-get install docker-compose-plugin -y
For RHEL/CentOS/Rocky Linux systems:
sudo dnf install docker-compose-plugin -y
Step 3: Install Uptime Kuma
The installation process is incredibly straightforward.
First, create a dedicated directory for Uptime Kuma to keep its data organized, and then move into it:
mkdir uptime-kuma
cd uptime-kuma
Next, create the docker-compose.yml file. This file is a configuration that tells Docker exactly how to run Uptime Kuma.
nano docker-compose.yml
Paste the following content into the file. This defines the Uptime Kuma service, tells it to use the latest official image, maps a local directory for persistent data storage, and opens the necessary port.
version: '3.3'
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
volumes:
- ./uptime-kuma-data:/app/data
ports:
- '3001:3001'
restart: always
Save the file and exit the editor (Ctrl+X, then Y, then Enter).
Now, launch Uptime Kuma in detached mode (so it runs in the background):
sudo docker compose up -d
Step 4: Access and Configure Your Dashboard
Uptime Kuma is now running! You can access its web interface by navigating your browser to http://Your_Server_IP:3001.
You'll be greeted with a setup screen to create your admin username and password. Once you've done that, you can log in and start adding your websites and services ("monitors") to keep an eye on.
Step 5: (Recommended) Making It Production-Ready
While using the IP address works, it's not secure or professional. To take your setup to the next level, you should put it behind a domain name with a secure SSL certificate.
A. Point a Domain Name
First, you'll need a domain name. After a quick domain registration, go to your DNS provider and create an 'A' record. Point a subdomain (like status.yourdomain.com) to your server's IP address.
B. Install Nginx
Nginx will act as a reverse proxy, directing traffic from your domain to the Uptime Kuma application.
For Debian/Ubuntu systems:
sudo apt install nginx -y
For RHEL/CentOS/Rocky Linux systems:
sudo dnf install nginx -y
C. Configure Nginx
Create a new Nginx configuration file:
sudo nano /etc/nginx/sites-available/uptime-kuma.conf
Paste in the following configuration, replacing status.yourdomain.com with your actual subdomain. This tells Nginx to listen for traffic on your domain and forward it to Uptime Kuma's local port (3001).
server {
listen 80;
server_name [suspicious link removed];
location / {
proxy_pass http://localhost:3001;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Enable this new site configuration:
sudo ln -s /etc/nginx/sites-available/uptime-kuma.conf /etc/nginx/sites-enabled/
D. Secure with Let's Encrypt SSL
Finally, let's get a free SSL certificate using Certbot.
For Debian/Ubuntu systems:
sudo apt install certbot python3-certbot-nginx -y
For RHEL/CentOS/Rocky Linux systems:
sudo dnf install certbot python3-certbot-nginx -y
Now, run Certbot. It will automatically detect your Nginx configuration, get a certificate, and configure Nginx to use it.
sudo certbot --nginx
Follow the on-screen prompts. You can now access your secure dashboard at https://status.yourdomain.com.
Enjoy your new monitoring dashboard!
NOTE: This guide is only about installing Uptime Kuma. If you want to add an extra layer of security, consider hardening your server with modsecurity for nginx.

