init
This commit is contained in:
7
Home/Node1/media/.env
Normal file
7
Home/Node1/media/.env
Normal file
@@ -0,0 +1,7 @@
|
||||
PUID=1000
|
||||
PGID=1000
|
||||
TZ=Europe/Berlin
|
||||
|
||||
# WICHTIG: Passe diesen Pfad an deine echte Festplatte an!
|
||||
# Zum Beispiel: /mnt/hdd/media
|
||||
MEDIA_ROOT=/mnt/storage/media
|
||||
205
Home/Node1/media/docker-compose.yml
Normal file
205
Home/Node1/media/docker-compose.yml
Normal file
@@ -0,0 +1,205 @@
|
||||
name: media
|
||||
|
||||
services:
|
||||
# --- Jellyfin (Port 8096) ---
|
||||
jellyfin:
|
||||
image: lscr.io/linuxserver/jellyfin:latest
|
||||
container_name: jellyfin
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "7003:8096"
|
||||
environment:
|
||||
- PUID=${PUID}
|
||||
- PGID=${PGID}
|
||||
- TZ=${TZ}
|
||||
volumes:
|
||||
- ./config/jellyfin:/config
|
||||
- ${MEDIA_ROOT}:/data/media # Pfad aus der .env
|
||||
# Hardware Transcoding (Intel/AMD):
|
||||
#devices:
|
||||
# - /dev/dri:/dev/dri
|
||||
|
||||
# --- Audiobookshelf (Port 13378) ---
|
||||
audiobookshelf:
|
||||
image: ghcr.io/advplyr/audiobookshelf:latest
|
||||
container_name: audiobookshelf
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "7001:80"
|
||||
volumes:
|
||||
- ./config/audiobookshelf/config:/config
|
||||
- ./config/audiobookshelf/metadata:/metadata
|
||||
- ${MEDIA_ROOT}/audiobooks:/audiobooks
|
||||
- ${MEDIA_ROOT}/podcasts:/podcasts
|
||||
|
||||
# --- RomM (Port 7000) ---
|
||||
romm:
|
||||
image: rommapp/romm:latest
|
||||
container_name: romm
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "7000:8080"
|
||||
environment:
|
||||
- DB_HOST=romm-db
|
||||
- DB_NAME=romm
|
||||
- DB_USER=romm-user
|
||||
- DB_PASSWD=romm-password
|
||||
volumes:
|
||||
- ./config/romm/resources:/romm/resources
|
||||
- ${MEDIA_ROOT}/games:/romm/library
|
||||
depends_on:
|
||||
- romm-db
|
||||
|
||||
# Datenbank für RomM (nur intern sichtbar)
|
||||
romm-db:
|
||||
image: mariaDB:10.6
|
||||
labels:
|
||||
- "wud.watch=false"
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=root-pass
|
||||
- MYSQL_DATABASE=romm
|
||||
- MYSQL_USER=romm-user
|
||||
- MYSQL_PASSWORD=romm-password
|
||||
volumes:
|
||||
- romm_db_data:/var/lib/mysql
|
||||
|
||||
# --- Immich (Port 7002) ---
|
||||
# ACHTUNG: Immich ist komplex. Das ist die vereinfachte All-in-One Struktur.
|
||||
immich-server:
|
||||
image: ghcr.io/immich-app/immich-server:release
|
||||
container_name: immich_server
|
||||
command: ["start.sh", "immich"]
|
||||
restart: always
|
||||
ports:
|
||||
- "7999:2283"
|
||||
environment:
|
||||
- DB_HOSTNAME=immich-postgres
|
||||
- DB_USERNAME=postgres
|
||||
- DB_PASSWORD=postgres
|
||||
- DB_DATABASE_NAME=immich
|
||||
- REDIS_HOSTNAME=immich-redis
|
||||
volumes:
|
||||
- ${MEDIA_ROOT}/photos:/usr/src/app/upload
|
||||
depends_on:
|
||||
- immich-redis
|
||||
- immich-postgres
|
||||
|
||||
immich-microservices:
|
||||
image: ghcr.io/immich-app/immich-server:release
|
||||
container_name: immich_microservices
|
||||
command: ["start.sh", "microservices"]
|
||||
restart: always
|
||||
environment:
|
||||
- DB_HOSTNAME=immich-postgres
|
||||
- DB_USERNAME=postgres
|
||||
- DB_PASSWORD=postgres
|
||||
- DB_DATABASE_NAME=immich
|
||||
- REDIS_HOSTNAME=immich-redis
|
||||
volumes:
|
||||
- ${MEDIA_ROOT}/photos:/usr/src/app/upload
|
||||
depends_on:
|
||||
- immich-redis
|
||||
- immich-postgres
|
||||
|
||||
# Immich braucht seine eigene DB (Vectordaten etc.)
|
||||
immich-postgres:
|
||||
image: tensorchord/pgvecto-rs:pg14-v0.2.0
|
||||
container_name: immich_postgres
|
||||
labels:
|
||||
- "wud.watch=false"
|
||||
restart: always
|
||||
environment:
|
||||
- POSTGRES_PASSWORD=postgres
|
||||
- POSTGRES_USER=postgres
|
||||
- POSTGRES_DB=immich
|
||||
volumes:
|
||||
- immich_pg_data:/var/lib/postgresql/data
|
||||
|
||||
immich-redis:
|
||||
image: redis:6.2-alpine
|
||||
container_name: immich_redis
|
||||
restart: always
|
||||
labels:
|
||||
- "wud.watch=false"
|
||||
|
||||
immich-drop:
|
||||
image: ghcr.io/nasogaa/immich-drop:latest
|
||||
pull_policy: always
|
||||
container_name: immich-drop
|
||||
restart: unless-stopped
|
||||
# Configure all settings here (no .env required)
|
||||
environment:
|
||||
# Immich connection (must include /api)
|
||||
IMMICH_BASE_URL: https://immich.example.com/api
|
||||
IMMICH_API_KEY: ${IMMICH_API_KEY}
|
||||
# Optional behavior
|
||||
IMMICH_ALBUM_NAME: dead-drop
|
||||
PUBLIC_UPLOAD_PAGE_ENABLED: "false" # keep disabled by default
|
||||
PUBLIC_BASE_URL: https://drop.example.com
|
||||
# Large files: chunked uploads (bypass 100MB proxy limits)
|
||||
CHUNKED_UPLOADS_ENABLED: "false" # enable chunked uploads
|
||||
CHUNK_SIZE_MB: "95" # per-chunk size (MB)
|
||||
# App internals
|
||||
SESSION_SECRET: ${SESSION_SECRET}
|
||||
# Expose the app on the host
|
||||
ports:
|
||||
- 7998:8080
|
||||
# Persist local dedupe cache (state.db) across restarts
|
||||
volumes:
|
||||
- immich_drop_data:/data
|
||||
# Simple healthcheck
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "python - <<'PY'\nimport os,urllib.request,sys; url=f\"http://127.0.0.1:{os.getenv('PORT','8080')}/\";\ntry: urllib.request.urlopen(url, timeout=3); sys.exit(0)\nexcept Exception: sys.exit(1)\nPY"]
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
start_period: 10s
|
||||
|
||||
immich-public-proxy:
|
||||
image: alangrainger/immich-public-proxy:latest
|
||||
container_name: immich-public-proxy
|
||||
restart: always
|
||||
ports:
|
||||
- "7997:3000"
|
||||
environment:
|
||||
PUBLIC_BASE_URL: https://your-proxy-url.com
|
||||
IMMICH_URL: http://your-internal-immich-server:2283
|
||||
healthcheck:
|
||||
test: curl -s http://localhost:3000/share/healthcheck -o /dev/null || exit 1
|
||||
start_period: 10s
|
||||
timeout: 5s
|
||||
|
||||
|
||||
immich-kiosk:
|
||||
image: ghcr.io/damongolding/immich-kiosk:latest
|
||||
container_name: immich-kiosk
|
||||
tty: true
|
||||
environment:
|
||||
LANG: "de_DE"
|
||||
TZ: "Europe/Berlin"
|
||||
ports:
|
||||
- 7996:3000
|
||||
volumes:
|
||||
- ./config:/config
|
||||
# - ./custom.css:/custom.css
|
||||
# - ./offline-assets:/offline-assets
|
||||
restart: always
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
start_period: 10s
|
||||
|
||||
power-tools:
|
||||
image: ghcr.io/varun-raj/immich-power-tools:latest
|
||||
ports:
|
||||
- "7995:3000"
|
||||
env_file:
|
||||
- .env
|
||||
|
||||
|
||||
volumes:
|
||||
romm_db_data:
|
||||
immich_pg_data:
|
||||
immich_drop_data:
|
||||
Reference in New Issue
Block a user