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.
- Stable releases – if you just want to use selfoss.
- Development builds (latest) – if you want to try unreleased features or bug fixes, or help testing them. Hosted by Cloudsmith
- Git-tracked source code – if you want to join selfoss development. Some assembly required.
- Upload all files of this directory (IMPORTANT: also upload the invisible
.htaccess
files). - Make the directories
data/cache
,data/favicons
,data/logs
,data/thumbnails
anddata/sqlite
writeable. - Insert database access data in
config.ini
(see below). You do not need to change anything if you want to use SQLite. - You do not need to create the database tables, they will be created automatically (ensure that your database user is allowed to create triggers).
- Create cronjob or systemd timer for updating feeds and point it to https://yourselfossurl.com/update via wget or curl. You can also execute the
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:
- Rename
config-example.ini
toconfig.ini
. - Edit
config.ini
and delete any lines you do not wish to override. - See https://selfoss.aditu.de/ for examples.
- Backup your database and your
data/
directory. - (IMPORTANT: do NOT delete the
data/
directory) delete all old files and directories excluding the directorydata/
and the fileconfig.ini
- Upload all new files and directories excluding the
data/
directory (IMPORTANT: also upload the invisible.htaccess
files). - Consult the NEWS file to learn about backwards incompatible changes.
- Clean your browser cache.
- Insert your current database connection and your individual configuration in
config.ini
. Important: we change theconfig.ini
and add new options in newer versions. You have to update theconfig.ini
too. - The database will be updated automatically (ensure that your database user is allowed to create triggers).
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
- Issue tracker for reporting problems and requesting new features
- Forum for general questions about usage
- Chat on Gitter (or
#selfoss:matrix.org
mirror) for discussing selfoss development or just about anything
Selfoss 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:
- FatFree PHP Framework
- SimplePie
- WideImage
- htmLawed
- PHP Universal Feed Generator
- Elphin IcoFileLoader
- Graby
- FullTextRSS filters
- yet-another-react-lightbox
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.