Установка · 12 min read · Nov 17, 2025

Как установить Kuma - альтернатива Uptime Robot на Ubuntu 20.04

Uptime-Kuma - это инструмент мониторинга с открытым исходным кодом, аналогичный “Uptime Robot”, написанный на Nodejs. Это самостоятелно размещаемый инструмент мониторинга с красивой панелью управления и поддерживающий несколько методов уведомлений. Uptime-Kuma будет отслеживать доступность хостов или серверов через протоколы HTTP(s), TCP и Ping. Если хосты недоступны через эти протоколы в течение определенных интервалов, хосты отправят уведомления через Webhooks, Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP) и т.д.

В этом руководстве вы узнаете, как установить Uptime-Kuma на сервер Ubuntu и использовать веб-сервер Apache в качестве обратного прокси с бесплатным SSL-сертификатом Let’s Encrypt перед ним. В процессе установки вы также узнаете о установке nodejs через nvm (менеджер версий node).

Предварительные требования

  • Сервер Ubuntu 20.04.
  • Пользователь с правами root. Вы будете использовать этого пользователя для установки новых пакетов и изменения системных настроек.

Добавление нового пользователя

Сначала вы добавите нового пользователя в систему Ubuntu. По соображениям безопасности приложение Uptime-Kuma будет работать от имени пользователя без прав root.

  1. Добавьте нового пользователя, выполнив команду ниже. В этом примере мы будем использовать имя пользователя “ johndoe “. Убедитесь, что вы изменили имя пользователя на свое.
useradd -m -s /bin/bash johndoe

Опции, которые вы должны знать:

  • -m = автоматически создать домашний каталог для имени пользователя, который будет доступен в каталоге ‘/home’.
  • -s = определить путь к оболочке для пользователя, большинство Linux использует /bin/bash.
  1. После этого выполните следующую команду, чтобы установить пароль для пользователя “johndoe”.
passwd johndoe

Теперь введите новый надежный пароль и повторите его, затем нажмите “ Enter “, чтобы подтвердить.

  1. Далее добавьте пользователя “johndoe” в группу “ sudo “ с помощью команды ниже.
usermod -aG sudo johndoe

Добавив пользователей в группу “ sudo “, вы позволите пользователям выполнять команду “sudo su” и получать права root.

Установка NVM (менеджер версий Node)

NVM или менеджер версий Node - это инструмент командной строки для установки нескольких версий nodejs на одной системе. Этот инструмент позволяет вам устанавливать конкретную версию nodejs для ваших приложений, делая вашу среду разработки и развертывания гибкой.

На этом этапе вы будете устанавливать nvm от имени пользователя без прав root “johndoe”.

  1. Из вашей оболочки root войдите в пользователя “johndoe”, используя следующую команду.
su - johndoe
  1. Скачайте и выполните скрипт установки nvm следующим образом.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash

Установка менеджера версий Node или NVM

  1. После успешной установки перезагрузите среду bash, используя команду ниже.
source ~/.bashrc
  1. Теперь проверьте установку “ nvm “, выполнив команду ниже.
command -v nvm

Если ваша установка успешна, вы увидите результат “ nvm “. В противном случае вы ничего не увидите или получите пустой результат.

Теперь выполните команду nvm следующим образом.

nvm --help

И вы увидите страницу справки по команде nvm.

Node Version Manager (v0.38.0)  
  
Note:  refers to any version-like string nvm understands. This includes:  
  - full or partial version numbers, starting with an optional "v" (0.10, v0.1.2, v1)  
  - default (built-in) aliases: node, stable, unstable, iojs, system  
  - custom aliases you define with `nvm alias foo`  
  
  Any options that produce colorized output should respect the `--no-colors` option.  
  
Usage:  
  nvm --help                               Show this message  
    --no-colors                               Suppress colored output  
  
.....  
  
Note:  
  to remove, delete, or uninstall nvm - just remove the "$NVM_DIR" folder (usually `~/.nvm`)

Установка LTS-версии Nodejs

Чтобы установить приложение uptime-Kuma, вам нужно установить nodejs >= 14, git и pm2. На этом этапе вы будете устанавливать последнюю LTS-версию nodejs с помощью команды nvm.

  1. Выполните команду nvm ниже, чтобы установить последнюю LTS-версию nodejs.
