Uptime Kuma A Fancy Self-Hosted Monitoring Tool
Uptime Kuma A Fancy Self-Hosted Monitoring Tool

Uptime Kuma: A Fancy Self-Hosted Monitoring Tool

It is a self-hosted monitoring tool like “Uptime Robot”.

Demo for Uptime Kuma
Demo for Uptime Kuma

Live Demo

Try it!

It is a 5 minutes live demo, all data will be deleted after that. The server is located at Tokyo, if you live far away from here, it may affact your experience. I suggest that you should install to try it.

VPS is sponsored by Uptime Kuma sponsors onΒ Open Collective! Thank you so much!

"
"

Features

  • Monitoring uptime for HTTP(s) / TCP / Ping / DNS Record.
  • Fancy, Reactive, Fast UI/UX.
  • Notifications via Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP), andΒ 70+ notification services, click here for the full list.
  • 20 seconds interval.
  • Multi Languages

How to Install

Installer via CLI

[Ubuntu/CentOS] Interactive CLI installer, supports Docker or without Docker.

curl -o kuma_install.sh http://git.kuma.pet/install.sh && sudo bash kuma_install.sh

Docker

# Create a volume
docker volume create uptime-kuma

# Start the container
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1

Browse toΒ http://localhost:3001Β after started.

Change Port and Volume

docker run -d --restart=always -p <YOUR_PORT>:3001 -v <YOUR_DIR OR VOLUME>:/app/data --name uptime-kuma louislam/uptime-kuma:1

Warning

Please use in a local volume only. Other types such as nfs are not supported.

Without Docker (Recommended for x86/x64 only)

Required Tools: Node.js >= 14, git and pm2.

(Not recommended for ARM CPU users.Β Since there is no prebuilt for node-sqlite3, it is hard to get it running)

git clone https://github.com/louislam/uptime-kuma.git
cd uptime-kuma
npm run setup

# Option 1. Try it
node server/server.js

# (Recommended)
# Option 2. Run in background using PM2
# Install PM2 if you don't have: npm install pm2 -g
pm2 start server/server.js --name uptime-kuma

Browse to http://localhost:3001 after started.

"
"
# Listen to different port or hostname
pm2 start server/server.js --name uptime-kuma -- --port=80 --hostname=0.0.0.0

Useful Commands

pm2 start uptime-kuma
pm2 stop uptime-kuma
pm2 restart uptime-kuma

# Run at startup
pm2 startup

(Optional) One more step for Reverse Proxy

This is optional for someone who want to do reverse proxy.

Unlikely other web apps, Uptime Kuma is based on WebSocket. You need two more headers “Upgrade” and “Connection” in order to reverse proxy WebSocket.

Please read wiki for more info:Β here

How to Update

Docker

Re-pull the latest docker image and create another container with the same volume.

For someone who used my “How-to-use” commands to install Uptime Kuma, you can update by this:

docker pull louislam/uptime-kuma:1
docker stop uptime-kuma
docker rm uptime-kuma
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1

PS: For every new release, it takes some time to build the docker image, please be patient if it is not available yet.

Without Docker

cd <uptime-kuma-directory>
git fetch --all
git checkout 1.6.2 --force
npm install --legacy-peer-deps
node node_modules/esbuild/install.js
npm run build
pm2 restart uptime-kuma

More Screenshots

Dark Mode:

Uptime Kuma dark mode
Uptime Kuma dark mode

Settings Page:

Settings for Uptime Kuma
Settings for Uptime Kuma

Telegram Notification Sample:

Telegram Notification for Uptime Kuma
Telegram Notification for Uptime Kuma

Motivation

  • I was looking for a self-hosted monitoring tool like “Uptime Robot”, but it is hard to find a suitable one. One of the close ones is statping. Unfortunately, it is not stable and unmaintained.
  • Want to build a fancy UI.
  • Learn Vue 3 and vite.js.
  • Show the power of Bootstrap 5.
  • Try to use WebSocket with SPA instead of REST API.
  • Deploy my first Docker image to Docker Hub.

If you love this project, please consider giving me a ⭐.

Discussion

Issues Page

You can discuss or ask for help inΒ Issues.

Subreddit

My Reddit account: louislamlam You can mention me if you ask question on Reddit.Β https://www.reddit.com/r/UptimeKuma/