Как установить Ntfy на Ubuntu 25.04
Дата публикации: 2025-05-21T08:49:03
Теги: ["push-messages", "ubuntu"]
[Ntfy](https://ntfy.sh) - простой сервер для отправки и получения push-сообщений. Он быстрый, многофункциональный и упакован в один бинарный файл. В этой статье мы узнаем, как установить Ntfy на Ubuntu 25.04. Итак, приступим.
Предпосылки
- Сервер с Ubuntu 25.04 в качестве ОС
- Права пользователя: пользователь root или обычный пользователь с привилегиями sudo
Конвенции
# - данные команды должны выполняться с правами root либо непосредственно от имени пользователя root, либо с помощью команды sudo. $ - данные команды должны выполняться от имени обычного пользователя
Шаг 1. Обновите систему
Свежая установка Ubuntu 25.04 требует обновления пакетов до последних доступных версий.
$ sudo apt update -y && sudo apt upgrade -y
Шаг 2. Создайте пользователя для запуска
$ sudo useradd -s /usr/sbin/nologin -r -M ntfy
Шаг 3. Установите Ntfy
Загрузите последний бинарный файл со страницы релизов на [GitHub](https://github.com/binwiederhier/ntfy/releases).
$ wget https://github.com/binwiederhier/ntfy/releases/download/v2.12.0/ntfy_2.12.0_linux_amd64.tar.gz $ tar zxvf ntfy_2.12.0_linux_amd64.tar.gz $ sudo mv ntfy_2.12.0_linux_amd64/ntfy /usr/local/bin/ntfy $ sudo chmod +x /usr/local/bin/ntfy
Создайте новый каталог и скопируйте файлы конфигурации с помощью следующей команды
$ sudo mkdir -p /etc/ntfy/
$ sudo cp ntfy_2.12.0_linux_amd64/{client,server}/*.yml /etc/ntfy
Отредактируйте файл `/etc/ntfy/server.yml`, чтобы он соответствовал вашим данным.
Сохраните и закройте файл.
$ 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
$ sudo nano /etc/systemd/system/ntfy.service
Заполните файл следующим.
[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 при загрузке.
$ sudo systemctl start ntfy.service $ sudo systemctl enable ntfy.service
Всё, что осталось - это войти в систему по адресу `http://localhost:2586`
Шаг 5. Настройте Nginx в качестве обратного прокси
$ sudo apt -y install nginx
Создайте обратный конфигурацию прокси-сервера для Ntfy.
$ sudo nano /etc/nginx/sites-available/ntfy.conf
Заполните файл следующей конфигурацией.
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
}
}
Включите конфигурацию обратной прокси-сервера
$ sudo ln -s /etc/nginx/sites-available/ntfy.conf /etc/nginx/sites-enabled/ntfy.conf
Наконец, мы можем проверить, не имеет ли наш файл nginx никакой ошибки.
$ sudo nginx -t $ sudo systemctl restart nginx.service
Шаг 6. Получите сертификат TLS от Let's Encrypt
Мы будем использовать Let's Encrypt для получения SSL-сертификата бесплатно. Пожалуйста, убедитесь, что вы указали свой поддомен на IP-адрес сервера. Шаги, приведенные ниже, будут работать только в том случае, если вы обслуживаете интерфейс управления с помощью Nginx.
$ sudo apt install python3-certbot-nginx
Запрос на Let’s Encrypt SSL.
$ sudo certbot certonly --nginx -d push.example.com
Проверьте SSL
Откройте следующую ссылку в вашем веб-браузере для проверки.
https://push.example.com
Следующая команда гарантирует, что Certbot может проверить ваш поддомен с помощью вашей конфигурации.
$ sudo certbot renew --dry-run
Если пробный запуск прошел без ошибок, все готово. Теперь процесс продления будет автоматизирован.
Он автоматически настраивает `/etc/nginx/sites-available/ntfy.conf` для включения SSL.
Обновление Ntfy
Загрузите последний бинарный выпуск с [GitHub](https://github.com/binwiederhier/ntfy/releases) и извлеките его содержимое и замените бинарный файл.
Затем посетите веб-сайт по адресу `https://push.example.com` для доступа.
Завершение
Собственно на этом всё, теперь вы можете создавать и отправлять push-сообщения всем своим подписчикам обо всех ваших выгодных предложениях.
Если вам понравился этот пост о том, как установить Ntfy на Ubuntu 25.04, пожалуйста, поделитесь им со своими друзьями в социальных сетях, которым может быть интересна эта статья или оставьте комментарий ниже.