Ntfy - простой сервер для отправки и получения push-сообщений. Он быстрый, многофункциональный и упакован в один бинарный файл. В этой статье мы узнаем, как установить Ntfy на Ubuntu 25.04. Итак, приступим.
Предпосылки#
- Сервер с Ubuntu 25.04 в качестве ОС
- Права пользователя: пользователь root или обычный пользователь с привилегиями sudo
Конвенции#
1
2
| # - данные команды должны выполняться с правами root либо непосредственно от имени пользователя root, либо с помощью команды sudo.
$ - данные команды должны выполняться от имени обычного пользователя
|
Шаг 1. Обновите систему#
Свежая установка Ubuntu 25.04 требует обновления пакетов до последних доступных версий.
1
| $ sudo apt update -y && sudo apt upgrade -y
|
Шаг 2. Создайте пользователя для запуска#
1
| $ sudo useradd -s /usr/sbin/nologin -r -M ntfy
|
Шаг 3. Установите Ntfy#
Загрузите последний бинарный файл со страницы релизов на GitHub.
1
2
3
4
| $ wget https://github.com/binwiederhier/ntfy/releases/download/v2.11.0/ntfy_2.11.0_linux_amd64.tar.gz
$ tar zxvf ntfy_2.11.0_linux_amd64.tar.gz
$ sudo mv ntfy_2.11.0_linux_amd64/ntfy /usr/local/bin/ntfy
$ sudo chmod +x /usr/local/bin/ntfy
|
Создайте новый каталог и скопируйте файлы конфигурации с помощью следующей команды
1
2
| $ sudo mkdir -p /etc/ntfy/
$ sudo cp ntfy_2.11.0_linux_amd64/{client,server}/*.yml /etc/ntfy
|
Отредактируйте файл /etc/ntfy/server.yml
, чтобы он соответствовал вашим данным.
Сохраните и закройте файл.
1
2
3
| $ sudo chmod 600 /etc/ntfy/server.yml
$ sudo chmod go-rw /etc/ntfy/server.yml
$ sudo chown ntfy:ntfy /etc/ntfy/server.yml
|
Шаг 4. Настройте службу systemd для запуска Ntfy#
1
| $ sudo nano /etc/systemd/system/ntfy.service
|
Заполните файл следующим.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| [Unit]
Description=ntfy server
After=network.target
[Service]
User=ntfy
Group=ntfy
ExecStart=/usr/local/bin/ntfy serve --no-log-dates
ExecReload=/bin/kill --signal HUP $MAINPID
Restart=on-failure
AmbientCapabilities=CAP_NET_BIND_SERVICE
LimitNOFILE=10000
[Install]
WantedBy=multi-user.target
|
Включите и запустите ntfy при загрузке.
1
2
| $ sudo systemctl start ntfy.service
$ sudo systemctl enable ntfy.service
|
Всё, что осталось - это войти в систему по адресу http://localhost:2586
Шаг 5. Настройте Nginx в качестве обратного прокси#
1
| $ sudo apt -y install nginx
|
Создайте обратный конфигурацию прокси-сервера для Ntfy.
1
| $ sudo nano /etc/nginx/sites-available/ntfy.conf
|
Заполните файл следующей конфигурацией.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| server {
server_name push.example.com;
listen 80;
location / {
# Redirect HTTP to HTTPS, but only for GET topic addresses, since we want
# it to work with curl without the annoying https:// prefix
set $redirect_https "";
if ($request_method = GET) {
set $redirect_https "yes";
}
if ($request_uri ~* "^/([-_a-z0-9]{0,64}$|docs/|static/)") {
set $redirect_https "${redirect_https}yes";
}
if ($redirect_https = "yesyes") {
return 302 https://$http_host$request_uri$is_args$query_string;
}
proxy_pass http://127.0.0.1:2586;
proxy_http_version 1.1;
proxy_buffering off;
proxy_request_buffering off;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 3m;
proxy_send_timeout 3m;
proxy_read_timeout 3m;
client_max_body_size 0; # Stream request body to backend
}
}
|
Включите конфигурацию обратной прокси-сервера
1
| $ sudo ln -s /etc/nginx/sites-available/ntfy.conf /etc/nginx/sites-enabled/ntfy.conf
|
Наконец, мы можем проверить, не имеет ли наш файл nginx никакой ошибки.
1
2
| $ sudo nginx -t
$ sudo systemctl restart nginx.service
|
Шаг 6. Получите сертификат TLS от Let’s Encrypt#
Мы будем использовать Let’s Encrypt для получения SSL-сертификата бесплатно. Пожалуйста, убедитесь, что вы указали свой поддомен на IP-адрес сервера. Шаги, приведенные ниже, будут работать только в том случае, если вы обслуживаете интерфейс управления с помощью Nginx.
1
| $ sudo apt install python3-certbot-nginx
|
Запрос на Let’s Encrypt SSL.
1
| $ sudo certbot certonly --nginx -d push.example.com
|
Проверьте SSL
Откройте следующую ссылку в вашем веб-браузере для проверки.
1
| https://push.example.com
|
Следующая команда гарантирует, что Certbot может проверить ваш поддомен с помощью вашей конфигурации.
1
| $ sudo certbot renew --dry-run
|
Если пробный запуск прошел без ошибок, все готово. Теперь процесс продления будет автоматизирован.
Он автоматически настраивает /etc/nginx/sites-available/ntfy.conf
для включения SSL.
Обновление Ntfy#
Загрузите последний бинарный выпуск с GitHub и извлеките его содержимое и замените бинарный файл.
Затем посетите веб-сайт по адресу https://push.example.com
для доступа.
Завершение#
Собственно на этом всё, теперь вы можете создавать и отправлять push-сообщения всем своим подписчикам обо всех ваших выгодных предложениях.
Если вам понравился этот пост о том, как установить Ntfy на Ubuntu 25.04, пожалуйста, поделитесь им со своими друзьями в социальных сетях, которым может быть интересна эта статья или оставьте комментарий ниже.