A fancy self-hosted monitoring tool
Go to file
Louis Lam b3721e03a8
Merge pull request #186 from chakflying/patch-3
Chore: Improve logging during db development
2021-08-08 19:24:50 +08:00
.do the docker image to DO is not working at all, try git method 2021-07-11 22:12:14 +08:00
.github/ISSUE_TEMPLATE Delete dependabot.yml 2021-08-05 12:13:39 +08:00
data init 2021-06-25 21:55:49 +08:00
db Chore: Add new line at EOF 2021-08-03 17:46:09 +08:00
extra update to 1.0.10 2021-08-04 13:59:42 +08:00
public Apple touch icon 192px with preserved transparency 2021-07-23 12:41:02 +08:00
server Chore: Improve logging during db development 2021-08-08 15:04:20 +08:00
src FEAT: darkmode (#155) 2021-08-08 13:47:29 +08:00
.dockerignore update .dockerignore 2021-08-03 20:42:32 +08:00
.editorconfig Confirm Dialog: allow changing the button text 2021-07-31 18:58:12 +08:00
.eslintrc.js allowElseIf for else return, since its auto fix removes "else" but without newline 2021-08-08 02:34:51 +08:00
.gitignore add retries for pinging function 2021-07-19 18:23:06 +02:00
.stylelintrc Add ESLint and StyleLint 2021-07-27 19:33:44 +02:00
app.json test heroku deployment 2021-07-29 00:36:35 +08:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2021-08-01 00:35:47 +08:00
CONTRIBUTING.md Create CONTRIBUTING.md 2021-08-01 00:29:30 +08:00
docker-compose.yml add some comments and remove traefik-network from docker-composer.yml 2021-07-13 10:28:07 +08:00
dockerfile remove apprise --version from dockerfile 2021-08-03 20:35:41 +08:00
index.html Revert "try to support subdirectory reverse proxy" 2021-08-05 18:20:34 +08:00
LICENSE Create LICENSE 2021-07-11 16:02:45 +08:00
package-lock.json fix high severity vulnerabilities by using my fork sqlite3 package 2021-08-06 18:22:30 +08:00
package.json fix high severity vulnerabilities by using my fork sqlite3 package 2021-08-06 18:22:30 +08:00
README.md Update README.md 2021-08-04 15:19:06 +08:00
tsconfig.json add util.ts for sharing common functions between frontend and backend 2021-07-30 11:23:04 +08:00
vite.config.js Revert "try to support subdirectory reverse proxy" 2021-08-05 18:20:34 +08:00

Uptime Kuma

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

Features

  • Monitoring uptime for HTTP(s) / TCP / Ping.
  • Fancy, Reactive, Fast UI/UX.
  • Notifications via Webhook, Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP) and more by Apprise.
  • 20 seconds interval.

How to Use

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

Without Docker

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

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

# Option 1. Try it
npm run start-server

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

# Listen to different port or hostname
pm2 start npm --name uptime-kuma -- run start-server -- --port=80 --hostname=0.0.0.0

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

(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: https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy

One-click Deploy

Deploy to DO

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 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

git fetch --all
git checkout 1.0.10 --force
npm install
npm run build
pm2 restart uptime-kuma

What's Next?

I will mark requests/issues to the next milestone. https://github.com/louislam/uptime-kuma/milestones

More Screenshots

Settings Page:

Telegram Notification Sample:

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 one 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 .

Contribute

If you want to report a bug or request a new feature. Free feel to open a new issue.

If you want to modify Uptime Kuma, this guideline maybe useful for you: https://github.com/louislam/uptime-kuma/blob/master/CONTRIBUTING.md

English proofreading is needed too, because my grammar is not that great sadly. Feel free to correct my grammar in this Readme, source code or wiki.