multipurpose rss reader, live stream, mashup, aggregation web application
selfoss is a multipurpose RSS reader and feed aggregation web application. It allows you to easily follow updates from different web sites, social networks and other platforms, all in single place. It is written in PHP, allowing you to run it basically anywhere.
For more information visit our web site.
selfoss is currently maintained by Jan Tojnar in his free time. Due to the limited capacity, maintenance is prioritized over new features. Pull requests are welcome, see the Contributing guide.
.htaccess
files).data/cache
, data/favicons
, data/logs
, data/thumbnails
and data/sqlite
writeable.config.ini
(see below). You do not need to change anything if you want to use SQLite.cliupdate.php
from command line.If you obtained selfoss using Git, some more steps will be required. See the development section.
For further questions or on any problem use our support forum: https://forum.selfoss.aditu.de/
No configuration is needed to use selfoss but you can customize the settings as follows:
config-example.ini
to config.ini
.config.ini
and delete any lines you do not wish to override.data/
directory.data/
directory) delete all old files and directories excluding the directory data/
and the file config.ini
data/
directory (IMPORTANT: also upload the invisible .htaccess
files).config.ini
. Important: we change the config.ini
and add new options in newer versions. You have to update the config.ini
too.If you obtained selfoss using Git, some more steps might be required. See the development section.
For further questions or on any problem use our support forum: https://selfoss.aditu.de/forum
#selfoss:matrix.org
mirror) for discussing selfoss development or just about anythingSelfoss supports importing OPML files. Find the OPML export in the old application, it is usually located somewhere in settings. Then visit the page https://yourselfossurl.com/opml and upload it there.
We recommend Reader For Selfoss for Android devices.
Selfoss uses composer and npm for installing external libraries. When you clone the repository you have to issue composer install
to retrieve the external sources.
For the client side, you will also need JavaScript dependencies installed by calling npm install
in the client/
directory. You can use npm run install-dependencies
as a shortcut for installing both sets of dependencies.
We use Parcel (installed by the command above) to build the client side of selfoss. Every time anything in client/
directory changes, you will need to run npm run build
for the client to be built and installed into the public
directory. When developing, you can also use npm run dev
; it will watch for asset changes, rebuild the bundles as needed, and reload selfoss automatically. Upon switching between npm run dev
and npm run build
, you may need to delete client/.cache
.
If you want to create a package with all the dependencies bundled, you can run npm run dist
command to produce a zipball.
Every patch is expected to adhere to our coding style, which is checked automatically by CI. You can install the checkers locally using npm run install-dependencies
, and then run the checks using npm run check
before submitting a pull request. There is also npm run fix
, that will attempt to fix the formatting.
selfoss was created by Tobias Zeising, and the source code is licensed under the GNU General Public licence version 3, or (at your option) any later version.
Some parts of the source code can be licensed under version 3 only, we are currently trying to resolve it.
The package with bundled dependencies might be distributed under version 3 only.
Very special thanks to all contributors of pull requests here on GitHub, as well as translators on Weblate. Your improvements are awesome!
Special thanks to the great programmers of these libraries used by selfoss:
Icon made by http://blackbooze.com/
Package repository hosting is graciously provided by Cloudsmith. Cloudsmith is the only fully hosted, cloud-native, universal package management solution, that enables your organization to create, store and share packages in any format, to any place, with total confidence.