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.