nvm install --lts

После успешной установки вы увидите аналогичный вывод, как ниже.

Установка Nodejs с NVM

Первая версия nodejs, которую вы установите, станет версией по умолчанию в вашей среде разработки.

  1. Теперь выполните следующую команду, чтобы проверить установку nodejs.
node --version  
npm --version

Если ваша установка успешна, вы увидите аналогичный вывод, как ниже.

# версия nodejs  
v14.17.4  
  
# версия npm  
6.14.14

Скачивание и установка Uptime-Kuma

На этом этапе вы готовы установить приложение Uptime-Kuma.

  1. Клонируйте исходный код uptime-Kuma, используя команду git ниже.
git clone https://github.com/louislam/uptime-kuma.git
  1. После этого измените рабочий каталог на “ uptime-kuma/ “ и выполните команду npm для установки всех необходимых пакетов для uptime-kuma.
cd uptime-kuma/  
npm run setup

И вы увидите аналогичный вывод, как ниже.

Установка пакетов для Uptime-Kuma

Настройка Uptime-Kuma с pm2

Что такое pm2? Это менеджер процессов nodejs, который поможет вам управлять и поддерживать ваше приложение nodejs вечно. pm2 имеет несколько встроенных функций, которые упрощают развертывание приложений nodejs, позволяет вам отслеживать статус вашего приложения, журналы и даже настраивать файл службы для вашего приложения.

  1. Установите пакет pm2, используя команду npm ниже.
npm install pm2
  1. После завершения установки выполните команду pm2 ниже, чтобы запустить приложение uptime-kuma.
pm2 start npm --name uptime-kuma -- run start-server -- --port=3001 --hostname=127.0.0.1

И вы увидите сообщения вывода, как ниже.

Запуск Uptime-Kuma с менеджером процессов pm2

Как видно на картинке, имя приложения “ uptime-kuma “ работает со статусом “ online “.

  1. Чтобы проверить статус вашего приложения в pm2, выполните следующие команды.

Проверьте статус приложения nodejs.

pm2 status

Проверьте журналы приложения nodejs.

pm2 logs

Проверка журналов приложения pm2

Мониторинг приложения nodejs в реальном времени.

pm2 monit

Мониторинг приложения в реальном времени pm2

  1. Далее выполните следующую команду pm2, чтобы сгенерировать файл службы для приложения uptime-kuma.
pm2 startup

После этого вам следует выполнить команду, как указано в выводе.

sudo env PATH=$PATH:/home/johndoe/.nvm/versions/node/v14.17.4/bin /home/johndoe/.nvm/versions/node/v14.17.4/lib/node_modules/pm2/bin/pm2 startup systemd -u johndoe --hp /home/johndoe

Убедитесь, что вы используете команду “ sudo “ и вводите правильный пароль для вашего пользователя, чтобы получить права root.

После завершения команды вы увидите следующий вывод.

pm2 генерирует файл службы systemd для Uptime-Kuma

Как видно на скриншоте, pm2 генерирует systemd-сервис на основе пользователя, в этом примере это “ pm2-johndoe.service “.

Теперь выполните следующую команду, чтобы сгенерировать и сохранить состояние приложения uptime-kuma. Эта команда важна для того, чтобы приложение uptime-kuma всегда работало в фоновом режиме, даже после загрузки системы.

pm2 save
  1. Чтобы проверить службу ‘ pm2-johndoe’, выполните команду ниже.
sudo systemctl is-enabled pm2-johndoe

Вы увидите вывод enabled, что означает, что приложение uptime-kuma будет автоматически запускаться после загрузки системы.

Кроме того, вы можете попробовать перезагрузить вашу систему и снова войти на сервер, затем проверьте службу uptime-kuma.

sudo systemctl status pm2-johndoe

Вы должны увидеть аналогичный вывод, как ниже.

? pm2-johndoe.service - PM2 process manager  
     Loaded: loaded (/etc/systemd/system/pm2-johndoe.service; enabled; vendor preset: enabled)  
     Active: active (running) since Tue 2021-08-10 01:52:37 UTC; 3min 57s ago  
       Docs: https://pm2.keymetrics.io/  
   Main PID: 745 (PM2 v5.1.0: God)  
      Tasks: 34 (limit: 2343)  
     Memory: 120.4M  
     CGroup: /system.slice/pm2-johndoe.service  
             ??745 PM2 v5.1.0: God Daemon (/home/johndoe/.pm2)  
             ??772 npm  
             ??873 sh -c node server/server.js "--port=3001" "--hostname=127.0.0.1"  
             ??874 node server/server.js --port=3001 --hostname=127.0.0.1  
  
