rpi: медиацентр (Jellyfin, Seerr, qBittorrent, *arr) в Docker; диск роутера и резерв DHCP
- stacks/rpi-media: docker-compose и идемпотентный provision.py - servers/rpi.md: раздел «Медиацентр», почему NTFS и SFTP на роутере, закрыт хвост про резерв адреса - AGENTS.md: роль малины Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
bc0537a2d9
commit
1769608355
@@ -0,0 +1,112 @@
|
||||
# Медиацентр на rpi. Разворачивается в /opt/media (docker compose up -d).
|
||||
# Подробности и грабли — servers/rpi.md → «Медиацентр».
|
||||
#
|
||||
# Все *arr и qBittorrent видят один и тот же корень /data (= /mnt/backup/media),
|
||||
# иначе импорт из torrents/ в library/ превращается в копирование вместо хардлинка
|
||||
# и раздача занимает место дважды.
|
||||
|
||||
x-common: &common
|
||||
restart: unless-stopped
|
||||
environment: &env
|
||||
PUID: "1000"
|
||||
PGID: "1000"
|
||||
TZ: Europe/Moscow
|
||||
UMASK: "002"
|
||||
|
||||
services:
|
||||
jellyfin:
|
||||
image: jellyfin/jellyfin:latest
|
||||
container_name: jellyfin
|
||||
# host-сеть: иначе LG/iOS не находят сервер автообнаружением (UDP 7359 и DLNA-мультикаст
|
||||
# не проходят через docker-бридж)
|
||||
network_mode: host
|
||||
user: "1000:1000"
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
TZ: Europe/Moscow
|
||||
JELLYFIN_PublishedServerUrl: http://192.168.10.25:8096
|
||||
volumes:
|
||||
- ./config/jellyfin:/config
|
||||
# кэш и транскоды — на HDD, а не на SD
|
||||
- /mnt/backup/media/.cache/jellyfin:/cache
|
||||
- /mnt/backup/media/library:/data/library:ro
|
||||
|
||||
qbittorrent:
|
||||
<<: *common
|
||||
image: lscr.io/linuxserver/qbittorrent:latest
|
||||
container_name: qbittorrent
|
||||
environment:
|
||||
<<: *env
|
||||
WEBUI_PORT: "8080"
|
||||
TORRENTING_PORT: "6881"
|
||||
volumes:
|
||||
- ./config/qbittorrent:/config
|
||||
- /mnt/backup/media:/data
|
||||
ports:
|
||||
- "8080:8080"
|
||||
- "6881:6881"
|
||||
- "6881:6881/udp"
|
||||
|
||||
prowlarr:
|
||||
<<: *common
|
||||
image: lscr.io/linuxserver/prowlarr:latest
|
||||
container_name: prowlarr
|
||||
volumes:
|
||||
- ./config/prowlarr:/config
|
||||
ports:
|
||||
- "9696:9696"
|
||||
|
||||
flaresolverr:
|
||||
# нужен Prowlarr для трекеров за Cloudflare (часть публичных)
|
||||
image: ghcr.io/flaresolverr/flaresolverr:latest
|
||||
container_name: flaresolverr
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
TZ: Europe/Moscow
|
||||
LOG_LEVEL: info
|
||||
ports:
|
||||
- "8191:8191"
|
||||
|
||||
sonarr:
|
||||
<<: *common
|
||||
image: lscr.io/linuxserver/sonarr:latest
|
||||
container_name: sonarr
|
||||
volumes:
|
||||
- ./config/sonarr:/config
|
||||
- /mnt/backup/media:/data
|
||||
ports:
|
||||
- "8989:8989"
|
||||
|
||||
radarr:
|
||||
<<: *common
|
||||
image: lscr.io/linuxserver/radarr:latest
|
||||
container_name: radarr
|
||||
volumes:
|
||||
- ./config/radarr:/config
|
||||
- /mnt/backup/media:/data
|
||||
ports:
|
||||
- "7878:7878"
|
||||
|
||||
bazarr:
|
||||
<<: *common
|
||||
image: lscr.io/linuxserver/bazarr:latest
|
||||
container_name: bazarr
|
||||
volumes:
|
||||
- ./config/bazarr:/config
|
||||
- /mnt/backup/media/library:/data/library
|
||||
ports:
|
||||
- "6767:6767"
|
||||
|
||||
seerr:
|
||||
# Seerr = слившиеся Jellyseerr + Overseerr. ⚠️ образ fallenbagel/jellyseerr заброшен
|
||||
# (последний — 2025-08) и не логинится в Jellyfin 12 (400 на AuthenticateByName)
|
||||
image: ghcr.io/seerr-team/seerr:latest
|
||||
container_name: seerr
|
||||
init: true
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
TZ: Europe/Moscow
|
||||
volumes:
|
||||
- ./config/seerr:/app/config
|
||||
ports:
|
||||
- "5055:5055"
|
||||
Reference in New Issue
Block a user