Google Reader inspired self-hosted RSS reader, based on Dropwizard and React/TypeScript.
- 4 different layouts
- Light/Dark theme
- Fully responsive
- Keyboard shortcuts for almost everything
- Support for right-to-left feeds
- Translated in 25+ languages
- Supports thousands of users and millions of feeds
- OPML import/export
- REST API and a Fever-compatible API for native mobile apps
- Browser extension
Docker is the easiest way to get started with CommaFeed.
Docker images are built automatically and are available athttps://hub.docker /r/athou/commafeed
PikaPodsoffers 1-click cloud hosting solutions starting at $1/month with a free $5 welcome credit and officially supports CommaFeed. PikaPods shares 20% of the revenue back to CommaFeed.
mkdir commafeed && cd commafeed
wget https://github /Athou/commafeed/releases/latest/download/commafeed.jar
wget https://github /Athou/commafeed/releases/latest/download/config.yml.example -O config.yml
java -Djava.net.preferIPv4Stack=true -jar commafeed.jar server config.yml
The server will listen onhttp://localhost:8082.The default
user isadmin
and the default password isadmin
.
git clone https://github /Athou/commafeed.git
cd commafeed
./mvnw clean package
cp commafeed-server/config.yml.example config.yml
java -Djava.net.preferIPv4Stack=true -jar commafeed-server/target/commafeed.jar server config.yml
The server will listen onhttp://localhost:8082.The default
user isadmin
and the default password isadmin
.
The Java Virtual Machine (JVM) is rather greedy by default and will not release unused memory to the operating system. This is because acquiring memory from the operating system is a relatively expensive operation. This can be problematic on systems with limited memory.
The JVM can be configured to use a maximum amount of memory with the-Xmx
parameter.
For example, to limit the JVM to 256MB of memory, use-Xmx256m
.
In addition to the previous setting, the JVM can be configured to release unused memory to the operating system with the following parameters:
-Xms20m -XX:+UseG1GC -XX:+UseStringDeduplication -XX:-ShrinkHeapInSteps -XX:G1PeriodicGCInterval=10000 -XX:-G1PeriodicGCInvokesConcurrent -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10
Seehere andherefor more information.
TheOpenJ9JVM is a more memory-efficient alternative to the HotSpot JVM, at the cost of slightly slower throughput.
IBM provides precompiled binaries for OpenJ9 namedSemeru. This is the JVM used in theDocker image.
Files for internationalization are locatedhere.
To add a new language:
- add the new locale to the
locales
array in:commafeed-client/.linguirc
commafeed-client/src/i18n.ts
- run
npm run i18n:extract
- add translations to the newly created
commafeed-client/src/locales/[locale]/messages.po
file
The name of the locale should be the two-lettersISO-639-1 language code.
- Open
commafeed-server
in your preferred Java IDE.- CommaFeed uses Lombok, you need the Lombok plugin for your IDE.
- Start
CommaFeedApplication.java
in debug mode withserver config.dev.yml
as arguments
- Open
commafeed-client
in your preferred JavaScript IDE. - run
npm install
- run
npm run dev
The frontend server is now running athttp://localhost:8082and is proxying REST requests to the backend running on port 8083