Selfoss is an open source multipurpose web based rss reader, live stream, mashup, aggregation web application written in PHP under GPLv3 licence.
Android and iOS are supported and a restful json api is provided for accessing or changing all selfoss data.The installation is relatively simple and the requirements are quite standards: – Apache Webserver (ngnix and lighttpd also possible)- MySQL, PostgreSQL or Sqlite- And PHP 5.3 or higher.So let’s see how to install Selfoss on your LAMP server. If you don’t have Apache, MySQL and PHP installed already, I suggest you to read this tutorial on how to install a LAMP server.
1) Create a dedicated folder in your /var/www such as
sudo mkdir /var/www/selfoss
2) Download and unzip the latest version (The 2.10 at this day)
cd /var/www/selfoss wget http://selfoss.aditu.de/selfoss-2.10.zip unzip selfoss-2.10.zip rm selfoss-2.10.zip
You should have all the files from the archive to /var/www/selfoss now (Including the .htaccess)
3) Change the owner of the folder by apache web user:
sudo chown -R www-data:www-data /var/www/selfoss
4) Optional – Create a MySQL database (or install and use sqlite directly to avoid having to configure a database)
If you want to use MySQL instead of the default Sqlite, I can create a dedicated user/database (with PHPMyAdmin for example) and configure the default.ini file to link Selfoss with your database.
In my case, I just want to use SQLite as I will not run a lot of feeds hence SQLite should be good enough.
Don’t forget to install it with:
sudo apt-get install php5-sqlite
5) Add username/password to connect to your Selfoss instance
If you want to username/password protect Selfoss, you can modify the default.ini file and modify the 2 lines:
For the password, you will need to use the Hash generator located at http://YOURIP/selfoss/password
6) Enable mod_rewrite and mod_headers if not done yet
sudo a2enmod rewrite sudo a2enmod headers
7) Restart Apache
sudo /etc/init.d/apache2 restart
and you should now have access to http://YourIP/selfoss/
If you don’t see any images, and all is blank with a simple format, you need to add
to your virtualhost (see next step) or in /etc/apache2/conf.d/selfoss.conf with:
8) Set up Cron task for regular feeds update
If you want to have a refresh of your feeds every 15mn, you can use the following way:
udo crontab -e
*/15 * * * * wget -q http://localhost/selfoss/Update --output-document=- >/dev/null 2>&1
It should all be good now and don’t forget to add this blog in your RSS feeds:
Now you got your RSS reader working and you want to access it from rss.domain.tld or directly from mywebmail.tld, instead of using the IP/selfosss link, you will need to set up a virtualhost. And you could force HTTPS connection.
You will need to:
1) Create a A redirection in your DNS server/registrar
2) Have SSL certificate ready. If not you can read this tutorial.
3) Create your virtualhost as following:
In /etc/apache2/sites-enabled/, create a file called selfoss (In root):
and paste the following content:
<VirtualHost *:80> ServerAdmin email@example.com ServerName rss.domain.tld Redirect / https://rss.domain.tld </VirtualHost> <IfModule mod_ssl.c> <VirtualHost *:443> SSLEngine on SSLCertificateFile /etc/ssl/certs/myblog.pem SSLCertificateKeyFile /etc/ssl/private/myblog.key ServerAdmin firstname.lastname@example.org ServerName rss.domain.tld DocumentRoot /var/www/selfoss <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /var/www/selfoss> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost> </IfModule>
Adapt the content (Servername, webmaster, SSL certificate and directory, …).
When done, save the file (CTRL+X then Yes) and reload apache: (In root)