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 tt-rss from the official repositories.
If you plan on using PostgreSQL, install php-pgsql.
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, either MySQL or PostgreSQL.
Create a ttrss user and database. In MySql, for example:
$ mysql -p -u root mysql> CREATE USER 'ttrss'@'localhost' IDENTIFIED BY 'somepassword'; mysql> CREATE DATABASE ttrss; mysql> GRANT ALL PRIVILEGES ON ttrss.* TO "ttrss"@"localhost" IDENTIFIED BY 'somepassword';
Or 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=mysqli ; for MySQL extension=pdo_mysql ; for MySQL 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.php
and update database settings. - re-create database from
/usr/share/webapps/tt-rss/schema/ttrss_schema_TYPE.sql
. With MySQL run:
$ mysql --user ttrss --password=<PASSWORD> ttrss < /usr/share/webapps/tt-rss/schema/ttrss_schema_mysql.sql
With PostgreSQL run:
$ psql ttrss -U ttrss -f /usr/share/webapps/tt-rss/schema/ttrss_schema_pgsql.sql
At the end the /etc/webapps/tt-rss/config.php
file will look like this:
<?php putenv('TTRSS_DB_TYPE=mysql'); 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://git.tt-rss.org/fox/tt-rss/wiki/UpdatingFeeds—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.:
$ mysql -u ttrss -p $ use tt-rss;
And then run query from official forum 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.