menu

RSS агрегатор (Commafeed) на власному сервері

Мотивація

Хоча RSS канали все рідше використовуються на публічних сайтах, вони стали навіть більш популярними в особистих блогах. Схоже, це відбувається через скепсис щодо соціальних мереж яких зростає серед людей які ведуть особисті блоги, а значить багато думають і пишуть. Я вирішив читати більше таких блогів, і тому виникла потреба знайти RSS агрегатор який можна встановити на власному сервері.

Серед кількох агрегаторів, які можна знайти на Github, спробував FreshRSS, Tiny Tiny RSS, Selfoss, CommaFeed, Miniflux та зрештою зупинився на CommaFeed. Не тому, що він повністю відповідає всім моїм вимогам, а тому що інші не підійшли мені з різних причин.

Після встановлення ми будемо мати RSS агрегатор доступний з інтернет, скажімо, через домен rss.site.net. Інтерфейс CommaFeed дозволяє зручно використовувати його як на комп’ютері так і на телефоні.

Встановлення CommaFeed

Оскільки CommaFeed постачається у вигляді портативного файлу, а вирішив встановити його у домашній директорії. Щоб полегшити встановлення, я вибрав варіант з H2, базою даних Java.

Завантажимо виконуваний файл CommaFeed

mkdir -p ~/apps/commafeed
cd ~/apps/commafeed
wget https://github.com/Athou/commafeed/releases/download/5.3.6/commafeed-5.3.6-h2-linux-x86_64-runner
mv commafeed-5.3.6-h2-linux-x86_64-runner commafeed-runner

Налаштуємо автоматичний запуск commafeed-runner одночасно із завантаженням сервера. Для цього, створимо файл з налаштуваннями сервісу systemd /etc/systemd/system/commafeed.service і додамо туди наступний вміст

[Unit]
Description=A bloat-free feed reader
After=local-fs.target network.target

[Service]
User=root
Group=root
ExecStart=/home/user/apps/commafeed/commafeed-runner

[Install]
WantedBy=multi-user.target

Запустимо службу commafeed і перевіримо її стан після запуску.

sudo systemctl start commafeed
sudo systemctl enable commafeed
sudo systemctl status commafeed

Налаштування доступу до CommaFeed через браузер

Додамо на панелі хостингу rss.site.net і отримаємо сертифікат LetsEncrypt для захищеного доступу до сайту.

sudo certbot --apache -d rss.site.net

Створимо віртуальний хост для Apache /etc/apache2/sites-available/rss.conf із наступним вмістом.

<VirtualHost *:80> 
	ServerName rss.site.net
	Redirect permanent / https://rss.site.net
	RewriteEngine on
	RewriteCond %{SERVER_NAME} =rss.site.net
	RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
	ServerName rss.site.net
	ServerAdmin admin@gmail.com

 	SSLCertificateFile /etc/letsencrypt/live/rss.site.net/fullchain.pem
 	SSLCertificateKeyFile /etc/letsencrypt/live/rss.site.net/privkey.pem

	Include /etc/letsencrypt/options-ssl-apache.conf

	ProxyPreserveHost On
	ProxyRequests Off

	# allow for upgrading to websockets
	RewriteEngine On
	RewriteCond %{HTTP:Upgrade} =websocket [NC]
	RewriteRule /(.*)           ws://127.0.0.1:8082/$1 [P,L]
	RewriteCond %{HTTP:Upgrade} !=websocket [NC]
	RewriteRule /(.*)           http://127.0.0.1:8082/$1 [P,L]

	# Proxy to your local filebrowser instance
	ProxyPass / http://127.0.0.1:8082/
	ProxyPassReverse / http://127.0.0.1:8082/

</VirtualHost>
</IfModule>

Увімкнемо віртуальний хост та перезапустимо сервіс Apache

sudo a2ensite rss.conf
sudo systemctl reload apache2

Перейдемо у браузері за адресою https://rss.site.net і введемо ім’я admin та пароль admin для доступу до файлів. Змінимо пароль у налаштуваннях CommaFeed. Тепер можна додавати стрічки до CommaFeed.