269 lines
7.6 KiB
YAML
269 lines
7.6 KiB
YAML
networks:
|
|
media-net:
|
|
driver: bridge
|
|
ix-databases_shared-databases:
|
|
external: true
|
|
pangolin:
|
|
external: true
|
|
|
|
services:
|
|
|
|
romm-db:
|
|
container_name: romm-db
|
|
image: mariadb:12.2
|
|
restart: unless-stopped
|
|
networks:
|
|
- media-net
|
|
environment:
|
|
MARIADB_ROOT_PASSWORD: ${ROMM_DB_ROOT_PASSWORD}
|
|
MARIADB_DATABASE: ${ROMM_DB_NAME}
|
|
MARIADB_USER: ${ROMM_DB_USER}
|
|
MARIADB_PASSWORD: ${ROMM_DB_PASS}
|
|
volumes:
|
|
- /mnt/docker-ssd/docker/appdata/romm-db/mysql:/var/lib/mysql
|
|
healthcheck:
|
|
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 5
|
|
start_period: 30s
|
|
|
|
gamevault-db:
|
|
container_name: gamevault-db
|
|
image: postgres:17
|
|
restart: unless-stopped
|
|
networks:
|
|
- media-net
|
|
environment:
|
|
POSTGRES_USER: ${GAMEVAULT_DB_USER}
|
|
POSTGRES_PASSWORD: ${GAMEVAULT_DB_PASS}
|
|
POSTGRES_DB: gamevault
|
|
volumes:
|
|
- /mnt/docker-ssd/docker/appdata/gamevault-db/postgres:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${GAMEVAULT_DB_USER} -d gamevault"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 5
|
|
start_period: 30s
|
|
|
|
plex:
|
|
container_name: ix-plex-plex-1
|
|
image: lscr.io/linuxserver/plex:latest
|
|
restart: unless-stopped
|
|
networks:
|
|
- media-net
|
|
- pangolin
|
|
ports:
|
|
- "32400:32400/tcp"
|
|
- "1900:1900/udp"
|
|
- "8324:8324/tcp"
|
|
- "32410:32410/udp"
|
|
- "32412:32412/udp"
|
|
- "32413:32413/udp"
|
|
- "32414:32414/udp"
|
|
- "32469:32469/tcp"
|
|
environment:
|
|
TZ: ${TZ}
|
|
PUID: ${PUID}
|
|
PGID: ${PGID}
|
|
VERSION: docker
|
|
NVIDIA_VISIBLE_DEVICES: all
|
|
NVIDIA_DRIVER_CAPABILITIES: compute,video,utility
|
|
volumes:
|
|
- /mnt/docker-ssd/docker/appdata/plex:/config
|
|
- /mnt/unraid/data/media/anime:/anime
|
|
- /mnt/unraid/data/media/movies:/movies
|
|
- /mnt/unraid/data/media/tv:/tv
|
|
deploy:
|
|
resources:
|
|
reservations:
|
|
devices:
|
|
- driver: nvidia
|
|
count: all
|
|
capabilities: [gpu, video, compute]
|
|
|
|
tautulli:
|
|
container_name: ix-tautulli-tautulli-1
|
|
image: ghcr.io/tautulli/tautulli:latest
|
|
restart: unless-stopped
|
|
networks:
|
|
- media-net
|
|
- pangolin
|
|
ports:
|
|
- "8181:8181"
|
|
environment:
|
|
TZ: ${TZ}
|
|
PUID: ${PUID}
|
|
PGID: ${PGID}
|
|
volumes:
|
|
- /mnt/docker-ssd/docker/appdata/tautulli:/config
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "curl -sf http://127.0.0.1:8181/ || exit 1"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 30s
|
|
|
|
audiobookshelf:
|
|
container_name: ix-audiobookshelf-audiobookshelf-1
|
|
image: ghcr.io/advplyr/audiobookshelf:latest
|
|
restart: unless-stopped
|
|
networks:
|
|
- media-net
|
|
- pangolin
|
|
ports:
|
|
- "13358:80"
|
|
environment:
|
|
TZ: ${TZ}
|
|
volumes:
|
|
- /mnt/unraid/data/media/books/Audiobooks:/audiobooks
|
|
- /mnt/docker-ssd/docker/appdata/audiobookshelf/config:/config
|
|
- /mnt/docker-ssd/docker/appdata/audiobookshelf/metadata:/metadata
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:80/ >/dev/null 2>&1 || exit 1"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 30s
|
|
|
|
gamevault:
|
|
container_name: gamevault
|
|
user: "99:100"
|
|
image: phalcode/gamevault-backend:latest
|
|
restart: unless-stopped
|
|
networks:
|
|
- media-net
|
|
- ix-databases_shared-databases
|
|
- pangolin
|
|
ports:
|
|
- "8785:8080"
|
|
environment:
|
|
TZ: ${TZ}
|
|
PUID: 99
|
|
PGID: 100
|
|
NODE_ENV: production
|
|
DB_HOST: gamevault-db
|
|
DB_PORT: 5432
|
|
DB_USERNAME: ${GAMEVAULT_DB_USER}
|
|
DB_PASSWORD: ${GAMEVAULT_DB_PASS}
|
|
SAVEFILES_ENABLED: "true"
|
|
MEDIA_GC_INTERVAL_IN_MINUTES: 60
|
|
METADATA_IGDB_ENABLED: "true"
|
|
METADATA_IGDB_CLIENT_ID: ${METADATA_IGDB_CLIENT_ID}
|
|
METADATA_IGDB_CLIENT_SECRET: ${METADATA_IGDB_CLIENT_SECRET}
|
|
RAWG_API_URL: https://rawg2steam.phalco.de/api
|
|
RAWG_API_CACHE_DAYS: 36500
|
|
SERVER_PORT: 8080
|
|
SERVER_HTTPS_PORT: 8443
|
|
YES: "yes"
|
|
volumes:
|
|
- /mnt/unraid/data/media/Games-Apps Isos:/files
|
|
- /mnt/unraid/data/media/Saved Games:/savefiles
|
|
- /mnt/docker-ssd/docker/appdata/gamevault/media:/media
|
|
- /mnt/docker-ssd/docker/appdata/gamevault/logs:/logs
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "curl -f http://localhost:$${SERVER_PORT}/api/status || exit 1"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 300s
|
|
|
|
romm:
|
|
container_name: romm
|
|
image: rommapp/romm:latest
|
|
restart: unless-stopped
|
|
depends_on:
|
|
romm-db:
|
|
condition: service_healthy
|
|
networks:
|
|
- media-net
|
|
- pangolin
|
|
ports:
|
|
- "8457:8080"
|
|
environment:
|
|
TZ: ${TZ}
|
|
DB_HOST: romm-db
|
|
DB_PORT: 3306
|
|
DB_USER: ${ROMM_DB_USER}
|
|
DB_NAME: ${ROMM_DB_NAME}
|
|
DB_PASSWD: ${ROMM_DB_PASS}
|
|
STEAMGRIDDB_API_KEY: ${STEAMGRIDDB_API_KEY}
|
|
ENABLE_SCHEDULED_RESCAN: ${ENABLE_SCHEDULED_RESCAN}
|
|
GUNICORN_WORKERS: ${GUNICORN_WORKERS}
|
|
MOBYGAMES_API_KEY: ${MOBYGAMES_API_KEY}
|
|
IGDB_CLIENT_ID: ${IGDB_CLIENT_ID}
|
|
RESCAN_ON_FILESYSTEM_CHANGE_DELAY: ${RESCAN_ON_FILESYSTEM_CHANGE_DELAY}
|
|
ENABLE_SCHEDULED_UPDATE_SWITCH_TITLEDB: ${ENABLE_SCHEDULED_UPDATE_SWITCH_TITLEDB}
|
|
SCHEDULED_UPDATE_SWITCH_TITLEDB_CRON: ${SCHEDULED_UPDATE_SWITCH_TITLEDB_CRON}
|
|
DISABLE_DOWNLOAD_ENDPOINT_AUTH: ${DISABLE_DOWNLOAD_ENDPOINT_AUTH}
|
|
ROMM_AUTH_SECRET_KEY: ${ROMM_AUTH_SECRET_KEY}
|
|
IGDB_CLIENT_SECRET: ${IGDB_CLIENT_SECRET}
|
|
SCHEDULED_RESCAN_CRON: ${SCHEDULED_RESCAN_CRON}
|
|
SCAN_TIMEOUT: ${SCAN_TIMEOUT}
|
|
DISABLE_CSRF_PROTECTION: ${DISABLE_CSRF_PROTECTION}
|
|
volumes:
|
|
- /mnt/unraid/data/media/RomM:/romm/library
|
|
- /mnt/docker-ssd/docker/appdata/romm/resources:/romm/resources
|
|
- /mnt/docker-ssd/docker/appdata/romm/assets:/romm/assets
|
|
- /mnt/docker-ssd/docker/appdata/romm/config:/romm/config
|
|
- /mnt/docker-ssd/docker/appdata/romm/redis-data:/redis-data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:8080/ >/dev/null || exit 1"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 60s
|
|
|
|
seerr:
|
|
container_name: seerr
|
|
image: ghcr.io/seerr-team/seerr:latest
|
|
restart: unless-stopped
|
|
networks:
|
|
- media-net
|
|
- ix-databases_shared-databases
|
|
- pangolin
|
|
ports:
|
|
- "5055:5055"
|
|
environment:
|
|
TZ: ${TZ}
|
|
DB_TYPE: postgres
|
|
DB_HOST: shared-postgres
|
|
DB_PORT: 5432
|
|
DB_NAME: ${SEERR_DB_NAME}
|
|
DB_USER: ${SEERR_DB_USER}
|
|
DB_PASS: ${SEERR_DB_PASS}
|
|
LOG_LEVEL: info
|
|
volumes:
|
|
- /mnt/docker-ssd/docker/appdata/seerr:/app/config
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:5055/ >/dev/null 2>&1 || exit 1"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 30s
|
|
|
|
calibre-web-automated:
|
|
container_name: calibre-web-automated
|
|
image: crocodilestick/calibre-web-automated:latest
|
|
restart: unless-stopped
|
|
networks:
|
|
- media-net
|
|
- pangolin
|
|
ports:
|
|
- "8183:8083"
|
|
environment:
|
|
TZ: ${TZ}
|
|
PUID: ${CWA_PUID}
|
|
PGID: ${CWA_PGID}
|
|
volumes:
|
|
- /mnt/tank/docker/appdata/autocalibreweb-clean/config:/config
|
|
- /mnt/unraid/data/media/books/ingest:/cwa-book-ingest
|
|
- /mnt/unraid/data/media/books/Calibre:/calibre-library
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "curl -sf http://127.0.0.1:8083/ >/dev/null 2>&1 || exit 1"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 60s
|