Author SHA1 Message Date
tobbbs 368df86bca Update compose.yaml 2026-07-14 18:06:18 +02:00
tobbbs 03260a1892 Update compose.yaml 2026-07-14 17:48:38 +02:00
tobbbs 24b6e7d3e2 Update compose.yaml 2026-07-08 14:36:05 +02:00
tobbbs a576348dd4 Update compose.yaml 2026-07-08 14:29:34 +02:00
tobbbs 6e761b7501 Update compose.yaml 2026-07-08 10:18:44 +02:00
tobbbs 107dfafaf8 Update compose.yaml 2026-05-31 03:13:54 +02:00
tobbbs f9597d1f1a Update compose.yaml 2026-05-31 03:01:10 +02:00
tobbbs 8bfde99c81 Update compose.yaml 2026-05-31 02:59:54 +02:00
tobbbs 20722b26eb Update compose.yaml 2026-05-31 02:58:19 +02:00
tobbbs 4984e0f581 Update compose.yaml 2026-05-31 02:56:18 +02:00
tobbbs c9cb072e94 Add .env 2026-05-31 02:55:30 +02:00
tobbbs b4e2ea8acd Update compose.yaml 2026-05-31 02:55:17 +02:00
tobbbs dd0731fc97 Add compose.yaml 2026-05-26 16:34:50 +02:00
2 changed files with 209 additions and 121 deletions
+99
View File
@@ -0,0 +1,99 @@
# Global Settings
## Do not mark any shows/movies as played and instead just output to log if they would of been marked.
DRYRUN= "False"
## Debugging level, "info" is default, "debug" is more verbose
DEBUG_LEVEL= "INFO"
## If set to true then the script will only run once and then exit
RUN_ONLY_ONCE= "False"
## How often to run the script in seconds
SLEEP_DURATION= "3600"
## Log file where all output will be written to
LOG_FILE= "/home/shrek/docker/data/jellyfin/log.log"
## Mark file where all shows/movies that have been marked as played will be written to
MARK_FILE= "/home/shrek/docker/data/jellyfin/mark.log"
## Timeout for requests for jellyfin
REQUEST_TIMEOUT= 300
## Max threads for processing
MAX_THREADS= 1
## Generate guids/locations
## These are slow processes, so this is a way to speed things up
## If media servers are using the same files then you can enable only generate locations
## If media servers are using different files then you can enable only generate guids
## Default is to generate both
GENERATE_GUIDS= "True"
GENERATE_LOCATIONS= "True"
## Map usernames between servers in the event that they are different, order does not matter
## Comma separated for multiple options
USER_MAPPING= { "Tobi1814": "Tobias" }
## Map libraries between servers in the event that they are different, order does not matter
## Comma separated for multiple options
LIBRARY_MAPPING= { "Shows": "TV Shows", "Movie": "Movies" }
## Blacklisting/Whitelisting libraries, library types such as Movies/TV Shows, and users. Mappings apply so if the mapping for the user or library exist then both will be excluded.
## Comma separated for multiple options
#BLACKLIST_LIBRARY = ""
#WHITELIST_LIBRARY = ""
#BLACKLIST_LIBRARY_TYPE = ""
#WHITELIST_LIBRARY_TYPE = ""
#BLACKLIST_USERS = ""
#WHITELIST_USERS = ""
# Plex
## Recommended to use token as it is faster to connect as it is direct to the server instead of going through the plex servers
## URL of the plex server, use hostname or IP address if the hostname is not resolving correctly
## Comma separated list for multiple servers
PLEX_BASEURL= "http://192.168.178.70:32400"
## Plex token https://support.plex.tv/articles/204059436-finding-an-authentication-token-x-plex-token/
## Comma separated list for multiple servers
PLEX_TOKEN= "5WUY66oQ4A4jneDtJAVu"
## If not using plex token then use username and password of the server admin along with the servername
## Comma separated for multiple options
#PLEX_USERNAME = "PlexUser, PlexUser2"
#PLEX_PASSWORD = "SuperSecret, SuperSecret2"
#PLEX_SERVERNAME = "Plex Server1, Plex Server2"
## Skip hostname validation for ssl certificates.
## Set to True if running into ssl certificate errors
SSL_BYPASS= "False"
# Jellyfin
## Jellyfin server URL, use hostname or IP address if the hostname is not resolving correctly
## Comma separated list for multiple servers
JELLYFIN_BASEURL= "http://192.168.178.70:8096"
## Jellyfin api token, created manually by logging in to the jellyfin server admin dashboard and creating an api key
## Comma separated list for multiple servers
JELLYFIN_TOKEN= "fbe8243134424bf2a1a212f14921a7c6"
# Syncing Options
## control the direction of syncing. e.g. SYNC_FROM_PLEX_TO_JELLYFIN set to true will cause the updates from plex
## to be updated in jellyfin. SYNC_FROM_PLEX_TO_PLEX set to true will sync updates between multiple plex servers
SYNC_FROM_PLEX_TO_JELLYFIN= "True"
SYNC_FROM_PLEX_TO_PLEX= "false"
SYNC_FROM_PLEX_TO_EMBY= "false"
SYNC_FROM_JELLYFIN_TO_PLEX= "True"
SYNC_FROM_JELLYFIN_TO_JELLYFIN= "false"
SYNC_FROM_JELLYFIN_TO_EMBY= "false"
SYNC_FROM_EMBY_TO_PLEX= "false"
SYNC_FROM_EMBY_TO_JELLYFIN= "false"
SYNC_FROM_EMBY_TO_EMBY= "false"
+103 -114
View File
@@ -1,128 +1,117 @@
version: '3.8'
services:
deemix:
image: ghcr.io/bambanah/deemix:latest
container_name: Deemix
volumes:
- /mnt/hdd/Media/Music:/downloads
- /opt/02_media_downloader/deemix:/config
navidrome:
image: deluan/navidrome:latest
container_name: navidrome
environment:
- DEEMIX_SINGLE_USER=true
# ports:
# - '6595:6595'
networks:
- bragi-local
restart: unless-stopped
seerr:
image: ghcr.io/seerr-team/seerr:latest
init: true
container_name: Seerr
volumes:
- /opt/download/seerr/config:/app/config
ND_UILOGINBACKGROUNDURL: "https://images.unsplash.com/photo-1675702656416-fbc847ec4226?q=80&w=1470&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
ports:
- '5055:5055'
restart: unless-stopped
- 4533:4533
volumes:
- /home/shrek/docker/data/navidrome:/data
- /mnt/hdd/Media/Music:/music:ro
networks:
- bragi-local
healthcheck:
test: wget --no-verbose --tries=1 --spider http://localhost:5055/api/v1/settings/public || exit 1
start_period: 20s
timeout: 3s
interval: 15s
retries: 3
# qbittorrent:
# image: lscr.io/linuxserver/qbittorrent:latest
# container_name: qbittorrent
# volumes:
# - /opt/download/qbittorrent/config:/config
# - /mnt/big/Media/Film:/downloads
# environment:
# - WEBUI_PORT=8088
# network_mode: service:gluetun
# restart: unless-stopped
slskd:
image: slskd/slskd
container_name: slskd
user: "1000:1000"
environment:
- SLSKD_REMOTE_CONFIGURATION=true
volumes:
- /opt/02_media_downloader/slskd/:/app
- /mnt/hdd/Media/incomplete:/downloads/incomplete
- /mnt/hdd/Media/Music:/downloads/complete
network_mode: service:gluetun
restart: always
sabnzbd:
image: lscr.io/linuxserver/sabnzbd:latest
container_name: sabnzbd
volumes:
- /opt/download/sabnzbd/config:/config
- /mnt/big/Media/incomplete:/incomplete-downloads
- /mnt/big/Media/Film:/downloads
network_mode: service:gluetun
restart: unless-stopped
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
container_name: Prowlarr
jellyfin:
image: jellyfin/jellyfin
container_name: jellyfin
ports:
- 8096:8096/tcp
- 7359:7359/udp
networks:
- bragi-local
volumes:
- /opt/download/prowlarr/config:/config
network_mode: service:gluetun
restart: unless-stopped
radarr:
image: lscr.io/linuxserver/radarr:latest
container_name: Radarr
volumes:
- /opt/download/radarr/config:/config
- /mnt/big/Media/Film/movies:/downloads
- /mnt/big/Media/Films:/movies
network_mode: service:gluetun
restart: unless-stopped
sonarr:
image: lscr.io/linuxserver/sonarr:latest
container_name: sonarr
volumes:
- /opt/download/sonarr/data:/config
- /mnt/big/Media/Film/Series:/downloads
- /mnt/big/Media/Series:/tv
network_mode: service:gluetun
restart: unless-stopped
gluetun:
image: qmcgaw/gluetun
container_name: gluetun
cap_add:
- NET_ADMIN
- NET_RAW
sysctls:
- net.ipv6.conf.all.disable_ipv6=0
- /home/shrek/docker/data/jellyfin/config:/config
- /home/shrek/docker/data/jellyfin/cache:/cache
- type: bind
source: /mnt/big/Downloads/done
target: /films1
- type: bind
source: /mnt/immich/Media/Films
target: /films2
- type: bind
source: /mnt/big/Media/Films
target: /films3
- type: bind
source: /mnt/hdd/Media/Film
target: /films4
- type: bind
source: /mnt/big/data/torrents/movies
target: /films5
- type: bind
source: /mnt/big/data/downloads/movies
target: /films6
- type: bind
source: /mnt/big/Media/Film
target: /films7
- type: bind
source: /mnt/hdd/Media/Series
target: /series1
- type: bind
source: /mnt/big/data/downloads/tv/
target: /series2
- type: bind
source: /mnt/big/data/torrents/tv/
target: /series3
- type: bind
source: /mnt/big/Downloads/done/Series/
target: /series4
- type: bind
source: /mnt/big/Media/Series/
target: /series5
- type: bind
source: /mnt/big/Media/Film/Series/
target: /series6
- type: bind
source: /mnt/immich/Media/Series/
target: /series7
read_only: true
restart: 'unless-stopped'
runtime: nvidia
deploy:
resources:
reservations:
devices:
- /dev/net/tun:/dev/net/tun
volumes:
- /opt/download/gluetun:/gluetun
- driver: nvidia
count: all
capabilities: [gpu]
environment:
- VPN_SERVICE_PROVIDER=protonvpn
- VPN_TYPE=openvpn
- OPENVPN_USER=${USER}
- OPENVPN_PASSWORD=${Password}
# - SERVER_COUNTRIES=Bulgaria
- UPDATER_PERIOD=24h
ports:
- '6881:6881' # Torrent port forwarding (Crucial for Gluetun)
- '7878:7878' # Radarr
- '8087:8080' # Sabnzbd (Internal 8080 -> External 8088)
- '8989:8989' # Sonarr
- '9696:9696' # Prowlarr
- "5030:5030" # slskd HTTP
- "5031:5031" # slskd HTTPS
- "50300:50300" # slskd Incoming Connections
- JELLYFIN_PublishedServerUrl=https://stream.doeringer.eu
- NVIDIA_VISIBLE_DEVICES=all
- NVIDIA_DRIVER_CAPABILITIES=compute,video,utility
jellyplex-watched:
image: luigi311/jellyplex-watched:latest
container_name: jellyplex-watched
restart: unless-stopped
networks:
- bragi-local
environment:
- PUID=1000
- PGID=1000
env_file: "./.env"
droppedneedle:
image: ghcr.io/habirabbu/droppedneedle:latest
container_name: droppedneedle
networks:
- bragi-local
environment:
- PUID=1000
- PGID=1000
# - PORT=8688
- TZ=Europe/Berlin
- /mnt/hdd/Media/Music=/slskd-downloads
#ports:
#- "8688:8688"
volumes:
- /opt/03_media_player/droppedneedle/config:/app/config
- /opt/03_media_player/droppedneedle/cache:/app/cache
- /mnt/hdd/Media/Music:/music:rw
- /mnt/hdd/Media/Downloads/Music/downloads:/slskd-downloads:rw
restart: unless-stopped
networks:
bragi-local: