From b6c61cafdb137441e2ce6ab9a3d08e67ea24ba4e Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sun, 15 Mar 2020 15:41:13 +0100 Subject: [PATCH] services: add Jellyfin --- docker-compose.yml | 13 ++++++ jellyfin/jellyfin.env | 4 ++ .../nginx/proxy-confs/jellyfin.subdomain.conf | 41 +++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 jellyfin/jellyfin.env create mode 100644 letsencrypt/nginx/proxy-confs/jellyfin.subdomain.conf diff --git a/docker-compose.yml b/docker-compose.yml index fa2334d..1bbb8a5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -281,6 +281,19 @@ services: - 8080 user: 1000:1000 + jellyfin: + image: linuxserver/jellyfin + container_name: jellyfin + restart: unless-stopped + env_file: + - ./jellyfin/jellyfin.env + volumes: + - ./jellyfin:/config + - ~/videos/shows:/data/tvshows + - ~/videos/movies:/data/movies + expose: + - 8096 + photoprism: image: photoprism/photoprism:latest container_name: photoprism diff --git a/jellyfin/jellyfin.env b/jellyfin/jellyfin.env new file mode 100644 index 0000000..7cf70ac --- /dev/null +++ b/jellyfin/jellyfin.env @@ -0,0 +1,4 @@ +PUID=1000 +PGID=1000 +TZ=Europe/Paris +UMASK_SET=022 diff --git a/letsencrypt/nginx/proxy-confs/jellyfin.subdomain.conf b/letsencrypt/nginx/proxy-confs/jellyfin.subdomain.conf new file mode 100644 index 0000000..88c25e1 --- /dev/null +++ b/letsencrypt/nginx/proxy-confs/jellyfin.subdomain.conf @@ -0,0 +1,41 @@ +# make sure that your dns has a cname set for jellyfin +# if jellyfin is running in bridge mode and the container is named "jellyfin", the below config should work as is +# if not, replace the line "set $upstream_app jellyfin;" with "set $upstream_app ;" +# or "set $upstream_app ;" for host mode, HOSTIP being the IP address of jellyfin +# in jellyfin settings, under "Advanced/Networking" change the public https port to 443, leave the local ports as is, +# and set the "Secure connection mode" to "Handled by reverse proxy" + +server { + listen 443 ssl; + listen [::]:443 ssl; + + server_name jellyfin.*; + + include /config/nginx/ssl.conf; + + client_max_body_size 0; + + location / { + include /config/nginx/proxy.conf; + resolver 127.0.0.11 valid=30s; + set $upstream_app jellyfin; + set $upstream_port 8096; + set $upstream_proto http; + proxy_pass $upstream_proto://$upstream_app:$upstream_port; + + proxy_set_header Range $http_range; + proxy_set_header If-Range $http_if_range; + } + + location ~ (/jellyfin)?/socket { + include /config/nginx/proxy.conf; + resolver 127.0.0.11 valid=30s; + set $upstream_app jellyfin; + set $upstream_port 8096; + set $upstream_proto http; + proxy_pass $upstream_proto://$upstream_app:$upstream_port; + + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $http_connection; + } +}