The first question you might have is why self-host a RSS reader when there are free options like Feedly around. Well, I must say I found Feedly to be a terrible user experience. I really disliked Feedly only allowing me to scroll for a little bit until it reports no new Articles.
The second thing is Feedly only allows users on it's free plan to create three categories, which is quite limitting. So my choice fell on CommaFeed, a open source RSS reader that can be self-hosted. Since I already have a server, this was a very appealing option for me.
I will assume that you already have nginx, docker and docker-compose installed. If not, just follow these links, they will teach you.
Setting up CommaFeed is extremely simple, you simply download the precompiled java app.
mkdir commafeed && cd commafeed
# download the compiled application
wget https://github.com/Athou/commafeed/releases/download/2.6.0/commafeed.jar
wget https://raw.githubusercontent.com/Athou/commafeed/2.6.0/config.yml.example -O config.yml
# edit config to allow signups
vi config.yml
Do not forget to edit the config.yml
to allow users to sign up, it is disabled by default.
I run all my webservices in Docker containers for convenience, so I recommend you do this as well:
The Dockerfile
:
FROM openjdk:8
WORKDIR /srv/app
COPY config.yml commafeed.jar ./
EXPOSE 8082
CMD [ "java", "-Djava.net.preferIPv4Stack=true", "-jar", "commafeed.jar", "server", "config.yml" ]
The docker-compose.yml
:
version: "3.7"
services:
commafeed:
build: .
restart: always
ports:
- "127.0.0.1:8088:8082"
volumes:
- /home/commafeed:/home/commafeed
Setting restart: always
tells docker to, you guessed it, always restart the service, even if it crashed or after you reboot.
Great, now let's build and run the service:
docker-compose build && docker-compose up -d
If you now run docker ps -a
you will see that the container is running. For me this looks like this:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a69399904ad8 commafeed_commafeed "java -Djava.net.preā¦" 3 minutes ago Up 3 minutes 127.0.0.1:8088->8088/tcp commafeed_commafeed_1
You can now enjoy your self-hosted RSS reader: