Add gpodder-rs setup

This commit is contained in:
2025-09-27 01:15:39 -05:00
parent 64ea7cb6e6
commit 865c02a3a4
2 changed files with 37 additions and 16 deletions

View File

@@ -30,6 +30,8 @@ networks:
external: false external: false
gitea: gitea:
external: false external: false
gpodder:
external: false
services: services:
web: web:
image: "nginx" image: "nginx"
@@ -50,6 +52,7 @@ services:
- jellyfin-int - jellyfin-int
- auth - auth
- gitea - gitea
- gpodder
depends_on: depends_on:
- jellyfin - jellyfin
- ollama-webui - ollama-webui
@@ -57,6 +60,7 @@ services:
- authelia - authelia
- qbittorrent - qbittorrent
- gitea - gitea
- gpodder
logging: &logging logging: &logging
options: options:
max-size: "50m" max-size: "50m"
@@ -144,6 +148,13 @@ services:
logging: *logging logging: *logging
depends_on: depends_on:
- gitea - gitea
gpodder:
image: gitea.loadingm.xyz/the10thwiz/gpodder-rs:latest
networks:
- gpodder
volumes:
- /data/gpodder:/data
logging: *logging
# calibre: # calibre:
# image: "linuxserver/calibre-web" # image: "linuxserver/calibre-web"
# 5d-diplomacy-frontend: # 5d-diplomacy-frontend:

View File

@@ -48,23 +48,33 @@ server {
# ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
ssl_trusted_certificate /etc/letsencrypt/live/loadingm.xyz/chain.pem; ssl_trusted_certificate /etc/letsencrypt/live/loadingm.xyz/chain.pem;
root /data/site; # Security / XSS Mitigation Headers
add_header X-Content-Type-Options "nosniff";
location /hosted { # Permissions policy. May cause issues with some clients
index index.html; add_header Permissions-Policy "accelerometer=(), ambient-light-sensor=(), battery=(), bluetooth=(), camera=(), clipboard-read=(), display-capture=(), document-domain=(), encrypted-media=(), gamepad=(), geolocation=(), gyroscope=(), hid=(), idle-detection=(), interest-cohort=(), keyboard-map=(), local-fonts=(), magnetometer=(), microphone=(), payment=(), publickey-credentials-get=(), serial=(), sync-xhr=(), usb=(), xr-spatial-tracking=()" always;
autoindex on;
}
location / { # Content Security Policy
# First attempt to serve request as file, then # See: https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP
# as directory, then fall back to displaying a 404. # Enforces https content and restricts JS/CSS to origin
try_files $uri $uri/ =404; # External Javascript (such as cast_sender.js for Chromecast) must be whitelisted.
} add_header Content-Security-Policy "default-src https: data: blob: ; img-src 'self' https://* ; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' https://www.gstatic.com https://www.youtube.com blob:; worker-src 'self' blob:; connect-src 'self'; object-src 'none'; frame-ancestors 'self'; font-src 'self'";
# deny access to .htaccess files, if Apache's document root location /.well-known/acme-challenge/ {
# concurs with nginx's one root /var/www/certbot;
# }
#location ~ /\.ht {
# deny all; location / {
#} # Proxy main karakeep traffic
proxy_pass http://gpodder:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Protocol $scheme;
proxy_set_header X-Forwarded-Host $http_host;
# Disable buffering when the nginx proxy gets very resource heavy upon streaming
proxy_buffering off;
}
} }