Skip to content

Setting Up FreshRSS with Docker Compose

Introduction to FreshRSS

FreshRSS is a self-hosted RSS feed aggregator — a privacy-respecting alternative to Google Reader or Feedly. It supports multiple users, extensions, and a clean reading interface accessible from any browser or RSS client.

Docker Compose Configuration for FreshRSS

This Docker Compose setup deploys FreshRSS in a Docker container, providing an isolated and efficient environment for managing your RSS feeds.

Docker Compose File (docker-compose.yml)

version: "2.1"
services:
  freshrss:
    image: lscr.io/linuxserver/freshrss:latest
    container_name: freshrss
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - /path/to/data:/config 
    ports:
      - 80:80 
    restart: unless-stopped

Key Components of the Configuration

Environment Variables

  • PUID=1000 and PGID=1000: Set user and group IDs for file permissions.

What are PUID and PGID?

PUID and PGID map container file permissions to your host user. They should match the user who owns the data directory. Find your values with: id $(whoami)

  • TZ=Etc/UTC: Sets the container's timezone.

Volumes

  • /path/to/data:/config: Maps the local data directory to the container's configuration directory.

Ports

  • 80:80: Maps port 80 of the host to port 80 of the container, allowing web access to FreshRSS.

Port 80 conflict

Port 80 is commonly used by other web services on a homelab (Nginx Proxy Manager, Traefik, etc.). If you have a conflict, change the host-side port, e.g. 8080:80, or place FreshRSS behind a reverse proxy.

Restart Policy

  • unless-stopped: Ensures the container restarts automatically unless explicitly stopped.

Deploying FreshRSS

  1. Save the Docker Compose configuration in a docker-compose.yml file.
  2. Replace /path/to/data with your desired local directory path.
  3. Run docker compose up -d to start FreshRSS in detached mode.
  4. Access FreshRSS via http://<host-ip>.

Configuring and Using FreshRSS

After navigating to http://<your-server-ip>:<port>:

  1. Complete the installation wizard — create your admin account and choose a database (SQLite is fine for personal use)
  2. Go to Subscription → Add a feed to add your first RSS source
  3. Use Settings → Authentication to create additional user accounts if needed

Youtube Video

Updating FreshRSS

docker compose pull
docker compose up -d

Back up before updating

Your data lives in the host directory you mapped to /config (/path/to/data in the compose file). Back this up before major version updates.


If there is an issue with this guide or you wish to suggest changes, please raise an issue on GitHub.