Yarr (yet another rss reader) is a web-based feed aggregator which can be used both as a desktop application and a personal self-hosted server.
It is written in Go with the frontend in Vue.js. The storage is backed by SQLite.
Installing Yarr
Firstly, we have to download yarr binary from github on our system
wget https://github.com/nkanaev/yarr/releases/download/v2.3/yarr-v2.3-linux64.zip
Unzip the archive
unzip -x yarr-v2.3-linux64.zip
Move the binary to your bin folder
mv yarr /usr/local/bin/yarr
Configuration
Now we need to create a auth.conf
file that include user and password to create a local yarr account.
I personnaly store this file in a directory called yarr in ~/.config
folder, but you can place the file wherever you want.
mkdir ~/.config/yarr
echo 'landchad:password' > ~/.config/yarr/auth.conf
Creating a service
Create a new file /etc/systemd/system/yarr.service and add the following:
[Unit]
Description=Yarr
[Service]
Environment=HOME=/home/landchad
ExecStart=/usr/bin/env yarr -addr 0.0.0.0:7070 -auth-file=/home/landchad/.config/yarr/auth.conf -db=/home/landchad/.config/yarr/feed.sql -log-file=/home/landchad/.config/yarr/access.log
Restart=on-failure
[Install]
WantedBy=multi-user.target
After creating the config, load, start and enable the service with the following commands.
systemctl daemon-reload
systemctl enable --now yarr
Nginx configuration
Create an Nginx configuration file for Yarr, say /etc/nginx/sites-available/yarr and add the content below:
server {
listen 80 ;
listen [::]:80 ;
server_name rss.example.org ;
location / {
proxy_pass http://localhost:7070/;
}
}
Now let’s enable the Nginx Yarr site and reload Nginx to make it active.
ln -s /etc/nginx/sites-available/yarr /etc/nginx/sites-enabled
systemctl reload nginx
Encryption
You can encrypt your yarr subdomain as well. Let’s do that with certbot:
certbot --nginx -d rss.example.org
Now you can go to rss.example.org, login and start to add your feeds!
Contribution
Author: Jppaled – jppaled.xyz -- XMR: 86bVp8bcx1F3y3NsfuTRs6D7FfnDyLomV7dLJmus2YMiY9Aat6W5m8JGwuvH39HKrq3immS7noKq8HeW4gb4BFbyLoz5WSZ
{.crypto}