no-style

Установка freshrss в docker контейнере + postgres

docker-compose + linuxserver + wireguard
Получать новости из соц.сетей не продуктивно. Все самые актуальные новости теряются в километрах развлекательного контента. Сегодня будем решать вопрос борьбы с прокрастинацией, а поможет нам в этом freshrss, который мы установим в docker контейнер и подключим к бд postgres


Необходимые требования

Чтобы всё получилось нам понадобится:

  • Сервер с Root доступом. Рекомендую вот этот
  • Доменное имя. Можно бесплатный домен или поддомен
  • Установленный Docker + Docker-Compose
  • Установленный и настроенный Nginx Proxy Manager
  • 15 - 45 минут времени






В двух словах о freshrss

Freshrss является агрегатором Rss лент. Rss это такой специальный формат написанный с использованием XML разметки, который предназначен для описания новостей конкретного сайта и/или разделов сайта.

В былые времена, когда социальные сети ещё не были мейнстримом, технологии Rss пользовались большой популярностью. Затем с появлением соц. сетей потихоньку ушли на второй план.

В данный момент соц.сети слишком агрессивно навязывающие популярный контент, не оставляют выбора и технология Rss становится снова востребованной. Тем более что сама технология никуда не уходила.

С помощью freshrss мы сможем подписаться и получать последние новости из наших любимых источников информации, если они у них есть. Все новости будут выводиться в приятном минималистичном дизайне в веб интерфейсе.

Полученные новости будут кэшироваться и разбиваться по тегам. Так же мы получим возможность разделять новости на прочитанные и непрочитанные.

Есть возможность менять дизайн, который выглядит приятно и не режет глаз.

Есть система плагинов, расширяющая основной функционал.







Подготовка

Как и в предыдущих статьях про докер контейнеры мы будем придерживаться правила - хранить все контейнеры в одном месте. Создаём необходимые директории для freshrss

sudo mkdir -p /app/misc/freshrss/{data,DB,extensions}

Сделаем нашего пользователя (не root !) владельцем этой директории

sudo chown -R $USER:$USER /app/misc/freshrss






Конфигурация и запуск

Перейдём в директорию, которую мы создавали выше

cd /app/misc/freshrss

Создадим фаил docker-compose.yml

nano docker-compose.yml

И заполняем его таким таким содержанием. Данный конфиг подойдёт сразу под amd64 и arm64 архитектур.

Если Вы хотите поднять FreshRSS не светя порты наружу, прочитайте про проксирование приложения в NPM через хостнейм. После усвоения материала используйте этот фаил docker-dompose. В противном случае используйте первый вариант, изначально пост писался именно под него!

В конфиге обязательно обращаем внимание на строки PUID и PGID. Если нам это нужно то в них мы можем вписать идентификатор пользователя и группы, от которого хотим запускать контейнер!

Для этого их необходимо раскомментировать. А сами ID можно посмотреть написав в терминале:

id

Самые распространённые идентификаторы 1000 и 1001



Следующим шагом мы придумываем логин и пароль для базы данных. И вписываем их в этот кусок конфига

- POSTGRES_DB=freshrss
- POSTGRES_USER=freshrss
- POSTGRES_PASSWORD=YOURPASSWORD


С настройкой закончили. Сохраняем конфиг.


Я советую периодически проверять freshrss на наличие новых версий. На момент написания статьи актуальная версия была
freshrss:1.19.2

Стартуем контейнер с freshrss

sudo docker-compose up -d






Подключаем домен

Пришло время подключить домен к freshrss. Делать это будем при помощи Nginx Proxy Manager, о котором я писал недавно в одноимённой статье.

В Nginx Proxy Manager(далее NPM) создаём новый хост. Заполняем необходимую информацию.

  • Домен либо поддомен
  • Ip адрес
  • Порт - 13380 (если вы не меняли его в docker-compose.yml)

freshrss npm domain

Нажимаем Save и ждём примерно 60 секунд.

После этого снова редактируем только что добавленный хост, нажав на три точки справа и Edit.

На этот раз отправляемся в раздел SSL в котором запрашиваем новый ssl сертификат для нашего домена - Request a new SSL Certificate


freshrss npm add ssl to host 2

И нажимаем кнопку Save

Обратите внимание, что после нажатия кнопки Save не должно быть никаких ошибок. Если у вас всё же были какие то ошибки, скорее всего это связано с тем что у вас не успели обновиться записи в DNS, либо вы превысили лимиты(количество попыток) LetsEncrypt. В обоих случаях надо просто подождать и повторить попытку позже.

Если же у вас не выдало никаких ошибок с сертификатом, то сразу проверяем результат в браузере, открыв только что добавленный домен.

Мы должны увидеть страницу установки freshrss


freshrss start install





Установка freshrss

Выбираем язык и переходим на следующий шаг

Тут установщик оповестит нас о том всё ли у нас готово для установки


freshrss install 2

