Как установить Gotify на Ubuntu 25.04
Дата публикации: 2025-05-20T09:04:53
Теги: ["push-messages", "ubuntu"]
[Gotify](https://gotify.net) - простой сервер для отправки и получения push-сообщений. Он быстрый, многофункциональный и упакован в один бинарный файл, и единственная зависимость — это база данных Postgres. В этой статье мы узнаем, как установить Gotify на Ubuntu 25.04. Итак, приступим.
Предпосылки
- Сервер с Ubuntu 25.04 в качестве ОС
- Права пользователя: пользователь root или обычный пользователь с привилегиями sudo
Конвенции
# - данные команды должны выполняться с правами root либо непосредственно от имени пользователя root, либо с помощью команды sudo. $ - данные команды должны выполняться от имени обычного пользователя
Шаг 1. Обновите систему
Свежая установка Ubuntu 25.04 требует обновления пакетов до последних доступных версий.
$ sudo apt update -y && sudo apt upgrade -y
Шаг 2. Установите PostgreSQL
Установите пакет Postgres вместе с пакетом contrib, который добавляет некоторые дополнительные утилиты и функции.
$ sudo apt install postgresql postgresql-contrib
После установки запустите и включите службу PostgreSQL.
$ sudo systemctl enable postgresql.service && sudo systemctl start postgresql.service
Шаг 3. Создание базы данных
Нам нужно создать базу данных для Gotify для работы.
$ sudo -u postgres psql -c "CREATE USER gotify WITH PASSWORD 'yourpassword';" $ sudo -u postgres psql -c "CREATE DATABASE gotify_db OWNER gotify;" $ sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE gotify_db TO gotify;"
Шаг 4. Создайте пользователя для запуска
$ sudo useradd -s /usr/sbin/nologin -r -M gotify
Шаг 5. Установите Gotify
Загрузите последний бинарный файл со страницы релизов на [GitHub](https://github.com/gotify/server/releases).
$ wget https://github.com/gotify/server/releases/download/v2.6.3/gotify-linux-amd64.zip $ unzip gotify-linux-amd64.zip $ sudo mv gotify-linux-amd64/gotify-linux-amd64 /usr/local/bin/gotify $ sudo chmod +x /usr/local/bin/gotify
Создайте новый файл конфигурации с помощью следующей команды
$ sudo mkdir -p /etc/gotify/
Создайте новый файл с именем `/etc/gotify/config.yml`
$ sudo nano config.yml
Отредактируйте файл `config.yml`, чтобы он соответствовал вашим данным, включая ваше имя пользователя и безопасный пароль.
sudo mkdir -p /var/lib/gotify/images && sudo mkdir /var/lib/gotify/plugins && sudo chown -R gotify /var/lib/gotify
server:
keepaliveperiodseconds: 0 # 0 = use Go default (15s); -1 = disable keepalive; set the interval in which keepalive packets will be sent. Only change this value if you know what you are doing.
listenaddr: '' # the address to bind on, leave empty to bind on all addresses. Prefix with "unix:" to create a unix socket. Example: "unix:/tmp/gotify.sock".
port: 9000 # the port the HTTP server will listen on
ssl:
enabled: false # if https should be enabled
redirecttohttps: true # redirect to https if site is accessed by http
listenaddr: '' # the address to bind on, leave empty to bind on all addresses. Prefix with "unix:" to create a unix socket. Example: "unix:/tmp/gotify.sock".
port: 443 # the https port
certfile: # the cert file (leave empty when using letsencrypt)
certkey: # the cert key (leave empty when using letsencrypt)
letsencrypt:
enabled: false # if the certificate should be requested from letsencrypt
accepttos: false # if you accept the tos from letsencrypt
cache: data/certs # the directory of the cache from letsencrypt
hosts: # the hosts for which letsencrypt should request certificates
# - mydomain.tld
# - myotherdomain.tld
responseheaders: # response headers are added to every response (default: none)
# X-Custom-Header: "custom value"
trustedproxies: # IPs or IP ranges of trusted proxies. Used to obtain the remote ip via the X-Forwarded-For header. (configure 127.0.0.1 to trust sockets)
# - 127.0.0.1
# - 192.168.178.0/24
# - ::1
cors: # Sets cors headers only when needed and provides support for multiple allowed origins. Overrides Access-Control-* Headers in response headers.
alloworigins:
# - ".+.example.com"
# - "otherdomain.com"
allowmethods:
# - "GET"
# - "POST"
allowheaders:
# - "Authorization"
# - "content-type"
stream:
pingperiodseconds: 45 # the interval in which websocket pings will be sent. Only change this value if you know what you are doing.
allowedorigins: # allowed origins for websocket connections (same origin is always allowed, default only same origin)
- "push.example.com"
database: # see below
dialect: postgres
connection: host=localhost port=5432 user=gotify dbname=gotify_db password=yourpassword
defaultuser: # on database creation, gotify creates an admin user (these values will only be used for the first start, if you want to edit the user after the first start use the WebUI)
name: admin # the username of the default user
pass: admin # the password of the default user
passstrength: 10 # the bcrypt password strength (higher = better but also slower)
uploadedimagesdir: /var/lib/gotify/images # the directory for storing uploaded images
pluginsdir: /var/lib/gotify/plugins # the directory where plugin resides (leave empty to disable plugins)
registration: false # enable registrations
Добавьте свой домен в настройках stream.
Добавьте пользователя базы данных и перейдите в настройки базы данных.
Обновите пользователя-администратора своей учетной записи.
Сохраните и закройте файл.
$ sudo chmod 600 /etc/gotify/config.yml $ sudo chmod go-rw /etc/gotify/config.yml $ sudo chown gotify:gotify /etc/gotify/config.yml
Шаг 6. Настройте службу systemd для запуска Gotify
$ sudo nano /etc/systemd/system/gotify.service
Заполните файл следующим.
[Unit] Description=Gotify Requires=network.target After=network.target After=postgresql.service [Service] Type=simple User=gotify Group=gotify WorkingDirectory=/etc/gotify/ EnvironmentFile=/etc/gotify/config.yml ExecStart=/usr/local/bin/gotify Restart=on-failure RestartSec=3 [Install] WantedBy=multi-user.target
Включите и запустите gotify при загрузке.
$ sudo systemctl start gotify.service $ sudo systemctl enable gotify.service
Всё, что осталось - это войти в систему по адресу `http://localhost:9000` используя учетные данные администратора, которые мы установили в файле `config.yml`, и ввести все наши пользовательские настройки на вкладке «Настройки».
Шаг 7. Настройте Nginx в качестве обратного прокси
$ sudo apt-get -y install nginx
Создайте обратный конфигурацию прокси-сервера для Gotify.
$ sudo nano /etc/nginx/sites-available/gotify.conf
Заполните файл следующей конфигурацией.
server {
server_name push.example.com;
listen 80;
location / {
proxy_pass http://127.0.0.1:9000;
proxy_redirect off;
proxy_set_header Host $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;
}
}
Включите конфигурацию обратной прокси-сервера
$ sudo ln -s /etc/nginx/sites-available/gotify.conf /etc/nginx/sites-enabled/gotify.conf
Наконец, мы можем проверить, не имеет ли наш файл nginx никакой ошибки.
$ sudo nginx -t $ sudo systemctl restart nginx.service
Шаг 8. Получите сертификат 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/gotify.conf` для включения SSL.
Обновление Gotify
Загрузите последний бинарный выпуск с [GitHub](https://github.com/gotify/server/releases) и извлеките его содержимое и замените бинарный файл.
Затем посетите веб-сайт по адресу `https://push.example.com` для доступа.
Завершение
Собственно на этом всё, теперь вы можете создавать и отправлять push-сообщения всем своим подписчикам обо всех ваших выгодных предложениях.
Если вам понравился этот пост о том, как установить Gotify на Ubuntu 25.04, пожалуйста, поделитесь им со своими друзьями в социальных сетях, которым может быть интересна эта статья или оставьте комментарий ниже.