Tiny Tiny RSS
Tiny Tiny RSS is an open source web-based news feed (RSS/Atom) aggregator, designed to allow you to read news from any location, while feeling as close to a real desktop application as possible.
Installation
Install the tt-rss and php-pgsql packages.
tt-rss is installed into /usr/share/webapps/tt-rss/. You will need to make this directory available from your web server. The simplest way is to do:
- With Apache HTTP Server :
# ln -s /usr/share/webapps/tt-rss /srv/http/tt-rss
- With Nginx :
# ln -s /usr/share/webapps/tt-rss /usr/share/nginx/html/tt-rss
You will need to recursively chown /usr/share/webapps/tt-rss to http:http.
Configuration
Set up PHP and database
You will need to set up a database using PostgreSQL.
Create a ttrss user and database in PostgreSQL. For example:
[postgres]$ createuser --createdb ttrss [postgres]$ createdb -U ttrss ttrss
In /etc/php/php.ini, enable the following modules:
extension=curl extension=iconv extension=intl extension=pdo_pgsql ; for PostgreSQL extension=pgsql ; for legacy PostgreSQL plugins (still required by default) extension=soap
If open_basedir is set in /etc/php/php.ini (it is not by default), add /var/lib/tt-rss:/usr/share/webapps/tt-rss:/etc/webapps/tt-rss to it.
Application initialization can be done either automatically or manually.
Automatic way:
- remove default configuration file
/etc/webapps/tt-rss/config.php, without this file tt-rss webapp enters installation wizard. - navigate to (your-servers-root)/tt-rss/ and proceed with the installer.
- save generated configuration file to
/etc/webapps/tt-rss/config.php.
Manual way:
- edit tt-rss configuration file
/etc/webapps/tt-rss/config.phpand update database settings. - re-create database from
/usr/share/webapps/tt-rss/sql/pgsql/schema.sql:
$ psql ttrss -U ttrss -f /usr/share/webapps/tt-rss/sql/pgsql/schema.sql
At the end the /etc/webapps/tt-rss/config.php file will look like this:
<?php
putenv('TTRSS_DB_TYPE=pgsql');
putenv('TTRSS_DB_HOST=localhost');
putenv('TTRSS_DB_USER=ttrss');
putenv('TTRSS_DB_NAME=ttrss');
putenv('TTRSS_DB_PASS=foobar');
putenv('TTRSS_SELF_URL_PATH=http://myserver/tt-rss/');
FastCGI
Install and configure FastCGI for your server
Pacman hook
To do tt-rss database upgrades automatically you may set up pacman post upgrade hook based on following example:
[Trigger] Operation = Install Operation = Upgrade Type = Package Target = tt-rss [Action] Description = Updating TT-RSS Database When = PostTransaction Exec = /usr/bin/runuser -u http -- /usr/bin/php /usr/share/webapps/tt-rss/update.php --update-schema=force-yes
You need to put it into /etc/pacman.d/hooks/tt-rss.hook if you did not customize HookDir in pacman.conf.
See also Pacman#Hooks
Set up an update daemon
See https://tt-rss.org/wiki/UpdatingFeeds[dead link 2025-08-16—HTTP 404]—however, simply enabling the tt-rss service should suffice. Check the service's unit status to verify that it is running fine.
Troubleshooting
Integrity constraint violation: 1062 Duplicate entry '1' for key 'ttrss_feeds_feed_url_owner_uid_key'
If you update tt-rss database to schema 137 you might see the error Duplicate entry '1' for key 'ttrss_feeds_feed_url_owner_uid_key'. To fix the issue please start database shell, e.g.:
$ psql -U ttrss tt-rss
And then run query from official forum[dead link 2025-11-17—domain name not resolved] that drops duplicated database entries.
PHP UConverter class is missing, it's provided by the Internationalization (intl) module.
If you see this error after upgrading tt-rss, add extension=intl to /etc/php/php.ini and restart the php-fpm service.