PodFetch is a web app that let's you download and play podcasts.
It needs PostgreSQL, even if it doesnt use it, so:
> emerge postgresql
you don't need to run it.
Create user:
> useradd -d /data/daemons/podfetch -m -g media podfetch > su - podfetch > wget https://github.com/SamTV12345/PodFetch/releases/download/<use latest release>/podfetch-linux.zip > unzip podfetch-linux.zip
Move podcast folder, as root:
> mkdir /data/Media/Podcasts > rmdir /data/daemons/podfetch/podcasts > ln -s /data/Media/Podcasts /data/daemons/podfetch/podcasts
Now, PodFetch works just fine with sub paths, but the gPodder integration will fail, so i suggest to create a dedicated sub-domain for podfetch, let's call it podcast.mydomain.com.
Run script:
#!/bin/bash export SERVER_URL=https://podcast.mydomain.com/ export DATABASE_URL=sqlite:///data/daemons/podfetch/db/podcast.db export REVERSE_PROXY=true export REVERSE_PROXY_HEADER=X-WEBAUTH-USER export REVERSE_PROXY_AUTO_SIGN_UP=true export TELEGRAM_BOT_TOKEN= export TELEGRAM_BOT_CHAT_ID= export TELEGRAM_API_ENABLED=false export GPODDER_INTEGRATION_ENABLED=false cd /data/daemons/podfetch ./podfetch_amd64 &> podfetch.log
You will need at least version 4.6.1 to have gPodder working with REVERSE_PROXY authentication.
startup script /etc/local.d/35-podfetch.start:
#!/bin/bash start-stop-daemon -b -m -p /var/run/podfetch.pid -n podfetch -u podfetch /data/daemons/podfetch/podfetch.sh
Add this section to your nginx:
# Podfetch works in sub-path, but gPodder will not work, it require it's own subdomain so here it is server { server_name podcast.mydomain.com; listen 8443 ssl; # managed by Certbot listen 443 ssl; # managed by Certbot auth_pam "Home"; auth_pam_service_name "nginx"; client_max_body_size 50000M; large_client_header_buffers 4 32k; location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Connection $http_connection; proxy_set_header Upgrade $http_upgrade; proxy_set_header Host $host; proxy_set_header X-WEBAUTH-USER $remote_user; proxy_set_header Authorization ""; } ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot }
and don't forget to extend your Let's Encrypt certificate as well, see the NGINX page of this wiki.
When updating, make sure your podcasts links inside Podfetch folder still points to your /data/Media/Podcasts or things will start to not working properly! (bug here)