Photoprism, wolf, and jellyfin
This commit is contained in:
+186
-3
@@ -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:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user