How to Deploy Uptime Kuma on Ubuntu: The Definitive 2026 Guide

Deploy Uptime Kuma on Ubuntu with Docker Compose. Complete step-by-step guide for self-hosted monitoring.

How to Deploy Uptime Kuma on Ubuntu: The Definitive 2026 Guide

Monitoring is the heartbeat of a reliable home lab or production environment. If you are tired of manually checking if your services are up, you need a tool that is fast, reliable, and self-hosted.

Well, wonder no more, because in this post I will show you how to use Uptime Kuma to easily monitor your infrastructure. It is a free, open-source tool that handles everything from HTTP checks to certificate expiry alerts.

Why Uptime Kuma?

I’ve experimented with several tools, but Uptime Kuma is a game-changer if you need a GUI instead of complex configurations. Some features include:

  • Real-time Monitoring: Support for HTTP(s), TCP, Ping, DNS, and more.
  • Modern Web UI: A clean dashboard that makes managing alerts easy.
  • Multi-Notification: Native support for Telegram, Discord, and 90+ other providers.
  • Status Pages: Beautiful, public-facing pages for your users.

Prerequisites

Before we start, you’ll need an Ubuntu server (22.04 or 24.04) with Docker installed. If you haven't set up Docker yet, run the below commands:

sudo apt update && sudo apt upgrade -y
sudo apt install docker.io docker-compose -y
sudo systemctl enable --now docker

Step 1: Firewall Configuration

First, we need to allow traffic through the Ubuntu firewall. Uptime Kuma uses port 3001 by default.

sudo ufw allow 3001/tcp

Step 2: Setup Project Directory

I prefer keeping things organized in the home directory. Create a folder for your deployment:

mkdir -p ~/uptime-kuma
cd ~/uptime-kuma

Step 3: Docker Compose File

Create a docker-compose.yml file and paste the below configuration. This ensures your monitoring database is persistent across restarts.

version: '3.3'

services:
  uptime-kuma:
    image: louislam/uptime-kuma:1
    container_name: uptime-kuma
    restart: always
    volumes:
      - ./uptime-kuma-data:/app/data
    ports:
      - 3001:3001

Step 4: Deployment

Execute the below command to get everything running in the background:

docker-compose up -d

You can verify the status with docker ps. Once it’s up, visit http://your-server-ip:3001 to create your admin account and start adding monitors.


Conclusion

Uptime Kuma is a fantastic tool for saving time and effort on infrastructure monitoring. It’s a "set it and forget it" solution that provides peace of mind.

If you found this helpful, check out my other guides on Joining Linux Servers to AD or my OpenClaw Review.

Questions? Drop a comment below!