FreshRSS
FreshRSS is a multiuser self-hosted RSS feed aggregator.
License
FreshRSS is free and open source software licensed under the GNU AGPLv3.
Prerequisites
We’re using PHP in the stable version 8.1:
[isabell@stardust ~]$ uberspace tools version show php
Using 'PHP' version: '8.1'
[isabell@stardust ~]$
You’ll need your MySQL credentials. Get them with my_print_defaults
:
[isabell@stardust ~]$ my_print_defaults client
--default-character-set=utf8mb4
--user=isabell
--password=MySuperSecretPassword
[isabell@stardust ~]$
If you want to use FreshRSS with your own domain, it needs to be set up.
[isabell@stardust ~]$ uberspace web domain list
isabell.uber.space
[isabell@stardust ~]$
Create a new MySQL database:
[isabell@stardust ~]$ mysql --verbose --execute="CREATE DATABASE ${USER}_freshrss"
--------------
CREATE DATABASE isabell_freshrss
--------------
[isabell@stardust ~]$
Installation
cd
to your DocumentRoot and download the latest release from GitHub, then unzip it:
[isabell@stardust ~]$ cd /var/www/virtual/$USER/
[isabell@stardust isabell]$ wget https://github.com/FreshRSS/FreshRSS/archive/latest.zip
--2018-09-24 14:30:37-- https://github.com/FreshRSS/FreshRSS/archive/latest.zip
Resolving github.com (github.com)... 192.30.253.112, 192.30.253.113
[…]
Saving to: ‘latest.zip’
[ <=> ] 2,694,638 4.37MB/s in 0.6s
2018-09-24 14:30:38 (4.37 MB/s) - ‘latest.zip’ saved [2694638]
[isabell@stardust isabell]$ unzip latest.zip
[…]
creating: FreshRSS-latest/tests/lib/PHPMailer/
inflating: FreshRSS-latest/tests/lib/PHPMailer/PHPMailerTest.php
inflating: FreshRSS-latest/tests/shellchecks.sh
Configuration
You can setup your FreshRSS installation using FreshRSS’s command line interface (CLI):
[isabell@stardust ~]$ cd /var/www/virtual/$USER/
[isabell@stardust isabell]$ cd FreshRSS-latest
[isabell@stardust FreshRSS-latest]$ ./cli/do-install.php --default_user <yourfreshrssusername> --base_url https://isabell.uber.space --title FreshRSS --api_enabled --db-type mysql --db-host localhost:3306 --db-user ${USER} --db-password '<yourmysqlpassword>' --db-base ${USER}_freshrss
FreshRSS install…
ℹ️ Remember to create the default user: isabell ./cli/create-user.php --user isabell --password 'password' --more-options
ℹ️ Remember to re-apply the appropriate access rights, such as: sudo chown -R :www-data . && sudo chmod -R g+r . && sudo chmod -R g+w ./data/
[isabell@stardust FreshRSS-latest]$ ./cli/create-user.php --user <yourfrehrssusername> --password <yourfreshrsspassword>
FreshRSS creating user “isabell”…
ℹ️ Remember to refresh the feeds of the user: isabell ./cli/actualize-user.php --user isabell
ℹ️ Remember to re-apply the appropriate access rights, such as: sudo chown -R :www-data . && sudo chmod -R g+r . && sudo chmod -R g+w ./data/
[isabell@stardust FreshRSS-latest]$
Make sure to replace the usernames, passwords, and base URL, so instead of <yourfreshrssusername>
use the user name of your choice, etc.
Cron job
To automatically update your feeds every ten minutes, set up a cron job like this using the crontab -e
command.
*/10 * * * * php /var/www/virtual/$USER/FreshRSS-latest/app/actualize_script.php > $HOME/logs/FreshRSS.log 2>&1
Web Access
Remove your html
directory and create a symbolic link html -> FreshRSS-latest/p/
:
[isabell@stardust ~]$ cd /var/www/virtual/$USER/
[isabell@stardust isabell]$ rm -f html/nocontent.html; rmdir html
[isabell@stardust isabell]$ ln -s FreshRSS-latest/p/ html
[isabell@stardust isabell]$ ls -l
total 2636
drwxrwxr-x. 11 isabell isabell 4096 Sep 9 11:03 FreshRSS-latest
lrwxrwxrwx. 1 isabell isabell 18 Sep 24 14:43 html -> FreshRSS-latest/p/
-rw-rw-r--. 1 isabell isabell 2694638 Sep 24 14:30 latest.zip
Updates
Keep an eye on the FreshRSS releases feed, which has automatically been added as your first subscription in FreshRSS. When a new version is released, remove the previously downloaded ZIP archive and download the current release, then unzip it:
[isabell@stardust ~]$ cd /var/www/virtual/$USER/
[isabell@stardust isabell]$ rm latest.zip
[isabell@stardust isabell]$ wget https://github.com/FreshRSS/FreshRSS/archive/latest.zip
--2018-09-24 14:30:37-- https://github.com/FreshRSS/FreshRSS/archive/latest.zip
Resolving github.com (github.com)... 192.30.253.112, 192.30.253.113
[…]
Saving to: ‘latest.zip’
[ <=> ] 2,694,638 4.37MB/s in 0.6s
2018-09-24 14:30:38 (4.37 MB/s) - ‘latest.zip’ saved [2694638]
[isabell@stardust isabell]$ unzip -o latest.zip -x FreshRSS-latest/data/do-install.txt
[…]
inflating: FreshRSS-latest/tests/app/Models/UserQueryTest.php
inflating: FreshRSS-latest/tests/bootstrap.php
inflating: FreshRSS-latest/tests/phpunit.xml
[isabell@stardust isabell]$
This will overwrite any changed files while keeping your current configuration.
Update via web interface
Alternatively, you can use your admin account to update from the web interface. Do do this select the “update” option under the “Administration” option in the “Settings” dropdown menu of your FreshRSS web interface (it’s in the top-right). Alternatively, you can also find the page at your.url/i/?c=update
.
After pressing the button “check for new updates”, the “install” button will appear if an update is available.
Tested with FreshRSS 1.24.3, Uberspace 7.15.0, and PHP 8.3.8
Written by: Nico Graf <hallo@uberspace.de>, Bastian Greshake Tzovaras <bgreshake@googlemail.com>