У нас всё отлично - переходим к следующему шагу

Так как мы устанавливаем в качестве бд postgres, выбираем его в списке и вводим необходимые данные для подключения к нему из docker-compose.yml


freshrss install 3

Теперь придумываем сложный логин и пароль для учётной записи администратора. Остальных пользователей мы сможем поставить потом, если это будет нужно.


freshrss install 4

На последнем шаге, чуточку подумав - система оповещает нас об успешной установке


freshrss install 5

После этого мы авторизируемся и попадаем на главный экран


freshrss install 6





Настройка freshrss

Для начала сменим внешний вид. Для этого нажимаем на значок шестеренки который располагается сверху и перейдём в пункт Отображение

Лично мне приглянулся стиль Alternative Dark выбираем и применяем


freshrss settings 1

Вот так - сразу гораздо лучше







Чиним cron

Freshrss использует специальный фаил внутри контейнера который называется actualize_script.php для того чтобы обновлять ленты RSS.

Используя freshrss в докере из коробки к сожалению эта фича не работает. Но мы делегируем выполнение этого функционала, штатному cron.

Для этого сначала установим его

sudo apt install cron

Проверим что он запущен и работает

sudo systemctl status cron

freshrss cron 1

Мы будем запускать наше задание от root поэтому пишем

sudo crontab -e

В самую нижнюю строчку добавляем наше задание

7,37 * * * * sudo /usr/bin/docker exec --user www-data freshrss php ./app/actualize_script.php > /tmp/FreshRSS.log 2>&1

freshrss cron 2

Проверить результат очень просто


freshrss cron 3





Установка плагинов freshrss

Плагины помогут нам расширить базовый функционал freshrss. Я покажу установку плагинов на примере плагина ThreePanesView.

Но сначала нам необходимо убедиться что у нас в системе установлен Git. Для этого напишем в терминале

git --version

Если гита у нас не оказалось то ставим его

sudo apt install git

Кликаем по плагину и попадаем на репозиторий автора.

Переходим в необходимую папку

cd /app/misc/freshrss/extensions

Скачиваем плагин

sudo git clone https://framagit.org/nicofrand/xextension-threepanesview.git

Теперь, обновив страницу с плагинами во freshrss мы увидим что у нас добавился новый плагин.


freshrss plugins 1

Активируем его кнопкой Включить

Теперь переходя на главную страницу freshrss мы обнаружим что теперь у нас 3 панели вместо двух. Очень удобно, т.к. можно прямо на месте прочитать интересующую нас новость.


freshrss plugins 2





Использование freshrss

Пришло время показать как пользоваться этим замечательным продуктом.

Так как сидеть от админского пользователя небезопасно, сделаем ещё одного пользователя.

Для этого отправляемся в пункт меню Управление пользователями. И создаём там нового пользователя


freshrss users 1

Перелогиниваемся за вновь созданного пользователя


freshrss users 2

Сразу поменяем внешний вид и и активируем необходимые плагины

Нас интересует кнопка Управление подписками


freshrss users 3

Кликнув по ней попадаем как не странно на страницу с подписками. Я покажу пример на основе хабра.

Сразу создадим новую категорию


freshrss users 4

freshrss users 5

Отправляемся на Habr. Мне приглянулся хаб Информационная безопасность. Кликаем по значку Rss и ссылка скопируется в буфер обмена.


freshrss users 6

Остаётся лишь добавить эту ссылку в нужный нам раздел в freshrss. На странице Управление подписками нажимаем Добавить RSS-ленту

Вставляем ссылку из буфера и выбираем категорию


freshrss users 7

И нажимаем добавить


freshrss users 8

После чего на главной странице у нас появился фид хаба с хабра в одноимённом разделе


freshrss users 9

Остаётся лишь подписаться на интересующие вас фиды.







Подключаем мобильное приложение

Как оказалось у freshrss есть мобильное приложение, которое можно скачать с F-Droid. Возможно оно и не выглядит очень красиво, но свою задачу оно выполняет. А именно синхронизирует данные о прочитанных фидах между телефоном и freshrss.

Если вы просто скачаете приложение и попытаетесь авторизоваться в нём - ничего не заработает. Сначала необходимо разрешить использование API в настройках самого freshrss.

Для этого идём в пункт Аутентификация и в нём отмечаем чекбокс Позволить API доступ (необходимо для мобильных приложений) в положение вкл.


freshrss mobileapp 1

Перелогиниваемся в созданный ранее не админский аккаунт. В котором идём в настройки профиля

Тут у нас появился новый пункт Настройки API. Необходимо придумать пароль для мобильного приложения и вписать его в Пароль API


freshrss mobileapp 2

После чего в самом приложении необходимо будет вписать этот пароль.


freshrss mobileapp 3


freshrss mobileapp 4


freshrss mobileapp 5

На этом считаю установку и знакомство с freshrss успешно выполненными.

Комментарии