====== PodFetch ======
[[https://github.com/SamTV12345/PodFetch|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/
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
===== NGINX integration =====
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.
===== Update notes =====
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! ([[https://github.com/SamTV12345/PodFetch/issues/613|bug here]])