Keeping up with the news and your favorite creators is essential in the modern world, but you don’t need to create a FaceBook, Google or Apple account for that.
With FreshRSS, you can get the latest news, blogs, and other sources straight from the ether to your Raspberry Pi and see it all in one place via your browser or a dedicated app on your mobile device.
It sounds too good to be true? Read on below as we’ll walk you through the steps to set it up, but before that, we’ll briefly discuss why you should use FreshRSS.
Really Simple Syndication (RSS) is a nearly ubiquitous feature of the Internet. Almost every site you visit today will have an RSS feed hidden somewhere.
An RSS feed is an XML file that specialized software can fetch and read to give you the latest headlines from a given site, the URL of the entire story, and supporting information such as author, publication date, and a snippet of text. The MakeUseOf RSS feed is available here if you want to see the raw XML.
You’ll usually have a separate RSS reader for different devices or even subscribe to a service that provides your own curated RSS feed.
However, FreshRSS is different. It is self-hosted software that runs perfectly on a Raspberry Pi and is accessed through a browser or a dedicated client on another device. You also get full articles from websites, which means you never need to visit those sites.
The main advantage of using FreshRSS is that you can easily get through soft paywalls and avoid advertising and tracking code; this makes it much more difficult for predatory tech giants to create a profile on you.
You’ll first need to set up your Raspberry Pi as a home-based server, then visit your domain registry. advanced DNS section and create a new record. For the type, select Athen set @ for host, and in the value field, type your public IP address.
Now log in to your Raspberry Pi using Secure Shell (SSH):
ssh pi@local.pi.ip.address
Upgrade and update any package using the following commands:
sudo apt update
sudo apt upgrade
Now change directory and download the FreshRSS installation file by entering the following:
cd /var/www/
sudo wget https:
Unzip the file with:
sudo unzip master.zip
You will see that a new directory called “FreshRSS-master” has been created. Give the property to the Apache user:
sudo chown -R www-data:www-data FreshRSS-master
FreshRSS is in the correct location and Apache can access and write to it, but Apache doesn’t know where it is. So, change the directory:
cd /etc/apache2/sites-available/
And create a new Apache conf file:
sudo nano freshrss.conf
In the new file, paste the following:
<VirtualHost *:80>
ServerName your-domain.tld
DocumentRoot /var/www/FreshRSS-master/p/
</VirtualHost>
Save the file and exit nano with Control + OR followed by Control + X.
Enable the conf file by typing the following:
sudo a2ensite freshrss.conf
Now, restart Apache using the following command:
sudo service apache2 restart
FreshRSS requires a database; You should already have MariaBD installed on your system. Open MariaDB with:
sudo MariaDB
Enter the following commands to create a new user and database to use:
CREATE DATABASE fresh;
CREATE USER fresh IDENTIFIED BY 'password';
GRANT USAGE ON . TO fresh@localhost IDENTIFIED BY 'password';
GRANT ALL privileges ON fresh.* TO fresh@localhost;
FLUSH PRIVILEGES;
quit;
Now launch a web browser and visit your domain. You will be prompted to choose a language and the installer will check to make sure your server is up to par.
Click next and you will be prompted to fill in the details of the database that FreshRSS will use. The database type is mysqlthe host is local serverand user and database are both new.
When you’re done, click next. You will be prompted for the default user’s username (maximum 16 alphanumeric characters), authentication method, and to set the password.
Once you click Installation completeyou need to login to your FreshRSS instance with the name and password you just set up.
The only feed you will have is the default FreshRSS which keeps you up to date with news from the FreshRSS team. This is great, but you need news from multiple sources to make it perfect. So click on the + sign in next to subscription management and you will have the option to create a new category or feed. By pasting the makeuseof.com feed address, you’ll soon see your screen filled with the latest news from the best tech site on the internet.
You can usually find feeds on other sites by adding /food, /rsseither /rss.xml after the base URL. If that doesn’t work, the right button of the mouse on the home page of the website, then click View source code. Use Control + F to search for terms: food, RSS, atomeither XML.
Get full articles with FreshRSS
Like many other sites, MakeUseOf offers only snippets of articles, but FreshRSS can get full articles straight to your Raspberry Pi.
Most of the articles on various sites have a standard design with common and consistent elements throughout the site. You want to find the CSS selector that contains the text you want to read.
Open any article on your target site and right click on the body part of the article that contains the text. Then select inspect from the menu, and the browser window will split, with the middle showing the source and the top showing the original site.
You will see that some parts of the page are highlighted. Move your mouse up the hierarchy until the entire article body is blue, then right-click again and choose Copy > Copy Selector. For makeuseof.com, the most useful selector is #article-body.
Go back to FreshRSS and click the gear icon next to the MUO feed, scroll down to Advanced, and in the field marked CSS selector for articles on the original websitepaste in selector #article-body. Click on Send and so Recharge articles.
To your everlasting joy and delight, every MUO article in your FreshRSS instance will be full text, and every future article FreshRSS fetches will also be full text. This works on all sites, although the exact selector will vary.
Accessing a website over an unencrypted HTTP connection is not secure and leaves you vulnerable to attack, even if you’re hosting the site on a Raspberry Pi. Certbot will secure your site by obtaining and deploying security certificates and encryption keys from Let’s Encrypt. So, type the following:
sudo certbot
Enter your email address and select the site you want to protect from a list. The next time you visit your FreshRSS site, the connection will automatically be upgraded to HTTPS.
In the current state of its installation, FreshRSS can only update its feeds with manual input; you must click the button To update button to ask the software to check your sources and get recent news from the web.
Fortunately for your fingers, FreshRSS runs under Linux on your Raspberry Pi, and Linux has a built-in tool called cron, which can trigger an update according to a schedule you set. Get familiar with how to use cron and crontab, and then enter the following command:
sudo crontab -e
Add a new entry according to how often you want FreshRSS to fetch fresh feeds from the ether:
*/15 * * * * php -f /var/www/FreshRSS-master/app/actualize_script.php
The above line of code will configure FreshRSS to update its feeds every 15 minutes. So change the value according to your needs.
With FreshRSS, you can read news from various sources without triggering tracking scripts or enduring annoying ads. Cookies will never be deposited on your Raspberry Pi, meaning you won’t trigger soft paywalls.
In the rare event that a site administrator detects FreshRSS, it will assume that it is a bot, completely divorced from the rest of its digital identity.