Aug 10 01:52:36 ubuntu64 pm2[633]: [PM2] Spawning PM2 daemon with pm2_home=/home/johndoe/.pm2  
Aug 10 01:52:37 ubuntu64 pm2[633]: [PM2] PM2 Successfully daemonized  
Aug 10 01:52:37 ubuntu64 pm2[633]: [PM2] Resurrecting  
Aug 10 01:52:37 ubuntu64 pm2[633]: [PM2] Restoring processes located in /home/johndoe/.pm2/dump.pm2  
Aug 10 01:52:37 ubuntu64 pm2[633]: [PM2] Process /home/johndoe/.nvm/versions/node/v14.17.4/bin/npm restored

Служба “ pm2-johndoe.service “ работает и запущена при загрузке системы.

Настройка Apache как обратного прокси

В этом руководстве вы будете устанавливать и настраивать веб-сервер Apache как обратный прокси для приложения uptime-Kuma.

  1. Выполните следующую команду, чтобы установить пакеты веб-сервера apache.
sudo apt install apache2

Введите “y” и нажмите “ Enter “, чтобы установить веб-сервер apache.

  1. После этого активируйте некоторые модули apache, используя команду ниже.
sudo a2enmod ssl proxy proxy_ajp proxy_wstunnel proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html
  1. Далее создайте новую конфигурацию виртуального хоста ‘ uptime-kuma.conf ‘ с помощью команды редактора nano ниже.
sudo nano /etc/apache2/sites-available/uptime-kuma.conf

Вставьте следующую конфигурацию в вашу оболочку терминала и измените имя домена “ uptime.example.net “ на ваш домен, например, “ domain.com “.

  
  ServerName uptime.example.net  
  
  ProxyPass / http://localhost:3001/  
  RewriteEngine on  
  RewriteCond %{HTTP:Upgrade} websocket [NC]  
  RewriteCond %{HTTP:Connection} upgrade [NC]  
  RewriteRule ^/?(.*) "ws://localhost:3001/$1" [P,L]  

Нажмите “ Ctrl+x “ и введите “ Y “, чтобы сохранить конфигурацию.

  1. Теперь активируйте конфигурацию виртуального хоста apache “uptime-kuma”, используя команду ниже.
sudo a2ensite uptime-kuma

После этого выполните следующую команду, чтобы проверить конфигурацию apache и убедиться, что у вас нет ошибок.

sudo apachectl configtest
  1. Теперь примените новую конфигурацию, перезапустив службу apache, используя команду ниже.
sudo systemctl restart apache2

Настройка Apache как обратного прокси для uptime-kuma

Защита Uptime-kuma с помощью SSL Letsencrypt

Чтобы защитить доступ к Uptime-Kuma, вы настроите SSL от Letsencrypt для веб-сервера apache.

  1. Прежде всего, установите инструмент certbot, выполнив следующую команду.
sudo apt install python3-certbot-apache

Введите “ y “ и нажмите “ Enter “, чтобы начать установку.

  1. После установки сгенерируйте SSL Let’s encrypt, используя команду certbot, как ниже.
sudo certbot --apache yourdomain.com

Введите свой адрес электронной почты для регистрации в Letsencrypt и нажмите “ Enter “, чтобы продолжить. Letsencrypt будет отправлять вам электронные письма, когда ваши SSL-сертификаты истекут.

Saving debug log to /var/log/letsencrypt/letsencrypt.log  
Plugins selected: Authenticator apache, Installer apache  
Enter email address (used for urgent renewal and security notices) (Enter 'c' to  
cancel): [email protected]

Для TOS (Условий обслуживания) Letsencrypt введите “ A “, чтобы согласиться, и нажмите “ Enter “, чтобы продолжить.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
Please read the Terms of Service at  
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must  
agree in order to register with the ACME server at  
https://acme-v02.api.letsencrypt.org/directory  
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
(A)gree/(C)ancel: A

