Uptime-Kuma
Uptime-Kuma provides a very simple web interface to monitor uptime for HTTP(s) / TCP / HTTP(s) Keyword / Ping / DNS Record / Push / Steam Game Server. Notifications can be send via Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP), and 70+ notification services, click here for the full list. It is published under the MIT License.
Note
For this guide you should be familiar with the basic concepts of
Prerequisites
Node and npm
We’re using Node.js in the stable version 14:
[isabell@stardust ~]$ uberspace tools version show node
Using 'Node.js' version: '18'
[isabell@stardust ~]$
We will need to update the Node Packet Manager npm:
[isabell@stardust ~]$ npm install npm@latest -g
+ npm@8.3.0
added 169 packages from 86 contributors, removed 157 packages and updated 45 packages in 22.432s
[isabell@stardust ~]$ hash -r
[isabell@stardust ~]$ npm --version
10.2.4
[isabell@stardust ~]$
This should return a version from 8.0.0
upwards.
Domain
Your URL needs to be setup:
[isabell@stardust ~]$ uberspace web domain list
isabell.uber.space
[isabell@stardust ~]$
Installation
First get the Uptime-Kuma source code from Github:
[isabell@stardust ~]$ git clone https://github.com/louislam/uptime-kuma.git
git clone https://github.com/louislam/uptime-kuma.git
Cloning into 'uptime-kuma'...
remote: Enumerating objects: 11158, done.
remote: Counting objects: 100% (4844/4844), done.
remote: Compressing objects: 100% (782/782), done.
remote: Total 11158 (delta 4387), reused 4320 (delta 4049), pack-reused 6314
Receiving objects: 100% (11158/11158), 3.14 MiB | 940.00 KiB/s, done.
Resolving deltas: 100% (7999/7999), done.
[isabell@stardust ~]$
You have now downloaded the master development branch which is sufficient. Everything else will be done by the setup itself.
[isabell@stardust ~]$ cd ~/uptime-kuma
[isabell@stardust uptime-kuma]$ npm run setup
npm WARN lifecycle The node binary used for scripts is /usr/bin/node but npm is using /opt/nodejs14/bin/node itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.
> uptime-kuma@1.11.1 setup /home/isabell/uptime-kuma
> git checkout 1.11.1 && npm ci --production && npm run download-dist
[…]
HEAD is now at 8bb8b0a update to 1.11.1
[…]
[program:uptime-kuma]
found 0 vulnerabilities
> uptime-kuma@1.11.1 download-dist
> node extra/download-dist.js
Downloading dist
[…]
Done
[isabell@stardust uptime-kuma]$
You maybe got the error that there are vulnerabilities to fix, if so follow the instruction and run npm audit fix
to install the latest package versions:
[isabell@stardust ~]$ cd ~/uptime-kuma
[isabell@stardust server]$ npm audit fix
[...]
found 0 vulnerabilities
[isabell@stardust server]$
Configuration
Configure web server
Note
Uptime-Kuma is running on port 3001.
To make the application accessible from the outside, configure a web backend:
[isabell@stardust ~]$ uberspace web backend set / --http --port <port>
Set backend for / to port <port>; please make sure something is listening!
You can always check the status of your backend using "uberspace web backend list".
[isabell@stardust ~]$
Setup daemon
Create ~/etc/services.d/uptime-kuma.ini
with the following content:
[program:uptime-kuma]
directory=%(ENV_HOME)s/uptime-kuma/
command=node %(ENV_HOME)s/uptime-kuma/server/server.js
startsecs=60
After creating the configuration, tell supervisord to refresh its configuration and start the service:
[isabell@stardust ~]$ supervisorctl reread
SERVICE: available
[isabell@stardust ~]$ supervisorctl update
SERVICE: added process group
[isabell@stardust ~]$ supervisorctl status
SERVICE RUNNING pid 26020, uptime 0:03:14
[isabell@stardust ~]$
If it’s not in state RUNNING, check your configuration.
Check Website
Point your browser to your domain for example https://isabell.uber.space
Updates
Note
Check the update feed regularly to stay informed about the newest version.
Update git
Note
This guide is based on uptime kuma’s wiki page
Check Uptime-Kuma’s releases for the latest version and exchange the pseudo version number 1337.1.3
here with the latest version number.
[isabell@stardust ~]$ cd ~/uptime-kuma
[isabell@stardust uptime-kuma]$ git fetch --all
[isabell@stardust uptime-kuma]$ git checkout 1337.1.3 --force
[isabell@sturdust uptime-kuma]$
Install dependencies and prebuilt
[isabell@stardust ~]$ cd ~/uptime-kuma
[isabell@stardust uptime-kuma]$ npm install --production
[isabell@stardust uptime-kuma]$ npm run download-dist
Restart service after update
[isabell@stardust ~]$ supervisorctl restart uptime-kuma
uptime-kuma: stopped
uptime-kuma: started
[isabell@stardust ~]$ supervisorctl status
uptime-kuma RUNNING pid 20516, uptime 0:01:14
Tested with Uptime-Kuma 1.15.1 and Uberspace 7.12.2 Update tested from 1.15.1 to 1.17.1
Written by: imntl <max@mntl.de>