User Tools

This is an old revision of the document!


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/<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:

podfetch.sh
#!/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:

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 "Casa";
                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.