Для обмена электронной почтой с EFF (Фондом электронной свободы) вы можете ввести “ Y “ для да и “ N “ для нет. В этом примере мы не будем делиться адресом электронной почты с EFF.

Would you be willing to share your email address with the Electronic Frontier  
Foundation, a founding partner of the Let's Encrypt project and the non-profit  
organization that develops Certbot? We'd like to send you email about our work  
encrypting the web, EFF news, campaigns, and ways to support digital freedom.  
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
(Y)es/(N)o: N

Теперь инструмент certbot сгенерирует SSL Letsencrypt для доменного имени Uptime-Kuma. Кроме того, он добавит некоторые дополнительные конфигурации для конфигурации виртуального хоста apache.

Вас попросят настроить автоматическую переадресацию с HTTP на HTTPS. Введите номер “2”, чтобы настроить автоматическую переадресацию apache с HTTP на HTTPS, и нажмите “ Enter “.

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.  
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
1: No redirect - Make no further changes to the webserver configuration.  
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for  
new sites, or if you're confident your site works on HTTPS. You can undo this  
change by editing your web server's configuration.  
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

После успешного процесса развертывания вы увидите аналогичный вывод, как ниже.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
Congratulations! You have successfully enabled https://uptime.example.net  
  
You should test your configuration at:  
https://www.ssllabs.com/ssltest/analyze.html?d=uptime.example.net  
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
IMPORTANT NOTES:  
 - Congratulations! Your certificate and chain have been saved at:  
   /etc/letsencrypt/live/uptime.example.net/fullchain.pem  
   Your key file has been saved at:  
   /etc/letsencrypt/live/uptime.example.net/privkey.pem  
   Your cert will expire on 2021-10-10. To obtain a new or tweaked  
   version of this certificate in the future, simply run certbot again  
   with the "certonly" option. To non-interactively renew *all* of  
   your certificates, run "certbot renew"  
 - Your account credentials have been saved in your Certbot  
   configuration directory at /etc/letsencrypt. You should make a  
   secure backup of this folder now. This configuration directory will  
   also contain certificates and private keys obtained by Certbot so  
   making regular backups of this folder is ideal.  
 - If you like Certbot, please consider supporting our work by:  
  
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate  
   Donating to EFF:                https://eff.org/donate-le  
  
 - We were unable to subscribe you the EFF mailing list because your  
   e-mail address appears to be invalid. You can try again later by  
   visiting https://act.eff.org.

Проверка установки Uptime-Kuma

  1. Откройте веб-браузер и введите URL-адрес установки Uptime-Kuma в адресной строке.

https://uptime.example.net/

Вы будете перенаправлены на защищенное соединение HTTPS.

  1. Создайте нового администратора для Uptime-kuma на первой странице. Введите имя пользователя администратора и пароль, затем нажмите кнопку “ Создать “.

Создание администратора uptime-kuma

  1. После этого войдите с вашим новым именем пользователя и паролем, затем нажмите кнопку “ Войти “.

страница входа uptime-kuma

Теперь вы увидите панель управления uptime-kuma.

  1. Чтобы добавить новый хост для мониторинга, нажмите кнопку “ Добавить новый монитор “.

панель управления Uptime-kuma добавить монитор

  1. В этом примере вы будете мониторить веб-сайт, поэтому выберите “ Тип монитора “ как “ HTTP(s) “, введите URL-адрес веб-сайта, нажмите “ Настроить уведомление “ для поддержки уведомлений, а затем нажмите кнопку “ Сохранить “ внизу страницы.

Добавить хост для мониторинга uptime-kuma

  1. Вы будете перенаправлены на панель управления uptime-Kuma и увидите ваш хост на странице панели управления.

панель управления Uptime-kuma

Ниже приведен еще один пример после добавления нового типа “ TCP/IP “ с закрытыми портами, и результатом является “ ENCONNREFUSED “ или ошибка соединения, потому что порт отклонен/закрыт.

панель управления Uptime-kuma мониторинг

Заключение

Поздравляем! Вы успешно установили Uptime-Kuma с веб-сервером Apache в качестве обратного прокси и защитили развертывание Uptime-Kuma с помощью SSL Letsencrypt. На следующем этапе вы можете добавить свои хосты и активировать уведомления о любых инцидентах.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.