Taking Back Control of Your News Feed
RSS never died – it just got crowded out by algorithmic feeds and social media timelines that decide what you see and when. For anyone who wants a direct, unfiltered pipeline to the websites and blogs they actually care about, a self-hosted RSS reader puts that control back in your hands. Tiny Tiny RSS, known widely as TT-RSS, is a web-based feed aggregator you install on your own server, giving you a private, persistent reading environment with no third-party service tracking your reading habits or shutting down without warning.
The setup requires a Linux server or VPS, Docker (recommended for most users), a basic familiarity with the terminal, and a domain or local address to reach the web interface. If you have already worked through something like setting up FreshRSS as a self-hosted RSS aggregator, TT-RSS will feel immediately familiar in concept, though it takes a different approach to its interface and plugin architecture. This guide walks through the full process using Docker Compose, which is the cleanest path for most home lab setups.

Prerequisites and Server Requirements
TT-RSS runs comfortably on a modest VPS or home server. A machine with at least 1GB of RAM, 10GB of disk space, and a modern Linux distribution (Ubuntu 22.04 or Debian 12 work well) covers the basics. You will also need Docker and Docker Compose installed. If they are not already on your system, install them with sudo apt update && sudo apt install docker.io docker-compose -y on Debian-based systems, then confirm both are working with docker –version and docker-compose –version.
You should also decide before starting whether you want TT-RSS accessible only on your local network or exposed to the internet through a reverse proxy like Nginx Proxy Manager or Traefik. Exposing it publicly lets you read your feeds from any device without a VPN, but you will want HTTPS configured before putting it on the open web. For a local-only setup, you can skip the reverse proxy entirely and reach TT-RSS through its port directly on your LAN.
Create a project directory to hold your configuration files. Running mkdir ~/ttrss && cd ~/ttrss gives you a clean working folder. Everything that follows lives inside this directory, and keeping it organized makes future updates and backups straightforward. A dedicated directory also makes it easy to move the entire setup to a different machine if you migrate servers later.
Writing the Docker Compose File
TT-RSS’s official Docker setup uses a multi-container configuration with separate services for the app itself, the background feed-update daemon, and a PostgreSQL database. Create a file called docker-compose.yml inside your project directory. The configuration below is based on the official TT-RSS Docker repository structure:
The compose file defines three services. The db service runs PostgreSQL using the postgres:15 image, with environment variables setting the database name, username, and password – choose a strong password here and keep it consistent. The app service runs the TT-RSS web interface, linked to the database container and mapped to port 8280 on your host (you can choose any available port). The updater service runs the background daemon that fetches new articles from your subscribed feeds on a schedule – without it, your feeds will not refresh automatically. Both the app and updater services should reference the same database credentials you set in the db block.

Configuring, Launching, and Securing the Instance
With the compose file saved, bring the stack up by running docker-compose up -d from inside your project directory. Docker will pull the required images on first launch, which takes a few minutes depending on your connection speed. Once the containers are running, open a browser and navigate to http://your-server-ip:8280. TT-RSS will display its first-run setup screen, where it detects the database connection automatically based on your environment variables. Click through the installer, and you will land at the login page. The default credentials are admin for both username and password – change the password immediately after your first login through the Preferences panel.
Inside Preferences, you can set your timezone, choose an article display theme, configure the number of articles kept per feed, and manage user accounts if you want to share the instance with others. TT-RSS supports multiple user accounts, each with their own subscriptions and settings, which makes it practical for a small household or team. The default theme is functional but a number of community themes are available through the plugin system if you want a different look.
Adding feeds is straightforward. Click the Actions menu and select Subscribe to Feed, then paste in any RSS or Atom URL. TT-RSS supports OPML import, so if you are migrating from another reader you can export your subscriptions as an OPML file from the old service and import the whole list at once under the Feeds section in Preferences. This makes moving a large subscription list a matter of minutes rather than manually re-entering each address. Organize feeds into categories from the left sidebar to keep things readable as your list grows.
If you plan to expose TT-RSS beyond your local network, routing it through a reverse proxy with a valid SSL certificate is non-negotiable. Nginx Proxy Manager handles this with a point-and-click interface, and Let’s Encrypt certificates are free and auto-renewing. Point your subdomain DNS record at your server’s IP, create a proxy host in Nginx Proxy Manager targeting localhost:8280, request the SSL certificate, and force HTTPS. After that, TT-RSS is reachable at your custom subdomain with a full encrypted connection. One thing to double-check after adding HTTPS: open TT-RSS Preferences and confirm the site URL field reflects your actual domain, not the old IP address – otherwise the API and mobile app connections may behave unexpectedly.

Mobile access is where TT-RSS pulls ahead of simpler setups. The project maintains an official Android app called TTRSS-Reader, and several third-party apps including Fiery Feeds on iOS support the TT-RSS API, meaning you can read your feeds on a phone without ever visiting the web interface. API access is enabled by default, but verify it is turned on under Preferences > General. Authentication for mobile apps uses your regular TT-RSS username and password combined with your instance URL – no separate API key required. If mobile sync is not working, the site URL mismatch mentioned above is almost always the cause, and fixing that field in Preferences resolves it immediately.
Frequently Asked Questions
What database does Tiny Tiny RSS require?
TT-RSS requires PostgreSQL. The Docker Compose setup handles this automatically by running a separate PostgreSQL container alongside the app.
Can I access Tiny Tiny RSS from my phone?
Yes. TT-RSS has an official Android app and supports third-party iOS apps like Fiery Feeds through its built-in API.





