Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit

Currently translated at 54.6% (65 of 119 strings)

Translation: selfoss/Translations

Git stats


Failed to load latest commit information.
Latest commit message
Commit time
October 31, 2023 22:05
October 7, 2023 00:37
October 7, 2023 00:37
June 15, 2023 23:59
June 15, 2023 23:59
March 2, 2020 19:52
January 10, 2021 01:25
October 10, 2018 22:53
July 25, 2023 21:37
October 4, 2022 23:24
February 19, 2023 23:18
October 10, 2021 22:01

selfoss 2.20-SNAPSHOT

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.



  1. Upload all files of this directory (IMPORTANT: also upload the invisible .htaccess files).
  2. Make the directories data/cache, data/favicons, data/logs, data/thumbnails and data/sqlite writeable.
  3. Insert database access data in config.ini (see below). You do not need to change anything if you want to use SQLite.
  4. You do not need to create the database tables, they will be created automatically (ensure that your database user is allowed to create triggers).
  5. Create cronjob or systemd timer for updating feeds and point it to 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:


No configuration is needed to use selfoss but you can customize the settings as follows:

  1. Rename config-example.ini to config.ini.
  2. Edit config.ini and delete any lines you do not wish to override.
  3. See for examples.


  1. Backup your database and your data/ directory.
  2. (IMPORTANT: do NOT delete the data/ directory) delete all old files and directories excluding the directory data/ and the file config.ini
  3. Upload all new files and directories excluding the data/ directory (IMPORTANT: also upload the invisible .htaccess files).
  4. Consult the NEWS file to learn about backwards incompatible changes.
  5. Clean your browser cache.
  6. Insert your current database connection and your individual configuration in config.ini. Important: we change the config.ini and add new options in newer versions. You have to update the config.ini too.
  7. 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:


OPML import

Selfoss supports importing OPML files. Find the OPML export in the old application, it is usually located somewhere in settings. Then visit the page and upload it there.

Third-party Apps

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

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.