Установка · 8 min read · Oct 26, 2025
Как установить Statping на Ubuntu 22.04

Statping — это монитор доступности с открытым исходным кодом, который отслеживает веб-сайты и приложения, размещенные на нескольких серверах. Он может генерировать красивую страницу состояния, получая данные в реальном времени из различных источников. Он может работать с несколькими системами баз данных, включая SQLite, MySQL и Postgres. В нашем учебном пособии мы будем использовать форк Statping, называемый Statping-ng, так как оригинальное приложение больше не разрабатывается.
В этом учебном пособии вы узнаете, как установить Statping на сервер Ubuntu 22.04, используя Docker и сервер Nginx в качестве прокси.
Предварительные требования
- Сервер с установленной Ubuntu 22.04.
- Пользователь, не являющийся root, с правами sudo.
- Простой брандмауэр (UFW) включен и работает.
- Полностью квалифицированное доменное имя (FQDN), указывающее на сервер, например,
status.example.com. - Все обновлено.
$ sudo apt update && sudo apt upgrade
Шаг 1 - Настройка брандмауэра
Перед установкой любых пакетов первым шагом является настройка брандмауэра для разрешения HTTP и HTTPS соединений.
Проверьте статус брандмауэра.
$ sudo ufw status
Вы должны увидеть что-то вроде следующего.
Статус: активен
Кому Действие Откуда
-- ------ ----
OpenSSH РАЗРЕШИТЬ Везде
OpenSSH (v6) РАЗРЕШИТЬ Везде (v6)
Разрешите порты HTTP и HTTPS.
$ sudo ufw allow http
$ sudo ufw allow https
Проверьте статус снова, чтобы подтвердить.
$ sudo ufw status
Статус: активен
Кому Действие Откуда
-- ------ ----
OpenSSH РАЗРЕШИТЬ Везде
80/tcp РАЗРЕШИТЬ Везде
443 РАЗРЕШИТЬ Везде
OpenSSH (v6) РАЗРЕШИТЬ Везде (v6)
80/tcp (v6) РАЗРЕШИТЬ Везде (v6)
443 (v6) РАЗРЕШИТЬ Везде (v6)
Шаг 2 - Установка Docker
Добавьте официальный GPG-ключ Docker.
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
Запустите следующую команду, чтобы добавить репозиторий Docker.
$ echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Обновите систему, чтобы включить репозиторий Docker.
$ sudo apt update
Установите Docker и плагин Docker Compose.
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
В этом учебном пособии будет использоваться плагин Docker Compose v2 вместо старого устаревшего бинарного файла. Поэтому команда для его запуска изменилась с docker-compose на docker compose, и это отражено здесь.
Docker работает с повышенными привилегиями, поэтому вам нужно будет часто использовать sudo для выполнения команд. Лучший вариант — добавить вашу учетную запись Linux в группу пользователей docker.
$ sudo usermod -aG docker ${USER}
Переменная ${USER} подбирает текущую учетную запись системы. Если вы не вошли в систему с пользователем, которому хотите предоставить привилегии, замените ${USER} на имя пользователя.
Чтобы применить новое членство в группе, выйдите из сервера и войдите снова или используйте следующую команду. Вам будет предложено ввести пароль пользователя.
$ su - ${USER}
Шаг 3 - Установка Nginx
Ubuntu 22.04 поставляется со старой версией Nginx. Чтобы установить последнюю версию, вам нужно загрузить официальный репозиторий Nginx.
Импортируйте ключ подписи Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Добавьте репозиторий для стабильной версии Nginx.
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Обновите системные репозитории.
$ sudo apt update
Установите Nginx.
$ sudo apt install nginx
Проверьте установку.
$ nginx -v
nginx version: nginx/1.22.0
Шаг 4 - Установка SSL
Нам нужно установить Certbot для генерации SSL-сертификата. Вы можете либо установить Certbot, используя репозиторий Ubuntu, либо получить последнюю версию с помощью инструмента Snapd. Мы будем использовать версию Snapd.
Ubuntu 22.04 поставляется с установленным Snapd по умолчанию. Запустите следующие команды, чтобы убедиться, что ваша версия Snapd актуальна.
$ sudo snap install core
Установите Certbot.
$ sudo snap install --classic certbot
Используйте следующую команду, чтобы убедиться, что команда Certbot может быть выполнена, создав символическую ссылку на директорию /usr/bin.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Запустите следующую команду для генерации SSL-сертификата.
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d status.example.com
Вышеуказанная команда загрузит сертификат в директорию /etc/letsencrypt/live/status.example.com на вашем сервере.
Сгенерируйте сертификат Diffie-Hellman group.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Откройте файл /etc/letsencrypt/renewal/status.example.com.conf для редактирования.
$ sudo nano /etc/letsencrypt/renewal/status.example.com.conf
Вставьте следующий код в конец.
pre_hook = systemctl stop nginx
post_hook = systemctl start nginx
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Мы сгенерировали SSL-сертификат, используя автономный вариант Certbot. Он запускает свой веб-сервер для создания сертификата, что означает, что Nginx должен быть выключен во время обновления. Команды pre_hook и post_hook выполняются до и после обновления, чтобы автоматически остановить и перезапустить сервер Nginx, тем самым не требуя ручного вмешательства.
Чтобы проверить, работает ли обновление SSL, выполните пробный запуск процесса.
$ sudo certbot renew --dry-run
Если вы не видите ошибок, вы готовы. Ваш сертификат будет автоматически обновляться.
Шаг 5 - Настройка файла Docker Compose
Создайте директорию для файла Docker Compose.
$ mkdir ~/statping
Перейдите в директорию.
$ cd ~/statping
Создайте и откройте файл docker-compose для редактирования.
$ nano docker-compose.yml
Вставьте следующий код в него.
services:
statping:
container_name: statping
image: adamboutcher/statping-ng
restart: always
ports:
- 8080:8080
volumes:
- ./statping_data:/app
links:
- postgres
depends_on:
- postgres
environment:
DB_CONN: postgres
DB_HOST: postgres
DB_PORT: 5432
DB_DATABASE: statping
DB_USER: root
DB_PASS: password123
NAME: 'Howtoforge Statping page'
DESCRIPTION: 'Statping Demo page'
USE_ASSETS: 'true'
SAMPLE_DATA: 'false'
ALLOW_REPORTS: 'false'
ADMIN_USER: navjot
ADMIN_PASSWORD: yourpassword
postgres:
container_name: postgres
image: postgres:14-alpine
ports:
- 5432:5432
volumes:
- ./pg_data:/var/lib/postgresql/data/pg_data
environment:
POSTGRES_PASSWORD: password123
POSTGRES_DB: statping
POSTGRES_USER: root
POSTGRES_PORT: 5432
PGDATA: /var/lib/postgresql/data/pg_data
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Мы настраиваем образы Docker Statping и Postgres. Большая часть файла Docker проста для понимания. Мы используем локальные резервные копии диска для хранения данных приложения и базы данных Postgres. Мы также настроили несколько переменных окружения для настройки приложения и базы данных. Давайте взглянем на них. Чтобы получить полный список переменных окружения, которые вы можете определить, проверьте официальный список из репозитория Statping на GitHub.
- Переменная USE_ASSETS позволяет приложению использовать ресурсы из папки
assets. - Переменная SAMPLE_DATA установлена в false, чтобы отключить стандартные мониторы, которые Statping настраивает во время установки.
- Переменная ALLOW_REPORTS установлена в false, чтобы отключить анонимные отчеты об ошибках, которые отправляет Statping.
- Переменные ADMIN_USER и ADMIN_PASSWORD используются для установки информации для входа для пользователя по умолчанию.
- Переменные DB_ используются для установки учетных данных базы данных, которые должны соответствовать переменным, определенным для контейнера Postgres.
Шаг 6 - Настройка Nginx
Откройте файл /etc/nginx/nginx.conf для редактирования.
$ sudo nano /etc/nginx/nginx.conf
Добавьте следующую строку перед строкой include /etc/nginx/conf.d/*.conf;.
server_names_hash_bucket_size 64;
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Создайте и откройте файл /etc/nginx/conf.d/statusping.conf для редактирования.
$ sudo nano /etc/nginx/conf.d/statusping.conf
Вставьте следующий код в него. Замените status.example.com на ваше доменное имя.
upstream backend {
server 127.0.0.1:8080;
keepalive 32;
}
server {
listen 80 default_server;
server_name status.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name status.example.com;
http2_push_preload on; # Включить HTTP/2 Server Push
ssl_certificate /etc/letsencrypt/live/status.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/status.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/status.example.com/chain.pem;
ssl_session_timeout 1d;
# Включить версии TLS (TLSv1.3 требуется для предстоящего HTTP/3 QUIC).
ssl_protocols TLSv1.2 TLSv1.3;
# Включить 0-RTT TLSv1.3. Используйте $ssl_early_data при обратном проксировании, чтобы
# предотвратить атаки повторного воспроизведения.
#
# @see: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data
ssl_early_data on;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
# OCSP Stapling --- получать OCSP записи из URL в ssl_certificate и кэшировать их
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
add_header X-Early-Data $tls1_3_early_data;
access_log /var/log/nginx/statusping.access.log main;
error_log /var/log/nginx/statusping.error.log;
location / {
client_max_body_size 50M;
proxy_set_header Connection "";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_set_header X-Client-Verify SUCCESS;
proxy_set_header X-Client-DN $ssl_client_s_dn;
proxy_set_header X-SSL-Subject $ssl_client_s_dn;
proxy_set_header X-SSL-Issuer $ssl_client_i_dn;
proxy_buffers 256 16k;
proxy_buffer_size 16k;
proxy_read_timeout 1800s;
proxy_connect_timeout 1800s;
proxy_http_version 1.1;
proxy_pass http://backend;
}
}
# Этот блок полезен для отладки TLS v1.3. Пожалуйста, не стесняйтесь удалять это
# и использовать переменную `$ssl_early_data`, предоставленную NGINX напрямую, если вы
# хотите это сделать.
map $ssl_early_data $tls1_3_early_data {
"~." $ssl_early_data;
default "";
}
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Проверьте конфигурацию Nginx.
$ sudo nginx -t
Перезапустите сервер Nginx.
$ sudo systemctl restart nginx
Шаг 7 - Запуск Statping
Перейдите в директорию Statping.
$ cd ~/statping
Создайте и запустите контейнер Docker.
$ docker compose up -d
Проверьте статус контейнера.
$ docker compose ps
Вы увидите следующий вывод.
ИМЯ КОМАНДА СЛУЖБА СТАТУС ПОРТЫ
postgres "docker-entrypoint.s…" postgres работает 0.0.0.0:5432->5432/tcp
statping "/bin/sh -c 'statpin…" statping работает (здоровый) 0.0.0.0:8080->8080/tcp
Вы также можете использовать команду docker ps, чтобы получить более подробный статус. Чтобы проверить журналы контейнера, используйте команду docker logs <имя контейнера>.
Шаг 8 - Настройка Statping
Теперь, когда ваш контейнер работает, запустите URL https://status.example.com в вашем браузере, и вы увидите пустую страницу состояния. Если вы пропустите переменную SAMPLE_DATA в файле docker compose, вы увидите полную страницу с различными предопределенными службами.

Нажмите на ссылку Панель управления внизу, чтобы получить доступ к экрану входа.

Введите admin в качестве имени пользователя и пароля по умолчанию. Убедитесь, что вы также вводите имя пользователя, даже если оно выглядит как предзаполненное. Нажмите кнопку Войти, чтобы получить доступ к панели управления Statping.

Чтобы добавить новую службу, нажмите кнопку Создать и заполните необходимые значения.

Нажмите кнопку Создать службу внизу, чтобы завершить. Чтобы настроить электронную почту и другие уведомления, посетите страницу настроек. Вы также можете дать своей странице статистики новое имя.

Шаг 9 - Обновление Statping
Обновление Statping — это простой шаг. Перейдите в директорию Docker Compose Statping.
$ cd ~/statping
Затем остановите и удалите существующий контейнер. Ваши данные будут сохранены.
$ docker compose down --remove-orphans
Загрузите последнюю версию образа Docker Statping.
$ docker compose pull
Запустите контейнеры снова.
$ docker compose up -d
Ваша установка Statping обновлена и снова запущена.
Заключение
На этом заканчивается учебное пособие, в котором вы узнали, как установить Statping на сервер Ubuntu 22.04. Если у вас есть вопросы, оставьте их в комментариях ниже.
Get new posts in your inbox
No spam. Unsubscribe anytime.