🐋 Awesome TTRSS

Docker Pulls Docker Stars Docker Automated build Docker Build Status FOSSA Status


🐋 Awesome TTRSS aims to provide a powerful Dockerized all-in-one solution for Tiny Tiny RSS, an open source RSS feed reader and aggregator written in PHP, with enhanced user experience via simplified deployment and a list of curated plugins.

Special Thanks



A VPS is highly recommended to host your Awesome TTRSS instance, a VPS can be obtained from as little as $5/month at DigitalOcean. Alternatively, you may request for personalized support, fully-managed service or fully-managed VPS via sponsoring Awesome TTRSS on its 💰OpenCollective page.

Deployment via docker

docker run -it --name ttrss --restart=always \
-e SELF_URL_PATH = [ your public URL ]  \
-e DB_HOST = [ your DB address ]  \
-e DB_PORT= [ your DB port ]  \
-e DB_NAME = [ your DB name ]  \
-e DB_USER = [ your DB user ]  \
-e DB_PASS = [ your DB password ]  \
-p [ public port ]:80  \
-d wangqiru/ttrss

Deployment via docker-compose

docker-compose.yml include 4 docker images:

  1. TTRSS
  2. PostgreSQL
  3. Mercury Parser API
  4. OpenCC API


  1. Download docker-compose.yml to any directory.
  2. Read docker-compose.yml and change the settings (please ensure you have changed the password for postgres).
  3. Run docker-compose up -d and wait for the deployment to finish.
  4. Access ttrss via port 181, with default credentials admin and password, please change them asap.
  5. wangqiru/mercury-parser-api and wangqiru/opencc-api-server are optional service containers to support additional features, removing them will not affect TTRSS's basic functionalities.

Supported Environment Variables

  • SELF_URL_PATH: the url to your TTRSS instance
  • DB_HOST: the address of your database
  • DB_PORT: the port of your database
  • DB_NAME: the name of your database
  • DB_USER: the user of your database
  • DB_PASS: the password of your database
  • ENABLE_PLUGINS: the plugins you'd like to enable at system level, note that auth_internal is required
  • SESSION_COOKIE_LIFETIME: the expiry time for your login session cookie in hours, default to 24 hours
  • HTTP_PROXY: ip:port, the global proxy for your TTRSS instance, to set proxy on a per feed basis, use Options per Feed
  • SINGLE_USER_MODE: true will enable single user mode and disable user authentication, which means login will not be required. Please only enable this under a secure environment

Configure HTTPS

TTRSS container itself doesn't handle HTTPS traffic. An example of configuring an Nginx reverse proxy with free SSL certificate from Let's Encrypt is shown below:

upstream ttrssdev {

server {
    listen 80;
    server_name  ttrssdev.henry.wang;
    return 301 https://ttrssdev.henry.wang$request_uri;

server {
    listen 443 ssl;
    gzip on;
    server_name  ttrssdev.henry.wang;

    ssl_certificate /etc/letsencrypt/live/ttrssdev.henry.wang/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ttrssdev.henry.wang/privkey.pem;

    access_log /var/log/nginx/ttrssdev_access.log combined;
    error_log  /var/log/nginx/ttrssdev_error.log;

    location / {
        proxy_redirect off;
        proxy_pass http://ttrssdev;

        proxy_set_header  Host                $http_host;
        proxy_set_header  X-Real-IP           $remote_addr;
        proxy_set_header  X-Forwarded-Ssl     on;
        proxy_set_header  X-Forwarded-For     $proxy_add_x_forwarded_for;
        proxy_set_header  X-Forwarded-Proto   $scheme;
        proxy_set_header  X-Frame-Options     SAMEORIGIN;

        client_max_body_size        100m;
        client_body_buffer_size     128k;

        proxy_buffer_size           4k;
        proxy_buffers               4 32k;
        proxy_busy_buffers_size     64k;
        proxy_temp_file_write_size  64k;


Awesome-TTRSS automatically keeps up with TTRSS by mirroring the official releases, this means update can be issued frequently.

By default wangqiru/ttrss:latest version is used, which contains the stable release from the official TTRSS repository. wangqiru/ttrss:nightly is also available if you want to try out the latest features, however this may contain bugs. For older versions, please check this page.

Manual Update

You can fetch the latest image manually:

    docker pull wangqiru/ttrss:latest
    # docker pull wangqiru/mercury-parser-api:latest
    # docker pull wangqiru/opencc-api-server:latest
    docker-compose up -d # If you didn't use docker-compose, I'm sure you know what to do.

Auto Update

The example docker-compose includes Watchtower, which automatically pulls all containers included in Awesome-TTRSS (and other containers running on your system) and refreshes your running services. By default, it's disabled, make sure it will not affect your other service containers before enabling this.

To exclude images, check the following for disabling auto update for containers:

    image: wangqiru/mercury-parser-api:latest
    container_name: mercury
      - 3000
    restart: always
    # ⬇️ this prevents Watchtower from auto updating mercury-parser-api
        - com.centurylinklabs.watchtower.enable=false


Mercury Fulltext Extraction

Fetch fulltext of articles via a self-hosted Mercury Parser API. A separate Mercury Parser API is required, the example docker-compose has already included such a server.


  1. Enable mercury-fulltext plugin in preference enable Mercury
  2. Enter Mercury Parser API endpoint enter Mercury Parser API endpoint

Fever API

Provide Fever API simulate.

Plugin is enabled as a system plugin by default.


  1. Enable API in preference enable API
  2. Enter a password for Fever in preference enter a Fever password
  3. In supported RSS readers, use https://[your url]/plugins/fever as the target server address, with your account and the password set in Step 2.
  4. The plugin communicates with TTRSS using an unsalted MD5 hash, using HTTPS is strongly recommended.

OpenCC Simp-Trad Chinese Conversion

Conversion between Traditional and Simplified Chinese via OpenCC , a separate OpenCC API Server is required. the example docker-compose has already included such a server.


  1. Enable opencc plugin in preference enable opencc
  2. Enter OpenCC API endpoint enter OpenCC API endpoint

Demo instances, availability is not guaranteed: https://opencc.henry.wang or http://opencc2.henry.wang.

FeedReader API

Provide FeedReader API support.

System plugin, enabled by adding api_feedreader to the environment variable ENABLE_PLUGINS.

Refer to FeedReader API for more details.

News+ API

Provide a faster two-way synchronization for Android App News+ and iOS App Fiery Feeds with TTRSS.

System plugin, enabled by adding api_newsplus to the environment variable ENABLE_PLUGINS.

Refer to News+ API for more details.


Provide the ability to manipulate article DOMs.

Refer to Feediron for more details.

Options per Feed

Provide the ability to configure proxy, user-agent and SSL certificate verification on a per feed basis.

Refer to Options per Feed for more details.







Support and Help


PayPal WeChat Pay OpenCollective
paypal 💰OpenCollective page



FOSSA Status

Last Updated: 10/4/2019, 12:36:48 AM