Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
selfhost:podfetch [2024/01/31 12:58] – [NGINX integration] willy | selfhost:podfetch [2024/02/22 13:35] (current) – removed willy | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== PodFetch ====== | ||
- | |||
- | [[https:// | ||
- | |||
- | It needs PostgreSQL, even if it doesnt use it, so: | ||
- | <code bash> | ||
- | > emerge postgresql | ||
- | </ | ||
- | |||
- | you don't need to run it. | ||
- | |||
- | Create user: | ||
- | <code bash> | ||
- | > useradd -d / | ||
- | > su - podfetch | ||
- | > wget https:// | ||
- | > unzip podfetch-linux.zip | ||
- | </ | ||
- | |||
- | Move podcast folder, as root: | ||
- | <code bash> | ||
- | > mkdir / | ||
- | > rmdir / | ||
- | > ln -s / | ||
- | </ | ||
- | |||
- | 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: | ||
- | <file txt podfetch.sh> | ||
- | #!/bin/bash | ||
- | |||
- | export SERVER_URL=https:// | ||
- | |||
- | export DATABASE_URL=sqlite:/// | ||
- | |||
- | 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 / | ||
- | ./ | ||
- | |||
- | </ | ||
- | |||
- | You will need at least version 4.6.1 to have gPodder working with REVERSE_PROXY authentication. | ||
- | |||
- | startup script **/ | ||
- | <file txt 35-podfetch.start> | ||
- | #!/bin/bash | ||
- | |||
- | start-stop-daemon -b -m -p / | ||
- | </ | ||
- | |||
- | ===== 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 " | ||
- | auth_pam_service_name " | ||
- | client_max_body_size 50000M; | ||
- | large_client_header_buffers 4 32k; | ||
- | location / { | ||
- | proxy_pass http:// | ||
- | |||
- | 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 / | ||
- | ssl_certificate_key / | ||
- | include / | ||
- | ssl_dhparam / | ||
- | } | ||
- | </ | ||
- | |||
- | and don't forget to extend your Let's Encrypt certificate as well, see the NGINX page of this wiki. | ||
- | |||