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.
The latest version can be fetched from their git-repository via
git clone https://git.tt-rss.org/fox/tt-rss.git ~/html/tt-rss/
~/html/ directory. Please note that it is recommended to create for every application a dedicated uber.space - 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
createuser <username> -P
psql -d template1 -c 'create extension pg_trgm;'
createdb --encoding=UTF8 --owner=<username> --template=template1 <dbname>
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_PORT', '5432'); // usually 5432 for PostgreSQL, 3306 for MySQL
and the self-url-path:
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 marked-articles.zip
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
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
git clone https://git.tt-rss.org/fox/ttrss-data-migration.git 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 opcache.so to match php version 7.2 in your
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 marked-articles.zip
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.