Overview
This project consists of the elements to assemble a docker image and docker-compose instructions of newspipe, the rss feed aggregator web app.
Why this project exists
Of category awesome-selfhosted#feed-readers, only so many projects where written in Python/Flask, and of those (including JARR and Temboz), newspipe was the only one I could get installed at all, which I did in a container because I didn't want to contaminate any real system with the likes of npm and some of the other dependencies of this app.
Using
Basic docker experience should suffice. You can make a directory, e.g., instance
, to mount inside the container which will receive the initial configurations from the app, which you can then configure before restarting.
docker run -p 5004:5004 --mount type=bind,source=./instance,destination=/newspipe/instance -it --rm newspipe:latest entrypoint.sh create_admin admin "1234567890"
Operations
Create admin user
If you are using bare docker:
docker run -p 5004:5004 --mount type=bind,source=./instance,destination=/newspipe/instance -it --rm newspipe:latest entrypoint.sh create_admin admin "1234567890"
Or if it is currently running in docker-compose:
docker-compose exec newspipe entrypoint.sh create_admin admin "123456789"
Fetching feeds
Because I'm too lazy to change the container to use uwsgi-python or something that can handle the jobs parts of flask, I wrote a cron job to run this shell script:
1 2 3 | #!/bin/sh
cd ~/newspipe-docker
docker-compose exec newspipe /usr/bin/poetry run flask fetch_asyncio
|
Here's the cron entry:
25 3,15 * * * root /home/newspipe/newspipe-docker/contrib/newspipe_cron.sh 1>/dev/null 2>&1 &
These files are in directory contrib/
.
Improve
Future improvements include:
- add option for using postgresql in networked container
- (underlying project: add ldap auth)
References
- https://stackoverflow.com/questions/72465421/how-to-use-poetry-with-docker
- https://git.sr.ht/~cedric/newspipe
- FreeIPA auth (ldap+kerberos) for a different rss reader, in a different language https://git.sacredheartsc.com/ttrss-freeipa/tree/auth_freeipa/init.php