# Overview This project consists of the elements to assemble a [docker](https://www.docker.com/) image and [docker-compose](https://docs.docker.com/compose/) instructions of [newspipe](https://git.sr.ht/~cedric/newspipe), the rss feed aggregator web app. # Why this project exists Of category [awesome-selfhosted#feed-readers](https://github.com/awesome-selfhosted/awesome-selfhosted#feed-readers), only so many projects where written in Python/Flask, and of those (including [JARR](https://1pxsolidblack.pl/jarr-en.html) and [Temboz](https://github.com/fazalmajid/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" To use a reverse proxy, you need to set config variable in your `sqlite.py` or `config.py`: PREFIX = "/newspipe" And here is an example apache httpd directive: ProxyPass http://newspipe.vm.example.com:5004/ retry=0 ProxyPassReverse http://newspipe.vm.example.com:5004/ # You might be tempted to try the following, but it does not work in flask or newspipe. # a2enmod headers. These are extra ones that are not provided by Apache natively. #RequestHeader append X-Forwarded-Prefix "/newspipe" #RequestHeader append X-Script-Name "/newspipe" # 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: #!/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 1. 2. 3. FreeIPA auth (ldap+kerberos) for a different rss reader, in a different language 4. Apache httpd config syntax from