85 lines
2.4 KiB
YAML
85 lines
2.4 KiB
YAML
services:
|
||
stash:
|
||
build:
|
||
context: .
|
||
dockerfile: dockerfile.stash
|
||
container_name: stash
|
||
restart: unless-stopped
|
||
# Match the container’s exposed port with the internal Stash port
|
||
ports:
|
||
- "9999:9999"
|
||
|
||
# Optional: for DLNA (comment ports above and uncomment this)
|
||
# network_mode: host
|
||
|
||
# Resource limits
|
||
cpus: "4.0"
|
||
mem_limit: "8192m"
|
||
mem_reservation: "2048m"
|
||
#runtime: nvidia
|
||
ulimits:
|
||
nproc: 65535
|
||
nofile:
|
||
soft: 65535
|
||
hard: 65535
|
||
environment:
|
||
# Stash internal paths
|
||
- STASH_STASH=/data/
|
||
- STASH_GENERATED=/generated/
|
||
- STASH_METADATA=/metadata/
|
||
- STASH_CACHE=/cache/
|
||
- STASH_PORT=9999
|
||
- TRANSCODE_OPERATING_MODE=ram
|
||
- STASH_EXTERNAL_HOST=https://stash.mapletree.email
|
||
# Run as root (can adjust later if needed)
|
||
- PUID=1000
|
||
- PGID=1000
|
||
|
||
# Optional — enable headless Chromium for scrapers
|
||
- CHROME_PATH=/usr/bin/chromium
|
||
- STASH_BROWSER=chromium
|
||
|
||
# GPU enable tfor transcoding
|
||
- NVIDIA_VISIBLE_DEVICES=all
|
||
- NVIDIA_DRIVER_CAPABILITIES=all
|
||
|
||
volumes:
|
||
- /etc/localtime:/etc/localtime:ro
|
||
#- /dev/shm:/tmp
|
||
|
||
# Persistent Stash app data
|
||
- /docker/mediaservices/stash-db:/root/.stash
|
||
- /docker/mediaservices/stash/data/data:/data
|
||
- /docker/mediaservices/stash/data/metadata:/metadata
|
||
- /docker/mediaservices/stash/data/cache:/cache
|
||
- /docker/mediaservices/stash/data/blobs:/blobs
|
||
- /docker/mediaservices/stash/data/generated:/generated
|
||
|
||
# Media mounts (your library)
|
||
- /pool/other:/media
|
||
- /mnt/ssd3:/mnt/ssd3
|
||
labels:
|
||
- "traefik.enable=true"
|
||
- "wud.ignore=true"
|
||
|
||
# Router
|
||
- "traefik.http.routers.stash.rule=Host(`stash.mapletree.email`)"
|
||
- "traefik.http.routers.stash.entrypoints=web,websecure"
|
||
- "traefik.http.routers.stash.tls.certresolver=myresolver"
|
||
- "traefik.http.routers.stash.middlewares=stash-headers"
|
||
- "traefik.http.middlewares.stash-headers.headers.customrequestheaders.X-Forwarded-Proto=https"
|
||
|
||
# Service (points to internal port)
|
||
- "traefik.http.services.stash.loadbalancer.server.port=9999"
|
||
|
||
networks:
|
||
- stash_external
|
||
logging:
|
||
driver: "json-file"
|
||
options:
|
||
max-file: "10"
|
||
max-size: "2m"
|
||
|
||
networks:
|
||
stash_external:
|
||
external: true
|