How to Install Tiny Tiny RSS Using Docker on PC (Ultimate Guide)

Linux TLDR
Last Updated:
Reading time: 6 minutes

Tiny Tiny RSS (also known as TT-RSS) is a free, open-source, and highly customizable web-based RSS reader that you can set up on your local machine or on your server using Docker.

It’s quite an unrecognizable RSS reader, but I find it way better compared to other alternatives. It allows you to create your own personal library of RSS feeds without any limitations.

If you didn’t like the UI, don’t worry; you have a number of other themes, including Feedly and our beloved Google Reader, that you can easily set up. It even provides features through a plugin that are unavailable in other premium RSS readers.

In this article, I’ll show you how you can set up Tiny Tiny RSS on your PC using Docker, set up themes, install plugins, and provide a few usage examples.

Tutorial Details

DescriptionTiny Tiny RSS
Difficulty LevelLow
Root or Sudo PrivilegesNo
OS CompatibilityLinux, Windows, and macOS
Prerequisites
Internet RequiredYes

How to Setup Tiny Tiny RSS Using Docker

The installation method I’ll show you uses Docker as a base because it’s quite easy to manage, and you can perform the same steps on your Linux, Windows, and macOS.

I won’t show you Docker’s installation steps because it would lengthen this article, and we already have a separate article on installing Docker on Linux. Windows users can refer to this link, and macOS users can refer to this link.

📝
Avoid using Docker alternatives like Podman for installation, and refrain from setting up Tiny Tiny RSS on non-AMD64 machines. Otherwise, you’ll need to create your own images for ARM or 32-bit machines.

I assume you now have Docker installed on your system. Now, create a “ttrss” directory and move into it. If you’re using a Linux or macOS machine, you can use the following command:

$ mkdir ~/ttrss && cd ~/ttrss

Next, create a “.env” file using your choice of text editor (for me, it’s Nano).

$ nano .env

Now, you need to copy-paste the following template into this file. But before that, ensure to change the value of “ADMIN_USER_PASS” to your desired password (highlighted in green below), and if you wish, you can also create a non-admin user by uncommenting the line (in red) below and specifying their username and password.

# Put any local modifications here.

# Run FPM under this UID/GID.
# OWNER_UID=1000
# OWNER_GID=1000

# FPM settings.
#PHP_WORKER_MAX_CHILDREN=5
#PHP_WORKER_MEMORY_LIMIT=256M

# ADMIN_USER_* settings are applied on every startup.

# Set admin user password to this value. If not set, random password will be generated on startup, look for it in the 'app' container logs.
ADMIN_USER_PASS=changeme

# Sets admin user access level to this value. Valid values:
# -2 - forbidden to login
# -1 - readonly
#  0 - default user
# 10 - admin
ADMIN_USER_ACCESS_LEVEL=10

# Auto create another user (in addition to built-in admin) unless it already exists.
#AUTO_CREATE_USER=
#AUTO_CREATE_USER_PASS=
#AUTO_CREATE_USER_ACCESS_LEVEL=0

# Default database credentials.
TTRSS_DB_USER=postgres
TTRSS_DB_NAME=postgres
TTRSS_DB_PASS=password

# You will likely need to set this to the correct value - it should point to external tt-rss URL as seen in your browser.
TTRSS_SELF_URL_PATH=http://example.com/tt-rss

# You can customize other config.php defines by setting overrides here. See tt-rss/.docker/app/Dockerfile for complete list. Examples:

# TTRSS_PLUGINS=auth_remote
# TTRSS_SINGLE_USER_MODE=true
# TTRSS_SESSION_COOKIE_LIFETIME=2592000
# TTRSS_FORCE_ARTICLE_PURGE=30
# ...

# Bind exposed port to 127.0.0.1 to run behind reverse proxy on the same host. If you plan expose the container, remove "127.0.0.1:".
HTTP_PORT=127.0.0.1:8280
#HTTP_PORT=8280

Once done, save and close the file, then create another file named “docker-compose.yml” using your preferred text editor (for me, it’s Nano again).

$ nano docker-compose.yml

Here, you just need to copy-paste the following lines into this file without any modifications.

version: '3'

services:
  db:
    image: postgres:15-alpine
    restart: unless-stopped
    env_file:
      - .env
    environment:
      - POSTGRES_USER=${TTRSS_DB_USER}
      - POSTGRES_PASSWORD=${TTRSS_DB_PASS}
      - POSTGRES_DB=${TTRSS_DB_NAME}
    volumes:
      - db:/var/lib/postgresql/data

  app:
    image: cthulhoo/ttrss-fpm-pgsql-static:latest
    restart: unless-stopped
    env_file:
      - .env
    volumes:
      - ./html:/var/www/html
      - ./config.d:/opt/tt-rss/config.d:ro
    depends_on:
      - db

  updater:
    image: cthulhoo/ttrss-fpm-pgsql-static:latest
    restart: unless-stopped
    env_file:
      - .env
    volumes:
      - ./html:/var/www/html
      - ./config.d:/opt/tt-rss/config.d:ro
    depends_on:
      - app
    command: /opt/tt-rss/updater.sh

  web-nginx:
    image: cthulhoo/ttrss-web-nginx:latest
    restart: unless-stopped
    env_file:
      - .env
    ports:
      - ${HTTP_PORT}:80
    volumes:
      - ./html:/var/www/html:ro
    depends_on:
      - app

volumes:
  db:
  app:
  backups:

Finally, save and close the file, and then execute the following command to pull the required Docker images defined in the Docker Compose file and start the Docker container in detached mode.

$ docker compose pull && docker compose up -d

That’s it! Tiny Tiny RSS is now successfully installed and configured on your PC.

Usage of Tiny Tiny RSS

Once you have it installed on your system, you can open your favorite browser, either Chrome or Firefox, and visit the following link to access the Tiny Tiny RSS dashboard.

http://localhost:8280

When you visit the above link, you will be redirected to the following Tiny Tiny RSS login page where you can enter the username as “admin” and password, which you specified in the “.env” file (if you haven’t changed it, then the default password is “changeme“).

tiny tiny rss login page

Once you authenticate, you will be redirected to the following homepage:

tiny tiny rss home page

You’ll notice the home page is empty, so if you’ve been using another RSS reader, you can export the OPML file from there and import it into Tiny Tiny RSS by going to “Menu” -> “Preferences…” -> “Feeds” -> “OPML“, then selecting the file and clicking the “Import OPML” button.

import opml file in tiny tiny rss

If you haven’t used any RSS Reader before, and this is your first one, you can begin by adding an RSS feed to your Tiny Tiny RSS. Just go to “Menu” and click on the “Subscribe to feed…” option, and then the “Subscribe to feed” window will appear.

Here, you’ll need to input the RSS feed, select a category, and if authentication is required, check the corresponding box and provide the necessary information. Otherwise, just click on the “Subscribe” button.

adding rss link to tiny tiny rss

Once you added the RSS feed, refresh the Tiny Tiny RSS page, and it will fetch all the latest articles from the RSS feed and provide them in the “Fresh articles” section on the homepage.

refreshing tiny tiny rss

If you remember correctly, while adding the RSS feed, there was only one category named “Uncategorized” (it’s default), so to add more categories, you can navigate to “Menu” -> “Preferences…” -> “Feeds” -> “My feeds“.

category section in tiny tiny rss

Here, go to “Categories” -> “Add category“, and it prompts a window asking for the name of your new category, so name it, and when you’re done, click on the “OK” button.

add new category

Once you’re done, your category will be created and listed. Now, you can easily select this category while adding your next RSS feed, or you can also move the RSS feed from the “Uncategorized” category to your new category by simply drag-n-drop.

add new category

To update a full name, email, password, enabling Authenticator (OTP), changing language, timezone, theme (available in light and dark), default update time, Amount of time the article is considered fresh, auto-delete articles after n days, and all important settings can be easily configured from “Menu” -> “Preferences…” -> “Preferences” and check “Personal data / Authentication” or “Preferences“.

tiny tiny rss preference

To access the built-in plugin or add a new one, you can navigate to “Menu” -> “Preferences…” -> “Preferences” -> “Plugins“, where you can check the list of all existing plugins for tweaking.

If you want to add a new plugin, then click on the “Install plugin” button. It will prompt a window with a list of more plugins that you can install by clicking on the “Install” button next to them.

install plugin in tiny tiny rss

Finally, let’s see how you can add a new theme apart from the default one to Tiny Tiny RSS.

Add a New Theme to the Tiny Tiny RSS

Adding a new theme to Tiny Tiny RSS isn’t a big challenge; the difficulty lies in choosing the correct one. Many themes for Tiny Tiny RSS are available, but most are outdated and don’t support the current version.

For demonstration, I’ll choose the most popular feedmei theme (inspired by “feedly“), but feel free to check other themes. To install the feedmei theme, you need to clone the theme directory and copy the content of “themes.local” to your “themes.local” folder in your Tiny Tiny RSS installation.

Furthermore, to enable the additional features, you can copy the content of the “plugins.local” folder to your “plugins” directory in your Tiny Tiny RSS installation. If you are using Linux or macOS, you can use the following commands to perform this task:

$ git clone https://github.com/ltguillaume/feedmei.git
$ sudo cp -r feedmei/themes.local/* ~/ttrss/html/tt-rss/themes.local/
$ sudo cp -r feedmei/plugins.local/* ~/ttrss/html/tt-rss/plugins/

Once done, navigate to “Home” -> “Menu” -> “Preferences…” -> “Preferences” -> “Preferences” and look for the “Theme” option. Select the “feedmei+” (light mode) or “feedmei+_night” (dark mode) theme, then click on the “Save configuration” button.

enabling new theme in tiny tiny rss

You can now go to the home page and check out your new theme in action.

feedly theme in tiny tiny rss

Final Word

Here comes the end of this article, but you can see how easy it is to set up Tiny Tiny RSS and how it’s so easy to use and flexible compared to other free and premium RSS readers. If you want to switch to a new RSS reader in the future, you can easily export the OPML file and import it into your new application.

Now, if you have any questions or queries related to the topic, do let me know in the comment section.

Till then, peace!

Join The Conversation

Users are always welcome to leave comments about the articles, whether they are questions, comments, constructive criticism, old information, or notices of typos. Please keep in mind that all comments are moderated according to our comment policy.