Build Your Own Tiny Tiny RSS Service

After Inoreader change the free plan, which limit the max subscription to 150, I begin to find an alternative. Finally, I found Tiny Tiny RSS. It has a nice website and has the fever API Plugin which was supported by most of the RSS reader app, so you can read RSS on all of you devices.

This post will tell you how to deploy it on your server.


You need to install Docker and Docker Compose before using docker-compose.yml

Install docker

Make a new ttrss folder, create docker-compose.yml with this content:

version: "3"
    image: sameersbn/postgresql:latest
    container_name: postgres
      - PG_PASSWORD=PWD # please change the password
      - DB_EXTENSION=pg_trgm
      - ~/postgres/data/:/var/lib/postgresql/ # persist postgres data to ~/postgres/data/ on the host
      - 5433:5432
    restart: always

    image: wangqiru/ttrss:latest
    container_name: ttrss
      - 181:80
      - SELF_URL_PATH= # please change to your own domain
      - DB_HOST=database.postgres
      - DB_PORT=5432
      - DB_NAME=ttrss
      - DB_USER=postgres
      - DB_PASS=PWD # please change the password
      - ENABLE_PLUGINS=auth_internal,fever,api_newsplus # auth_internal is required. Plugins enabled here will be enabled for all users as system plugins
    stdin_open: true
    tty: true
    restart: always
    command: sh -c 'sh / database.postgres:5432 -- php /configure-db.php && exec s6-svscan /etc/s6/'

  service.mercury: # set Mercury Parser API endpoint to =service.mercury:3000= on TTRSS plugin setting page
    image: wangqiru/mercury-parser-api:latest
    container_name: mercury
      - 3000
      - 3000:3000
    restart: always

Run this command to deploy: docker-compose up -d. After it finished, the TTRSS service is running on port 181, the default account is admin with password password.

I made minor modification on the yml file, you can find the latest file here.

Nginx Configuration

If you have a domain and you can use Nginx as reverse proxy to redirect TTRSS to the domain.

upstream ttrssdev {

server {
    listen 80;
    return 301$request_uri;

server {
    listen 443 ssl;
    gzip on;

    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;
    ssl_certificate /etc/letsencrypt/live/; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/; # managed by Certbot


To enable HTTPS on your website, you can use certbot.

Caddy Configuration

Update in 22/12/2021

I found Caddy2 is much easier to use than Nginx, all you need to do is add 3 lines in `/etc/caddy/Caddyfile` {
encode gzip zstd

Voila, a HTTPS enabled website is deployed.

Fever API and Mercury

  • Fever
    1. Check Enable API: Allows accessing this account through the API in preference
    2. Enter a new password for fever in Plugins - Fever Emulation
  • Mecury Fulltext Extraction
    1. Check mecury-fulltext plugin in Preference - Plugins
    2. Set Mercury Parser API address to service.mercury:3000 in Feeds - Mercury Fulltext settings


Simply run this command to update TTRSS code.

docker-compose pull
docker-compose up -d

App recommendation

Reeder 4 works great on my iPad. It’s smooth and fast, and is worth every penny.

If you want a free app, I suggest Fiery Feeds. I stopped using it after ver 2.2, as it’s so lagging. If this issue was fixed, I thought it was the biggest competitor for Reeder 4. For more alternative, read this article: The Best RSS App for iPhone and iPad.

  • update 25-03-20:

You can find the latest document here.


  1. A ttrss setup guide - Start your own RSS aggregator today