Google Reader inspired self-hosted RSS reader.
Google Reader inspired self-hosted RSS reader, based on Dropwizard and React/TypeScript.
Docker is the easiest way to get started with CommaFeed.
Docker images are built automatically and are available at https://hub.docker.com/r/athou/commafeed
PikaPods offers 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.com/Athou/commafeed/releases/latest/download/commafeed.jar
wget https://github.com/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 on http://localhost:8082. The default
user is admin
and the default password is admin
.
git clone https://github.com/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 on http://localhost:8082. The default
user is admin
and the default password is admin
.
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. However, 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
.
The JVM can be configured to release unused memory to the operating system with the following parameters:
-Xms20m -XX:+UseG1GC -XX:-ShrinkHeapInSteps -XX:G1PeriodicGCInterval=10000 -XX:-G1PeriodicGCInvokesConcurrent -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10
This is how the Docker image is configured. See here and here for more information.
Files for internationalization are located here.
To add a new language:
locales
array in:
commafeed-client/.linguirc
commafeed-client/src/i18n.ts
npm run i18n:extract
commafeed-client/src/locales/[locale]/messages.po
fileThe name of the locale should be the two-letters ISO-639-1 language code.
commafeed-server
in your preferred Java IDE.
CommaFeedApplication.java
in debug mode with server config.dev.yml
as argumentscommafeed-client
in your preferred JavaScript IDE.npm install
npm run dev
The frontend server is now running at http://localhost:8082 and is proxying REST requests to the backend running on port 8083