Введение
В данной заметке разберем как установить свой сервер для отправки и получения уведомлений – Gotify.
Устанавливать будем с помощью Docker, Nginx будет обратным прокси и выпустим SSL сертификат для https соединения.
Установка Gotify в Docker
Как ни странно, понадобится установленный Docker и Docker Compose.
1. Создаем директории в которых будут хранится файлы Gotify:
mkdir -p /app/gotify && cd /app/gotify
2. Создаем и наполняем содержимым ниже наш docker-compose.yaml файл и запускаем его:
nano docker-compose.yaml
services:
gotify:
image: gotify/server
ports:
- 8080:80
environment:
- GOTIFY_DEFAULTUSER_PASS=ВАШ_ПАРОЛЬ
volumes:
- "./gotify_data:/app/data"
docker compose up -d
Дожидаемся установки, и если у вас нет своего домена и вам не нужно https соединение, то уже можно начинать пользоваться Gotify, переходим в браузер по адресу ниже:
http://IP:8080
admin:пароль который вы указали выше (- GOTIFY_DEFAULTUSER_PASS=ВАШ_ПАРОЛЬ)
Настройка Nginx для обратного прокси Gotify
1. Установим Nginx и Certbot:
apt install nginx certbot python3-certbot-nginx
2. Создадим конфиг для Gotify:
nano /etc/nginx/sites-available/gotify.conf
upstream gotify {
server 127.0.0.1:8080;
}
server {
listen 80;
server_name gotify.ВАШ_ДОМЕН.ru;
location / {
proxy_pass http://gotify;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
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 http;
proxy_redirect http:// $scheme://;
proxy_set_header Host $http_host;
proxy_connect_timeout 1m;
proxy_send_timeout 1m;
proxy_read_timeout 1m;
}
}
3. Создаем символическую ссылку для виртуального хоста Gotify:
ln -s /etc/nginx/sites-available/gotify.conf /etc/nginx/sites-enabled/
4. Перезапустим Nginx
systemctl restart nginx
Выпуск SSL сертификата с помощью Certbot для Gotify
certbot --non-interactive -m ваша_почта@ya.ru --agree-tos --no-eff-email --nginx -d gotify.ВАШ_ДОМЕН.ru
Бежим в браузер и проверяем уже доступность по доменному имени и https соединению:
https://gotify.домен.ru
admin:пароль который вы указали выше (- GOTIFY_DEFAULTUSER_PASS=ВАШ_ПАРОЛЬ)
Для дополнительной защиты можем закрыть доступность к веб морде Gotify по IP и порту снаружи, с помощью Iptables:
iptables -I DOCKER-USER -i ваш_интернет_интерфейс -p tcp --dport 80 -j DROP
iptables -I DOCKER-USER -i ens3 -p tcp --dport 80 -j DROP
Заключение
В данной заметке разобрали как установить Gotify с помощью Docker, с помощью Nginx сделали обратный прокси и выпустили SSL сертификат с помощью Certbot.
Что бы не потерять инструкцию рекомендую подписаться на мой личный блог-канал в Telegram в котором я делюсь в формате заметок своими знаниями и интересным из мира IT, спасибо за потраченное время на чтение и доброго времени суток!)
Так же вы можете отблагодарить автора материально: