CommaFeed logo

CommaFeed

Google Reader inspired self-hosted RSS reader

Alternative to: feedly, inoreader, newsblur


CommaFeed is a self-hosted RSS/Atom feed reader inspired by the discontinued Google Reader, built on Quarkus with a React/TypeScript frontend. It offers multiple layout options, light and dark themes, keyboard shortcuts, OPML import/export, a REST API, and a Fever-compatible API for mobile apps. It compiles to native code for fast startup and low memory use, and supports H2, PostgreSQL, MySQL and MariaDB.

CommaFeed Docker Compose example

Self-host CommaFeed on your own server, homelab, or VPS starting from this Docker Compose example. It runs CommaFeed in Docker containers using the official athou/commafeed:latest-postgresql, postgres:16-alpine images, with persistent volumes and automatic restarts preconfigured. Review the environment variables and adjust them to your setup, save the file as compose.yml (or docker-compose.yml), and start the stack with docker compose up -d.

services:
  commafeed:
    image: athou/commafeed:latest-postgresql
    restart: unless-stopped
    depends_on:
      postgresql:
        condition: service_healthy
    environment:
      # JDBC URL of the PostgreSQL database CommaFeed connects to.
      QUARKUS_DATASOURCE_JDBC_URL: "jdbc:postgresql://postgresql:5432/commafeed"
      # Database username. Must match POSTGRES_USER on the postgresql service.
      QUARKUS_DATASOURCE_USERNAME: "commafeed"
      # Database password. Must match POSTGRES_PASSWORD on the postgresql service.
      QUARKUS_DATASOURCE_PASSWORD: "commafeed"

  postgresql:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      POSTGRES_USER: "commafeed"
      POSTGRES_PASSWORD: "commafeed"
      POSTGRES_DB: "commafeed"
    volumes:
      - db_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U commafeed -d commafeed"]
      interval: 10s
      timeout: 5s
      retries: 5

volumes:
  db_data:

Prefer a managed setup? WinterFlow installs, configures, and updates CommaFeed for you using this same Docker Compose configuration.