selfoss
selfoss is a free and open source web-based news feed reader and aggregator.
License
The software is licensed under GPLv3. All relevant information can be found in the repository of the project.
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 ~]$
The domain you want to use must be set up:
[isabell@stardust ~]$ uberspace web domain list
isabell.uber.space
[isabell@stardust ~]$
Installation
Download and extract ZIP archive
Check the selfoss website or GitHub repo for the latest release and copy the download link to the ZIP file. Then cd
to your DocumentRoot and use wget
to download it. Replace the URL with the one you just copied.
[isabell@stardust ~]$ cd /var/www/virtual/$USER/
[isabell@stardust isabell]$ wget https://github.com/fossar/selfoss/releases/download/2.19/selfoss-2.19.zip
[…]
Saving to: ‘selfoss-2.19.zip’
100%[========================================================================================================================>] 2,881,068 819KB/s in 3.7s
2018-09-24 10:49:50 (766 KB/s) - ‘selfoss-2.19.zip’ saved [2881068/2881068]
Unzip the archive to the html
folder and then delete it. Replace the version in the file name with the one you downloaded.
[isabell@stardust isabell]$ unzip selfoss-2.19.zip
[…]
inflating: html/common.php
inflating: html/run.php
inflating: html/cliupdate.php
[isabell@stardust isabell]$ mv selfoss/* html/
[isabell@stardust isabell]$ rm selfoss-2.19.zip
[isabell@stardust isabell]$ rmdir selfoss
[isabell@stardust isabell]$
Configuration
Setup your database
We recommend setting up a new database for selfoss.
[isabell@stardust ~]$ mysql -e "CREATE DATABASE ${USER}_selfoss"
Configuration
Copy the default.ini
to config.ini
:
[isabell@stardust isabell]$ cd html
[isabell@stardust html]$ cp default.ini config.ini
[isabell@stardust html]$
Now edit config.ini
file, change the database type to mysql
and provide your MySQL credentials.
[globals]
db_type=mysql
db_host=localhost
db_database=isabell_selfoss
db_username=isabell
db_password=MySuperSecretPassword
db_port=3306
We also recommend password protection for your installation. First, generate a random string to use as salt.
[isabell@stardust html]$ pwgen 32 1
Copy the output and set it as salt in your config.ini
.
salt=FqFvsGWABfpPK6zQnVzD
Save the file and visit https://isabell.uber.space/password
in your browser. Replace isabell.uber.space
with your domain. Use the web form to generate a hash of your password and copy the hash.
Edit config.ini
again and insert your user name and password hash:
username=isabell
password=c6d064709111ff0a689f206524cec8952417b9f16121a06b4ec8c58a11b570cdb7df4d6912e49415d6c615c2961c35166f0ed98eb027425100a1ebdd55a97906
salt=FqFvsGWABfpPK6zQnVzD
You can now log in to your installation and start adding and reading feeds.
Check out the official selfoss documentation for explanation of further configuration parameters.
Cron job
It is recommended to set up a cron job to automatically update your feeds. Edit your cron tab using the crontab -e
command and insert this cron job to update every 15 minutes. Make sure to replace /home/isabell/html/cliupdate.php
with the path to the cliupdate.php
script inside the selfoss folder.
*/15 * * * * php /home/isabell/html/cliupdate.php > /dev/null 2>&1
Tested with selfoss 2.19, PHP 8.1 and Uberspace 7.13.0
Written by: Nico Graf <hallo@uberspace.de>