mirror of
https://github.com/LLukas22/Jellyswarrm.git
synced 2026-07-30 16:46:51 -04:00
214 lines
5.6 KiB
YAML
214 lines
5.6 KiB
YAML
x-jellyfin: &jellyfin
|
|
image: jellyfin/jellyfin:${JELLYFIN_VERSION:?Set JELLYFIN_VERSION in dev/.env}
|
|
environment: &jellyfin-environment
|
|
PUID: 1000
|
|
PGID: 1000
|
|
TZ: UTC
|
|
restart: unless-stopped
|
|
networks:
|
|
- jellyfin-dev-net
|
|
|
|
x-jellyfin-init: &jellyfin-init
|
|
image: ghcr.io/astral-sh/uv:python3.12-alpine
|
|
volumes:
|
|
- ./scripts/init-jellyfin.py:/scripts/init-jellyfin.py:ro
|
|
working_dir: /scripts
|
|
command: ["uv", "run", "/scripts/init-jellyfin.py"]
|
|
restart: "no"
|
|
networks:
|
|
- jellyfin-dev-net
|
|
|
|
x-jellyswarrm-user: &jellyswarrm-user
|
|
JELLYSWARRM_USERNAME: test
|
|
JELLYSWARRM_PASSWORD: test
|
|
|
|
x-movies-init-environment: &movies-init-environment
|
|
<<: *jellyswarrm-user
|
|
COLLECTION_NAME: Movies
|
|
COLLECTION_PATH: /media/movies
|
|
COLLECTION_TYPE: movies
|
|
|
|
x-shows-init-environment: &shows-init-environment
|
|
<<: *jellyswarrm-user
|
|
COLLECTION_NAME: Shows
|
|
COLLECTION_PATH: /media/tv-shows
|
|
COLLECTION_TYPE: tvshows
|
|
|
|
x-music-init-environment: &music-init-environment
|
|
<<: *jellyswarrm-user
|
|
COLLECTION_NAME: Music
|
|
COLLECTION_PATH: /media/music
|
|
COLLECTION_TYPE: music
|
|
|
|
services:
|
|
jellyfin-movies:
|
|
<<: *jellyfin
|
|
container_name: jellyfin-movies
|
|
environment:
|
|
<<: *jellyfin-environment
|
|
JELLYFIN_PublishedServerUrl: http://localhost:8096
|
|
volumes:
|
|
- ./data/jellyfin-movies/config:/config
|
|
- ./data/jellyfin-movies/cache:/cache
|
|
- ./media/movies/server-1:/media/movies:ro
|
|
ports:
|
|
- "8096:8096"
|
|
|
|
jellyfin-movies-init:
|
|
<<: *jellyfin-init
|
|
container_name: jellyfin-movies-init
|
|
environment:
|
|
<<: *movies-init-environment
|
|
URL: http://jellyfin-movies:8096
|
|
SERVER_NAME: Movies 1
|
|
depends_on:
|
|
jellyfin-movies:
|
|
condition: service_healthy
|
|
|
|
jellyfin-tvshows:
|
|
<<: *jellyfin
|
|
container_name: jellyfin-tvshows
|
|
environment:
|
|
<<: *jellyfin-environment
|
|
JELLYFIN_PublishedServerUrl: http://localhost:8097
|
|
volumes:
|
|
- ./data/jellyfin-tvshows/config:/config
|
|
- ./data/jellyfin-tvshows/cache:/cache
|
|
- ./media/tv-shows/server-1:/media/tv-shows:ro
|
|
ports:
|
|
- "8097:8096"
|
|
|
|
jellyfin-tvshows-init:
|
|
<<: *jellyfin-init
|
|
container_name: jellyfin-tvshows-init
|
|
environment:
|
|
<<: *shows-init-environment
|
|
URL: http://jellyfin-tvshows:8096
|
|
SERVER_NAME: Shows 1
|
|
depends_on:
|
|
jellyfin-tvshows:
|
|
condition: service_healthy
|
|
|
|
jellyfin-music:
|
|
<<: *jellyfin
|
|
container_name: jellyfin-music
|
|
environment:
|
|
<<: *jellyfin-environment
|
|
JELLYFIN_PublishedServerUrl: http://localhost:8098
|
|
volumes:
|
|
- ./data/jellyfin-music/config:/config
|
|
- ./data/jellyfin-music/cache:/cache
|
|
- ./media/music/server-1:/media/music:ro
|
|
ports:
|
|
- "8098:8096"
|
|
|
|
jellyfin-music-init:
|
|
<<: *jellyfin-init
|
|
container_name: jellyfin-music-init
|
|
environment:
|
|
<<: *music-init-environment
|
|
URL: http://jellyfin-music:8096
|
|
SERVER_NAME: Music 1
|
|
depends_on:
|
|
jellyfin-music:
|
|
condition: service_healthy
|
|
|
|
jellyfin-movies-2:
|
|
<<: *jellyfin
|
|
container_name: jellyfin-movies-2
|
|
environment:
|
|
<<: *jellyfin-environment
|
|
JELLYFIN_PublishedServerUrl: http://localhost:8099
|
|
volumes:
|
|
- ./data/jellyfin-movies-2/config:/config
|
|
- ./data/jellyfin-movies-2/cache:/cache
|
|
- ./media/movies/server-2:/media/movies:ro
|
|
ports:
|
|
- "8099:8096"
|
|
|
|
jellyfin-movies-2-init:
|
|
<<: *jellyfin-init
|
|
container_name: jellyfin-movies-2-init
|
|
environment:
|
|
<<: *movies-init-environment
|
|
URL: http://jellyfin-movies-2:8096
|
|
SERVER_NAME: Movies 2
|
|
depends_on:
|
|
jellyfin-movies-2:
|
|
condition: service_healthy
|
|
|
|
jellyfin-tvshows-2:
|
|
<<: *jellyfin
|
|
container_name: jellyfin-tvshows-2
|
|
environment:
|
|
<<: *jellyfin-environment
|
|
JELLYFIN_PublishedServerUrl: http://localhost:8100
|
|
volumes:
|
|
- ./data/jellyfin-tvshows-2/config:/config
|
|
- ./data/jellyfin-tvshows-2/cache:/cache
|
|
- ./media/tv-shows/server-2:/media/tv-shows:ro
|
|
ports:
|
|
- "8100:8096"
|
|
|
|
jellyfin-tvshows-2-init:
|
|
<<: *jellyfin-init
|
|
container_name: jellyfin-tvshows-2-init
|
|
environment:
|
|
<<: *shows-init-environment
|
|
URL: http://jellyfin-tvshows-2:8096
|
|
SERVER_NAME: Shows 2
|
|
depends_on:
|
|
jellyfin-tvshows-2:
|
|
condition: service_healthy
|
|
|
|
jellyfin-music-2:
|
|
<<: *jellyfin
|
|
container_name: jellyfin-music-2
|
|
environment:
|
|
<<: *jellyfin-environment
|
|
JELLYFIN_PublishedServerUrl: http://localhost:8101
|
|
volumes:
|
|
- ./data/jellyfin-music-2/config:/config
|
|
- ./data/jellyfin-music-2/cache:/cache
|
|
- ./media/music/server-2:/media/music:ro
|
|
ports:
|
|
- "8101:8096"
|
|
|
|
jellyfin-music-2-init:
|
|
<<: *jellyfin-init
|
|
container_name: jellyfin-music-2-init
|
|
environment:
|
|
<<: *music-init-environment
|
|
URL: http://jellyfin-music-2:8096
|
|
SERVER_NAME: Music 2
|
|
depends_on:
|
|
jellyfin-music-2:
|
|
condition: service_healthy
|
|
|
|
caddy:
|
|
image: caddy:latest
|
|
container_name: jellyswarrm-caddy
|
|
ports:
|
|
- "8000:80"
|
|
volumes:
|
|
- ./Caddyfile:/etc/caddy/Caddyfile:ro
|
|
networks:
|
|
- jellyfin-dev-net
|
|
depends_on:
|
|
jellyfin-movies-init:
|
|
condition: service_completed_successfully
|
|
jellyfin-tvshows-init:
|
|
condition: service_completed_successfully
|
|
jellyfin-music-init:
|
|
condition: service_completed_successfully
|
|
jellyfin-movies-2-init:
|
|
condition: service_completed_successfully
|
|
jellyfin-tvshows-2-init:
|
|
condition: service_completed_successfully
|
|
jellyfin-music-2-init:
|
|
condition: service_completed_successfully
|
|
|
|
networks:
|
|
jellyfin-dev-net:
|
|
driver: bridge
|