Immich Jellyfin check

This commit is contained in:
mrwacka 2026-09-08 10:32:14 +02:00
commit b58f104420
19 changed files with 164 additions and 0 deletions

54
README.md Normal file
View file

@ -0,0 +1,54 @@
# media-int01
Infra-Repository fuer die Medien-VM `media-int01` auf `10.100.20.15`.
## Dienste
- Jellyfin
- Immich
## Domains
- jellyfin.theboxhub.ch -> 10.100.20.15:8096
- immich.theboxhub.ch -> 10.100.20.15:2283
## Struktur
- `compose/` - Compose-Dateien pro Dienst
- `config/` - optionale Konfigurationen
- `data/` - dokumentierte lokale App-Datenstruktur
- `mounts/` - dokumentierte externe Mountpunkte fuer grosse Daten
- `backup/` - vorbereitete Backup-Struktur
- `scripts/init-dirs.sh` - legt Zielstruktur unter `/srv/media-int01` und `/mnt` an
- `scripts/deploy.sh` - deployed Compose und Config nach `/srv/media-int01`
## Datenpfade
### Jellyfin
- `/srv/media-int01/data/jellyfin/config`
- `/srv/media-int01/data/jellyfin/cache`
- `/mnt/jellyfin-data/uploads`
- `/mnt/jellyfin-media/xCinema`
### Immich
- `/srv/media-int01/data/immich/postgres`
- `/srv/media-int01/data/immich/model-cache`
- `/mnt/immich-data/library`
- `/mnt/immich-import/xFlashback`
## Deployment
```bash
./scripts/init-dirs.sh
./scripts/deploy.sh
---
---
# 7. Wichtiger Betriebs-Hinweis
Bevor du spaeter `docker compose up -d` auf der Ziel-VM machst, unbedingt pruefen:
```bash
mount | grep -E 'jellyfin|immich'
ls -ld /mnt/jellyfin-data /mnt/jellyfin-media /mnt/immich-data /mnt/immich-import

0
backup/compose/.gitkeep Normal file
View file

View file

0
backup/immich/.gitkeep Normal file
View file

0
backup/jellyfin/.gitkeep Normal file
View file

View file

@ -0,0 +1,83 @@
x-logging: &default-logging
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
services:
immich-server:
image: ghcr.io/immich-app/immich-server:release
container_name: immich_server
restart: unless-stopped
environment:
DB_HOSTNAME: immich-db
REDIS_HOSTNAME: immich-redis
DB_USERNAME: immich
DB_PASSWORD: "IMDB_7xL2mQ9rT4vK1pD8cY6n"
DB_DATABASE_NAME: immich
DB_TYPE: postgres
IMMICH_MACHINE_LEARNING_URL: http://immich-machine-learning:3003
TZ: Europe/Zurich
volumes:
- /mnt/immich-data/library:/usr/src/app/upload
- /mnt/immich-import/xFlashback:/mnt/xFlashback:ro
- /etc/localtime:/etc/localtime:ro
depends_on:
immich-db:
condition: service_healthy
immich-redis:
condition: service_healthy
immich-machine-learning:
condition: service_healthy
ports:
- "2283:2283"
healthcheck:
test: ["CMD", "immich-admin", "ping"]
interval: 30s
timeout: 10s
retries: 5
start_period: 30s
logging: *default-logging
immich-db:
image: ghcr.io/immich-app/postgres:14-vectorchord0.3.0-pgvectors0.3.0
container_name: immich_db
restart: unless-stopped
environment:
POSTGRES_PASSWORD: "IMDB_7xL2mQ9rT4vK1pD8cY6n"
POSTGRES_USER: immich
POSTGRES_DB: immich
TZ: Europe/Zurich
volumes:
- /srv/media-int01/data/immich/postgres:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -d immich -U immich"]
interval: 10s
timeout: 5s
retries: 5
logging: *default-logging
immich-redis:
image: redis:alpine
container_name: immich_redis
restart: unless-stopped
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
logging: *default-logging
immich-machine-learning:
image: ghcr.io/immich-app/immich-machine-learning:release
container_name: immich_machine_learning
restart: unless-stopped
volumes:
- /srv/media-int01/data/immich/model-cache:/cache
healthcheck:
test: ["CMD", "python3", "-c", "import socket; s = socket.socket(); s.settimeout(2); s.connect(('localhost', 3003))"]
interval: 30s
timeout: 5s
retries: 3
start_period: 30s
logging: *default-logging

View file

@ -0,0 +1,27 @@
x-logging: &default-logging
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
restart: unless-stopped
environment:
TZ: Europe/Zurich
volumes:
- /srv/media-int01/data/jellyfin/config:/config
- /srv/media-int01/data/jellyfin/cache:/cache
- /mnt/jellyfin-data/uploads:/data/uploads
- /mnt/jellyfin-media/xCinema:/data/xCinema:ro
ports:
- "8096:8096"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8096/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s
logging: *default-logging

0
config/immich/.gitkeep Normal file
View file

0
config/jellyfin/.gitkeep Normal file
View file

View file

View file

0
data/jellyfin/cache/.gitkeep vendored Normal file
View file

View file

View file

View file

View file

View file

0
scripts/deploy.sh Normal file
View file

0
scripts/init-dirs.sh Normal file
View file