Installing TT-RSS on uberspace 7

Migrating your rss-feedreader from uberspace 6, which is EOL now, to the new and shiny uberspace 7 works after all.

Due to the fact that the documentation to set up tt-rss without using a docker container is basically non-existant anymore, I thought this quick how-to might be interesting for someone else as well.

Download tt-rss

The latest version can be fetched from their git-repository via

git clone ~/html/tt-rss/

into your ~/html/ directory. Please note that it is recommended to create for every application a dedicated - if you have done so, just clone it into ~/html/ and remove the trailing tt-rss in every instance of a path during the course of this guide. If you want to hold on to your starred articles from your uberspace 6 account, you can use the import-export plugin, which is called data-migration now. (see below)

Make it accessable via WebSockets

To be able to connect to your tt-rss instance via https, you have to configure an apache web backend for your tt-rss root folder:

uberspace web backend set /tt-rss --apache

Alternatively, you can also use a (sub)domain by creating another DocumentRoot in /var/www/virtual/<uberspace>/sub.domain.tld (mind the permissions as explained in the uberspace manual!) and adding a web backend for this with:

uberspace web backend set sub.domain.tld --apache

Setup the PostgreSQL-Database

Because the easy-installer is missing, you have to edit your config-file by hand. As it is recommended to use PostgreSQL, you first have to setup your psql-database cluster. A nice tutorial to do so can be found at the uberspace lab - you can follow it, but use version 13 as it is the latest as of today. Once this is set up, you have to create a new user and database for tt-rss (if you want to use the af_psql_trgm plugin):

createuser <username> -P
psql -d template1 -c 'create extension pg_trgm;'
createdb --encoding=UTF8 --owner=<username> --template=template1 <dbname>

Copy the config.php-dist in the tt-rss root folder to config.php and edit it to your needs; the database configuration:

define('DB_TYPE', 'pgsql'); // pgsql or mysql
define('DB_HOST', 'localhost');
define('DB_USER', '<username>');
define('DB_NAME', '<dbname>');
define('DB_PASS', '<password>');
define('DB_PORT', '5432'); // usually 5432 for PostgreSQL, 3306 for MySQL

and the self-url-path:

define('SELF_URL_PATH', 'https://your-domain.tld/tt-rss/');

need to be adjusted in any case. To migrate your starred and archived articles from uberspace 6 you have to add the data-migration-plugin as well:

define('PLUGINS', 'auth_internal, note, data_migration');

Then you have to add the database-schema to your database by running the following sql-statement in your tt-rss root folder:

psql <dbname> -U <username> -f schema/ttrss_schema_pgsql.sql

Having done this, login with the standard admin credentials (admin - password) and change the password immediately. Additionally, I would suggest creating a (power) user for reading your rss-feeds. Login with your newly created user and import the opml file containing your feeds exported from your old uberspace 6 account under Preferences - Feeds - OPML.

If you want to import your starred/archived articles from uberspace 6, use the following php-statement:

php ./update.php --data_user <feeduser> --data_import

Create the update daemon

To update your feeds you should use supervisord - how the general setup is done is already explained in the uberspace manual, for tt-rss you have to add the following to your ~/etc/services.d/ttrss.ini file:


And now there are hopefully no errors thrown in ~/logs/error_log_php and everything should be working fine.


Exporting your old articles from uberspace 6

Download the data-migration plugin via git into your tt-rss/plugins.local/ folder:

git clone plugins.local/data_migration/

Because the standard php-version used on the cli of uberspace 6 is quite old, namely 5.6, the data-migration plugin does not work. You have to use, e.g., php 7.2 for this. To do so, first change the line with the path to the to match php version 7.2 in your ~/etc/php.ini:


To export your marked articles finally run:

/package/host/localhost/php-7.2/bin/php ./update.php --data_user <feeduser> --data_only_marked --data_export

Exporting all articles might not work due to memory issues, in which case the process will quit with a Segmentation fault and a PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 4046451 bytes) in /var/www/virtual/.../plugins.local/data_migration/init.php on line 151.

Not yet rated