Technical Anshu
Tutorials Blog
🐳 Docker Install Guide

Uptime Kuma Docker Install with Docker Compose Step by Step

The docker run one-liner works today and confuses you in six months. A small compose file documents your whole install in one place — and makes updates and backups a two-minute job.

✍️ Technical Anshu🐳 Docker Compose⏱️ 8 minute read
🎥 Watch the full Uptime Kuma tutorial in the video — install, monitors, alerts and the live dashboard, step by step

In the video, Uptime Kuma is installed with Docker on a Synology NAS. This page is the compose-based version of that install — the method worth using on any host, because everything about your setup (image, port, data location, restart behaviour) sits in one readable file you can copy, back up and reuse. If Docker itself is not installed yet, the channel has separate Docker guides for Synology, Windows and Linux — finish those first, then come back here.

docker-compose.yml — the complete file
services: uptime-kuma: image: louislam/uptime-kuma:2 container_name: uptime-kuma volumes: - uptime-kuma-data:/app/data ports: - "3001:3001" restart: unless-stopped volumes: uptime-kuma-data:

👆 The whole install in one file. Copy it exactly — plain text, no smart quotes — into a file named docker-compose.yml.

1

Before You Start

  1. Docker is installed and running on the host (Synology Container Manager, Docker on Linux, or Docker Desktop on Windows)
  2. The host stays on — a monitoring tool on a machine that sleeps at night monitors nothing
  3. Create a folder such as uptime-kuma where the compose file will live
  4. Keep the host's IP address handy; give it a fixed IP in your router if you can, because bookmarks and status pages will point at it
2

What Each Line of the Compose File Does

  1. image: louislam/uptime-kuma:2 — the official image, version 2 line. The project's GitHub README always shows the current recommended tag; check it if you install much later
  2. volumes: uptime-kuma-data:/app/data — all your monitors, users and history live in this named volume. Delete the container and the data survives; delete the volume and everything is gone
  3. ports: "3001:3001" — the dashboard is reachable on port 3001 of the host. To use a different outside port, change only the left number, for example "8080:3001"
  4. restart: unless-stopped — after a power cut or host reboot, Kuma starts itself again. Non-negotiable for a monitoring tool
3

Start It and Create the Admin Account

  1. Open a terminal (or SSH) in the folder and run docker compose up -d
  2. Wait about a minute, then open http://your-host-ip:3001
  3. The first screen asks you to create the administrator account — do it immediately and use a strong password. Anyone who reaches this dashboard sees your full device list, IPs and uptime history
  4. On Synology, Container Manager's Project feature accepts the same compose file and shows the same result, as in the video
4

Update Without Losing a Single Monitor

Because your data lives in the volume and not the container, updating is safe and boring — exactly how updates should be:

  1. In the same folder, run docker compose pull
  2. Then run docker compose up -d — the container is recreated with the new image, the volume is reattached untouched
  3. Open the dashboard and confirm your monitors and history are all present
5

Back Up the One Thing That Matters

Your compose file is two minutes of typing. Your data volume holds months of monitors, notification settings and uptime history — that is what needs a backup. On Docker, the honest simple method: stop the container briefly (docker compose stop), copy the volume's data (the folder containing kuma.db) to another disk or NAS share, then start it again (docker compose start). Kuma also offers backup and restore of monitors from inside its settings — useful when moving to a new host, but keep a file-level copy as well.

🔴 Do not publish port 3001 to the internet unprotected. If you need the dashboard from outside, reach it through a VPN or a properly secured reverse proxy. A monitoring dashboard is a map of your network — do not hand it to strangers.

🎥 Watch the Complete Process in the Video

Watch the video to see this same Docker install done live on Synology, with the dashboard set up straight after.

▶️ Watch Full Video
❓ Frequently Asked Questions

Where does Uptime Kuma store its data

In the /app/data folder of the container, which the compose file maps to the named volume uptime-kuma-data. Inside it, the file kuma.db holds your monitors, users and settings. Back up that data and you have backed up your whole monitoring setup.

Can I install Uptime Kuma without Docker

Yes — it can run directly with Node.js and a few manual steps, and the project documents that route. Be honest with yourself about the trade-off: it is fiddly to install and update, while the Docker route is one file and one command. For almost everyone, Docker is the right choice.

The page at port 3001 does not open — what now

Check in order: is the container actually running (docker compose ps), is the host firewall allowing port 3001, and are you using the host's current IP address? On Synology, also confirm the project shows as running in Container Manager. The container logs (docker compose logs) will say plainly if something failed at startup.

This guide is based on the Technical Anshu Uptime Kuma video • Stuck on any step? Ask in the video comments — you will get a reply there 🙏