Gotify установка вместе с Nginx и SSL

Введение

В данной заметке разберем как установить свой сервер для отправки и получения уведомлений – 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, спасибо за потраченное время на чтение и доброго времени суток!)

Так же вы можете отблагодарить автора материально:

Оставьте комментарий