Self hosted сервис push уведомлений, умеет отправлять сообщения на android, webui. https://gotify.net/
Имеет смысл настроить как резервный канал оповещения, на тот случай, когда telegram недоступен. Ну и self-hosted конечно.
Установка и настройка сервера Ссылка на заголовок
mkdir /opt/gotify
mkdir /var/log/gotify
cd /opt/gotify
wget https://github.com/gotify/server/releases/download/v2.8.0/gotify-linux-amd64.zip
unzip gotify-linux-amd64.zip && gotify-linux-amd64.zip
Прежде чем запустить сервис нужно создать конфиг, тк в нем будут указан дефолтный логин и пароль
скачиваем пример конфига
wget -O config.yml https://raw.githubusercontent.com/gotify/server/master/config.example.yml
настраиваем, тут настройка сервера с tls (подразумевается что на сервере уже есть сервис с letsencrypt сертом)
# /etc/gotify/config.yml
server:
keepaliveperiodseconds: 0
listenaddr: ''
port: 80
ssl:
enabled: true
redirecttohttps: true
listenaddr: ''
port: 4443
certfile: /etc/letsencrypt/live/какой-то.домен/fullchain.pem
certkey: /etc/letsencrypt/live/какой-то.домен/privkey.pem
letsencrypt:
enabled: false
accepttos: false
cache: data/certs
hosts:
responseheaders:
trustedproxies:
cors:
alloworigins:
# - ".+.example.com"
# - "otherdomain.com"
allowmethods:
# - "GET"
# - "POST"
allowheaders:
# - "Authorization"
# - "content-type"
stream:
pingperiodseconds: 45
allowedorigins:
# - ".+.example.com"
# - "otherdomain.com"
database: # see below
dialect: sqlite3
connection: data/gotify.db
defaultuser:
name: дефолтный логин
pass: сложный пароль
passstrength: 10
uploadedimagesdir: data/images
pluginsdir: data/plugins
registration: false
Для удобства запуска создаем systemd юнит
# /etc/systemd/system/gotify.service
[Unit]
Description=Gotify
Requires=network.target
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/gotify
ExecStart=/opt/gotify/gotify-linux-amd64
StandardOutput=append:/var/log/gotify/gotify.log
StandardError=append:/var/log/gotify/gotify-error.log
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
стартуем сервис
systemctl daemon-reload
systemctl start gotify.service
должен создаться /opt/gotify/data/gotify.db - это sqlite база сервиса
Настройка клиента Ссылка на заголовок
В браузере логинимся https://какой-то.домен:4443 Создаем приложение в APPS Копируем токен этого приложения и отправляем тестовое сообщение
curl "https://какой-то.домен:4443/message?token=токен_приложения" -F "title=backup" -F "message=success2" -F "priority=5"
Если все ок, то видим сообщение в браузере.
Но весь смысл уведомлений это оперативность, поэтому ставим gotify на телефон. В приложении на телефоне указываем ссылку на сервис https://какой-то.домен:4443 и вводим логин и пароль
Внимание! Пользователь видит сообщения только своих APPS’ов
Использование в скриптах Ссылка на заголовок
напишем функцию alert
function alert {
token="токен_приложения"
title=$(hostname)
MESSAGE=$1
curl "https://какой-то.домен:4443/message?token=$token" \
-F "title=$title" \
-F "message=$MESSAGE" \
-F "priority=5"
}
Использование
alert "Ахтунг! Всё пропало! Гипс снимают, клиент уезжает!"