Tiny Tiny RSS - ArchWiki

Jump to content
From ArchWiki

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 package.

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://tt-rss.org/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.

The factual accuracy of this article or section is disputed.

Reason: `extension=intl` is added in #Set up php and database and `/etc/php/php.ini` is owned by php. Thus, this configuration file should not get overridden when upgrading tt-rss unless php is also upgraded. Even then, it is still doubtful that previous changes to `/etc/php/php.ini` are completely overridden when upgrading (if Pacnew and Pacsave files are properly handled). (Discuss in Talk:Tiny Tiny RSS)

If you see this error after upgrading tt-rss, add `extension=intl` to `/etc/php/php.ini` and restart the `php-fpm` service.

Categories:

- News aggregators
- Web applications

Hidden category:

- Pages or sections flagged with Template:Accuracy