louislam /uptime-kuma

A fancy self-hosted monitoring tool

★ 93,440⑂ 8,687👁 316⑃ 2,958● 5,078▤ 140◈ 0
JavaScriptMITCreated 2021-07-03uptime.kuma.pet
93,440
stars
+40
8,687
forks
316
watchers
2,958
prs
5,078
issues
140
releases
0
discussions

README

Uptime Kuma

Uptime Kuma is an easy-to-use self-hosted monitoring tool.

    
 





 🥔 Live Demo

Try it!

Demo Server (Location: Frankfurt - Germany): 

It is a temporary live demo, all data will be deleted after 10 minutes. Sponsored by Uptime Kuma Sponsors.

 ⭐ Features

- Monitoring uptime for HTTP(s) / TCP / HTTP(s) Keyword / HTTP(s) Json Query / Websocket / Ping / DNS Record / Push / Steam Game Server / Docker Containers
- Fancy, Reactive, Fast UI/UX
- Notifications via Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP), and 90+ notification services, click here for the full list
- 20-second intervals
- Multi Languages
- Multiple status pages
- Map status pages to specific domains
- Ping chart
- Certificate info
- Proxy support
- 2FA support

 🔧 How to Install

 🐳 Docker Compose

bash
mkdir uptime-kuma
cd uptime-kuma
curl -o compose.yaml https://raw.githubusercontent.com/louislam/uptime-kuma/master/compose.yaml
docker compose up -d


Uptime Kuma is now running on all network interfaces (e.g. http://localhost:3001 or http://your-ip:3001).

 [!WARNING]
 File Systems like NFS (Network File System) are NOT supported. Please map to a local directory or volume.

 🐳 Docker Command

bash
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:2


Uptime Kuma is now running on all network interfaces (e.g. http://localhost:3001 or http://your-ip:3001).

If you want to limit exposure to localhost only:

bash
docker run ... -p 127.0.0.1:3001:3001 ...


 💪🏻 Non-Docker

Requirements:

- Platform
  - ✅ Major Linux distros such as Debian, Ubuntu, Fedora and ArchLinux etc.
  - ✅ Windows 10 (x64), Windows Server 2012 R2 (x64) or higher
  - ❌ FreeBSD / OpenBSD / NetBSD
  - ❌ Replit / Heroku
- Node.js = 20.4
- Git
- pm2 - For running Uptime Kuma in the background

bash
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 the background using PM2
 Install PM2 if you don't have it:
npm install pm2 -g && pm2 install pm2-logrotate

 Start Server
pm2 start server/server.js --name uptime-kuma


Uptime Kuma is now running on all network interfaces (e.g. http://localhost:3001 or http://your-ip:3001).

More useful PM2 Commands

bash
 If you want to see the current console output
pm2 monit

 If you want to add it to startup
pm2 startup && pm2 save


 Advanced Installation

If you need more options or need to browse via a reverse proxy, please read:



 🆙 How to Update

Please read:



 🆕 What's Next?

I will assign requests/issues to the next milestone.



 ❤️ Sponsors

Thank you so much for supporting this project!

 Special Sponsors



Atlas Cloud (https://www.atlascloud.ai) is sponsoring this project USD 400 per month for using their AI models.



 Open Collective and GitHub Sponsors

(The list will be cached by GitHub, it may take up 24 hours to be updated)



 🖼 More Screenshots

Light Mode:



Status Pa

Top issues

Latest release

2.5.9 2.5.9 2026-10-31
🐞 Bug Fixes

- 8082 fix: runtime timeout fallback used milliseconds for a seconds field 
- 8081 fix: reset push monitor retries from the last stored heartbeat 
- 8079 fix: remove duplicated refresh timer on status page 
- 8064 fix: display recurring maintenance in its configured timezone (Thanks @kuxiaowo)

 ⬆️ Security Fixes

- GHSA-86ch-2247-gr56 fix: RSS cache poisoning (Thanks @the-arma-of-owl)
- 8080 chore: drop outdated apicache, migrate to http-cache-semantics (related to the above issue)
- 8050 chore: Update dependencies

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON