Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions app/jellyfin/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
cache
config
3 changes: 3 additions & 0 deletions app/script/setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ if [ ! -e app/filebrowser/data ]; then
mkdir -p app/filebrowser/data;
touch app/filebrowser/data/filebrowser.db;
fi
if [ ! -e app/jellyfin/config ]; then
mkdir -p app/jellyfin/config;
fi

# Initialize .env
if [ ! -e .env ]; then
Expand Down
4 changes: 2 additions & 2 deletions app/static/nginx.default.conf
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ server {
log_not_found off;
}

# Serve static files and fallback to index.html
# Serve static files
location / {
try_files $uri $uri/ /index.html;
try_files $uri =404;
}

# Add basic security headers
Expand Down
4 changes: 4 additions & 0 deletions app/template/.env.template
Original file line number Diff line number Diff line change
Expand Up @@ -81,3 +81,7 @@ YOUTUBE_API_KEY=

# Enabled plugin groups. By default, all are enabled. To disable a plugin group, remove it from the list.
ENABLED_PLUGINS="CorePluginGroup,GamesPluginGroup,ExtraSecurityPluginGroup,PlayerPluginGroup,GalleryPluginGroup,UserDefinedPluginGroup"

# Jellyfin server URL
JELLYFIN_HOST=jellyfin.skych.at.localhost
JELLYFIN_PUBLIC_URL=http://jellyfin.skych.at.localhost:8081
22 changes: 22 additions & 0 deletions app/traefik/dynamic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,25 @@ http:
certResolver: letsencrypt
{{ end }}
{{ end }}
skychat_jellyfin:
service: skychat_jellyfin@file
entrypoints: web
middlewares:
- ratelimit-ultralight
rule: "Host(`{{ env "JELLYFIN_HOST" }}`)"
{{ if env "USE_TLS" }}
tls:
certResolver: letsencrypt
{{ end }}
middlewares:
ratelimit-ultralight:
rateLimit:
average: 150
burst: 50
{{ if env "TRUSTED_IP_HEADER" }}
sourceCriterion:
requestHeaderName: {{ env "TRUSTED_IP_HEADER" }}
{{ end }}
ratelimit-light:
rateLimit:
average: 60
Expand Down Expand Up @@ -87,3 +105,7 @@ http:
servers:
- url: "http://skychat_admin_filebrowser"
{{ end }}
skychat_jellyfin:
loadBalancer:
servers:
- url: "http://skychat_jellyfin:8096"
14 changes: 13 additions & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -118,5 +118,17 @@ services:
ADMIN_FILEBROWSER_ENABLED: "${ADMIN_FILEBROWSER_ENABLED}"
ADMIN_FILEBROWSER_AUTH: "${ADMIN_FILEBROWSER_AUTH}"

skychat_jellyfin:
image: jellyfin/jellyfin
container_name: skychat_jellyfin
user: "${DOCKER_UID}:${DOCKER_GID}"
volumes:
- ./app/jellyfin/config:/config
- jellyfin_cache:/cache
- ./gallery:/media:ro
environment:
- "JELLYFIN_PublishedServerUrl=${JELLYFIN_PUBLIC_URL}"

volumes:
skychat_letsencrypt:
skychat_letsencrypt:
jellyfin_cache: