Analytics cookies only (Google Analytics, PostHog). No ad networks, no cross-site tracking. See our privacy policy.
Self-host CommaFeed
updated Oct 2026deployed by usprices checked · Jul 2026Install verified on Ubuntu 26.04 · Oct 2026 · how we test
We earn commissions when you shop through the links below. Full disclosure →
A self-hosted RSS reader inspired by Google Reader, with a clean web interface, keyboard shortcuts, categories and OPML import and export. A Quarkus (Java) application published as a native-image container, with an embedded H2 database or an external PostgreSQL, MySQL or MariaDB.
Runs on a VPS from $4/mo (Kamatera 1GB, 1 GB RAM) · prices checked Sep 2026
Our recommendation
Pick CommaFeed when you want a fast Google-Reader-style feed reader for yourself or a small group. It has four layouts, light and dark themes, keyboard shortcuts for almost everything, OPML import and export, a REST API, and the Fever and Google Reader APIs so native mobile apps can use it. It is Apache-2.0, written on Quarkus and compiled to native code in the `h2` image, which the README credits with fast startup and low memory use; it can use H2 (embedded), PostgreSQL, MySQL or MariaDB. Our snippet is the Docker Hub page's `docker run` as a Compose file with the image pinned to a release tag. The Docker Hub example caps the container at 256 MB, which is where our 256 MB floor comes from. The catalog's FreshRSS is the PHP alternative with extensions, and Miniflux a minimalist Go reader on PostgreSQL.
What you need
Any VPS with at least 256 MB of RAM
A domain you control — most self-hosted setups need HTTPS in front of them
CommaFeed's README and documentation flag these before you rely on it:
non-negotiableOn a fresh database the first visit asks you to create the admin account (the server's info endpoint reports initialSetupRequired: true), so whoever reaches the port first becomes the admin. Open it yourself right after docker compose up, before the port is reachable from anywhere you do not trust.
non-negotiableLogin credentials are kept in an encrypted cookie whose key is generated randomly at each start, so every restart logs everybody out unless you set QUARKUS_HTTP_AUTH_SESSION_ENCRYPTION_KEY to a fixed value of at least 16 characters. Self-registration is off by default (commafeed.users.allow-registrations), the minimum password length is only 4 characters, and the server blocks feeds on local addresses unless you set COMMAFEED_HTTP_CLIENT_BLOCK_LOCAL_ADDRESSES to false.
non-negotiableThe embedded H2 database lives in /commafeed/data, which our commafeed_data volume holds, so back it up; switching to PostgreSQL, MySQL or MariaDB means setting the QUARKUS_DATASOURCE_* variables and using the matching image tag. Tags follow <version>-<database>[-jvm].
non-negotiablePort 8082 is plain HTTP. Put a TLS reverse proxy in front of it; the docs' memory-management section also explains how to cap the JVM with -Xmx if you use the -jvm images.