Immich Jellyfin check
This commit is contained in:
commit
b58f104420
19 changed files with 164 additions and 0 deletions
54
README.md
Normal file
54
README.md
Normal 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
0
backup/compose/.gitkeep
Normal file
0
backup/databases/.gitkeep
Normal file
0
backup/databases/.gitkeep
Normal file
0
backup/immich/.gitkeep
Normal file
0
backup/immich/.gitkeep
Normal file
0
backup/jellyfin/.gitkeep
Normal file
0
backup/jellyfin/.gitkeep
Normal file
83
compose/immich/compose.yaml
Normal file
83
compose/immich/compose.yaml
Normal 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
|
||||||
27
compose/jellyfin/compose.yaml
Normal file
27
compose/jellyfin/compose.yaml
Normal 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
0
config/immich/.gitkeep
Normal file
0
config/jellyfin/.gitkeep
Normal file
0
config/jellyfin/.gitkeep
Normal file
0
data/immich/model-cache/.gitkeep
Normal file
0
data/immich/model-cache/.gitkeep
Normal file
0
data/immich/postgres/.gitkeep
Normal file
0
data/immich/postgres/.gitkeep
Normal file
0
data/jellyfin/cache/.gitkeep
vendored
Normal file
0
data/jellyfin/cache/.gitkeep
vendored
Normal file
0
data/jellyfin/config/.gitkeep
Normal file
0
data/jellyfin/config/.gitkeep
Normal file
0
mounts/immich-data/library/.gitkeep
Normal file
0
mounts/immich-data/library/.gitkeep
Normal file
0
mounts/immich-import/xFlashback/.gitkeep
Normal file
0
mounts/immich-import/xFlashback/.gitkeep
Normal file
0
mounts/jellyfin-data/uploads/.gitkeep
Normal file
0
mounts/jellyfin-data/uploads/.gitkeep
Normal file
0
mounts/jellyfin-media/xCinema/.gitkeep
Normal file
0
mounts/jellyfin-media/xCinema/.gitkeep
Normal file
0
scripts/deploy.sh
Normal file
0
scripts/deploy.sh
Normal file
0
scripts/init-dirs.sh
Normal file
0
scripts/init-dirs.sh
Normal file
Loading…
Add table
Add a link
Reference in a new issue