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