Photoprism, wolf, and jellyfin

This commit is contained in:
2026-09-20 14:34:26 +01:00
parent e78200500b
commit 3d41dafba6
3 changed files with 780 additions and 3 deletions
+186 -3
View File
@@ -131,6 +131,9 @@ services:
- VIRTUAL_HOST=vault.${DOMAIN}
- LETSENCRYPT_HOST=vault.${DOMAIN}
- VIRTUAL_PORT=80
- SIGNUPS_ALLOWED=false
networks:
- nginx
volumes:
- /mnt/tower/containers/vaultwarden:/data/
@@ -353,7 +356,6 @@ services:
###################################
dawarich_app:
image: freikin/dawarich:latest
container_name: dawarich_app
volumes:
- /mnt/tower/containers/dawarich/public:/var/app/public
- /mnt/tower/containers/dawarich/watched:/var/app/tmp/imports/watched
@@ -402,7 +404,6 @@ services:
dawarich_sidekiq:
image: freikin/dawarich:latest
container_name: dawarich_sidekiq
volumes:
- /mnt/tower/containers/dawarich/public:/var/app/public
- /mnt/tower/containers/dawarich/watched:/var/app/tmp/imports/watched
@@ -443,7 +444,6 @@ services:
dawarich_db:
image: postgis/postgis:17-3.5-alpine
shm_size: 1G
container_name: dawarich_db
volumes:
- /mnt/tower/containers/dawarich/db:/var/lib/postgresql/data
networks:
@@ -526,6 +526,140 @@ services:
networks:
- sure
###################################
# WOLF #
###################################
wolf:
image: ghcr.io/games-on-whales/wolf:stable
<<: *logging
environment:
- NVIDIA_DRIVER_VOLUME_NAME=nvidia-driver-vol
volumes:
- /mnt/tower/containers/wolf/etc/wolf/:/etc/wolf:rw
- ./wolf/config.toml:/etc/wolf/cfg/config.toml:ro
- /var/run/docker.sock:/var/run/docker.sock:rw
- /dev/:/dev/:rw
- /run/udev:/run/udev:rw
- nvidia-driver-vol:/usr/nvidia:rw
devices:
- /dev/dri
- /dev/uinput
- /dev/uhid
- /dev/nvidia-uvm
- /dev/nvidia-uvm-tools
- /dev/nvidia-caps/nvidia-cap1
- /dev/nvidia-caps/nvidia-cap2
- /dev/nvidiactl
- /dev/nvidia0
- /dev/nvidia-modeset
device_cgroup_rules:
- 'c 13:* rmw'
network_mode: host
restart: unless-stopped
###################################
# JELLYFIN #
# https://media.scarif.space #
###################################
jellyfin:
image: jellyfin/jellyfin
<<: *logging
ports:
- 8096:8096/tcp
- 7359:7359/udp
volumes:
- ./jellyfin/config:/config
- /mnt/tower/containers/jellyfin/cache:/cache
- type: bind
source: /mnt/tower/stardust/chris/files/Library/Movies
target: /movies
- type: bind
source: /mnt/tower/stardust/chris/files/Library/Shows
target: /shows
restart: 'unless-stopped'
# Optional - alternative address used for autodiscovery
environment:
- JELLYFIN_PublishedServerUrl=http://media.${DOMAIN}
- VIRTUAL_HOST=media.${DOMAIN}
- VIRTUAL_PORT=8096
- LETSENCRYPT_HOST=media.${DOMAIN}
extra_hosts:
- 'host.docker.internal:host-gateway'
networks:
- nginx
###################################
# PHOTOPRISM #
# https://holo.scarif.space #
###################################
photoprism:
image: photoprism/photoprism:latest
<<: *logging
# restart: unless-stopped
stop_grace_period: 15s
depends_on:
- db
security_opt:
- seccomp:unconfined
- apparmor:unconfined
ports:
- "2342:2342"
environment:
PHOTOPRISM_ADMIN_USER: "${PHOTOPRISM_USER}"
PHOTOPRISM_ADMIN_PASSWORD: "${PHOTOPRISM_PASSWORD}"
PHOTOPRISM_AUTH_MODE: "password"
PHOTOPRISM_DISABLE_TLS: "true"
PHOTOPRISM_DEFAULT_TLS: "false"
PHOTOPRISM_SITE_URL: "http://holo.${DOMAIN}"
PHOTOPRISM_SITE_TITLE: "Holo"
PHOTOPRISM_SITE_CAPTION: "Photo library"
PHOTOPRISM_READONLY: "false"
PHOTOPRISM_EXPERIMENTAL: "true"
PHOTOPRISM_DISABLE_CHOWN: "false"
PHOTOPRISM_DISABLE_WEBDAV: "true"
PHOTOPRISM_DISABLE_MCP: "true"
PHOTOPRISM_SIDECAR_YAML: "true"
PHOTOPRISM_BACKUP_ALBUMS: "true"
PHOTOPRISM_BACKUP_DATABASE: "false"
PHOTOPRISM_INDEX_SCHEDULE: "@every 3h"
PHOTOPRISM_UPLOAD_LIMIT: 50000
PHOTOPRISM_ORIGINALS_LIMIT: 50000
PHOTOPRISM_HTTP_COMPRESSION: "zstd,gzip"
PHOTOPRISM_DATABASE_DRIVER: "sqlite"
PHOTOPRISM_INIT: "https tensorflow"
OLLAMA_BASE_URL: "http://ollama:11434"
OLLAMA_API_KEY: ""
PHOTOPRISM_FFMPEG_ENCODER: "nvidia"
PHOTOPRISM_FFMPEG_BITRATE: "64"
NVIDIA_VISIBLE_DEVICES: "all"
NVIDIA_DRIVER_CAPABILITIES: "all"
PHOTOPRISM_UID: 1000
PHOTOPRISM_GID: 1000
PHOTOPRISM_UMASK: 0000
VIRTUAL_HOST: "holo.${DOMAIN}"
VIRTUAL_PORT: 2342
LETSENCRYPT_HOST: "holo.${DOMAIN}"
user: "1000:1000"
devices:
- "/dev/dri:/dev/dri"
working_dir: "/photoprism" # do not change or remove
volumes:
- "/mnt/tower/stardust/chris/files/Memories:/photoprism/originals"
- "/mnt/tower/stardust/chris/files/Unsorted/Memories:/photoprism/import"
- "/mnt/tower/containers/photoprism/storage:/photoprism/storage"
- "./photoprism/vision.yml:/photoprism/storage/config/vision.yml:ro"
networks:
- nginx
- db
- ollama
deploy:
resources:
reservations:
devices:
- driver: "nvidia"
capabilities: [ gpu ]
count: "all"
###################################
# UTILITIES #
###################################
@@ -577,6 +711,51 @@ services:
- ./backup/exclude.txt:/config/exclude.txt:ro
restart: unless-stopped
## Ollama Large-Language Model Runner (optional)
## run "ollama pull [name]:[version]" to download a vision model
## listed at <https://ollama.com/search?c=vision>, for example:
## docker compose exec ollama ollama pull gemma4:latest
ollama:
image: ollama/ollama:latest
<<: *logging
restart: unless-stopped
stop_grace_period: 15s
# ports:
# - "11434:11434"
environment:
OLLAMA_HOST: "0.0.0.0:11434"
OLLAMA_MODELS: "/root/.ollama"
OLLAMA_MAX_QUEUE: "100"
OLLAMA_NUM_PARALLEL: "1"
OLLAMA_MAX_LOADED_MODELS: "1"
OLLAMA_LOAD_TIMEOUT: "5m"
OLLAMA_KEEP_ALIVE: "5m"
OLLAMA_CONTEXT_LENGTH: "4096"
OLLAMA_MULTIUSER_CACHE: "false"
OLLAMA_NOPRUNE: "false"
OLLAMA_NOHISTORY: "true"
OLLAMA_FLASH_ATTENTION: "true"
OLLAMA_KV_CACHE_TYPE: "f16"
OLLAMA_SCHED_SPREAD: "false"
DO_NOT_TRACK: "true"
HF_HUB_DISABLE_TELEMETRY: "1"
OLLAMA_NO_CLOUD: "1" # uncomment to disable Ollama Cloud models/features
## NVIDIA GPU Hardware Acceleration (see https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html):
NVIDIA_VISIBLE_DEVICES: "all"
NVIDIA_DRIVER_CAPABILITIES: "compute,utility"
volumes:
- "ollama:/root/.ollama"
networks:
- ollama
## NVIDIA GPU Hardware Acceleration (see https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html):
deploy:
resources:
reservations:
devices:
- driver: "nvidia"
capabilities: [ gpu ]
count: "all"
nginx:
<<: *logging
profiles: ["prod", "dev"]
@@ -639,6 +818,9 @@ volumes:
html:
vhost:
acme:
ollama:
nvidia-driver-vol:
external: true
networks:
db:
@@ -647,4 +829,5 @@ networks:
sure:
dawarich:
meet.jitsi:
ollama: