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, пожалуйста, поделитесь им со своими друзьями в социальных сетях, которым может быть интересна эта статья или оставьте комментарий ниже.