This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
# Optional browser-accessible GameCube/Wii runtime. Combine with compose.yml after setting DOLPHIN_*.
|
||||
# Both source libraries are mounted read-only; only /config is writable for saves and savestates.
|
||||
services:
|
||||
ludarium:
|
||||
environment:
|
||||
LUDARIUM_DOLPHIN_PLAYER_URL: ${DOLPHIN_PLAYER_URL:?set the trusted-LAN Dolphin URL}
|
||||
LUDARIUM_DOLPHIN_PROXY_URL: https://dolphin:3001/
|
||||
LUDARIUM_DOLPHIN_PROXY_USERNAME: ${DOLPHIN_REMOTE_USER:?set the Dolphin trusted-LAN username}
|
||||
LUDARIUM_DOLPHIN_PROXY_PASSWORD: ${DOLPHIN_REMOTE_PASSWORD:?set the Dolphin trusted-LAN password}
|
||||
LUDARIUM_DOLPHIN_PROXY_CERT_SHA256: ${DOLPHIN_PROXY_CERT_SHA256:?pin the Dolphin TLS certificate SHA-256}
|
||||
LUDARIUM_DOLPHIN_EMBED_PORT: ${DOLPHIN_EMBED_PORT:-1232}
|
||||
LUDARIUM_DOLPHIN_EMBED_ORIGIN: ${DOLPHIN_EMBED_ORIGIN:-}
|
||||
LUDARIUM_DOLPHIN_CONTROL_URL: http://dolphin:8765/
|
||||
LUDARIUM_DOLPHIN_CONTROL_TOKEN: ${DOLPHIN_CONTROL_TOKEN:?set the internal Dolphin control token}
|
||||
LUDARIUM_DOLPHIN_FIXTURE_SHA256: ${DOLPHIN_FIXTURE_SHA256:?set after deterministic live launch/save-state validation}
|
||||
LUDARIUM_DOLPHIN_GAMECUBE_CATALOG_PREFIX: ${DOLPHIN_GAMECUBE_CATALOG_PREFIX:-roms/gamecube}
|
||||
LUDARIUM_DOLPHIN_WII_CATALOG_PREFIX: ${DOLPHIN_WII_CATALOG_PREFIX:-roms/wii}
|
||||
ports:
|
||||
- ${DOLPHIN_EMBED_PORT:-1232}:8734
|
||||
depends_on:
|
||||
dolphin:
|
||||
condition: service_healthy
|
||||
|
||||
dolphin:
|
||||
container_name: ${DOLPHIN_CONTAINER_NAME:-Ludarium-Dolphin}
|
||||
image: ${DOLPHIN_IMAGE:-ludarium/dolphin-controller:0.4.19-rc.8}
|
||||
build:
|
||||
context: ..
|
||||
dockerfile: Dockerfile.dolphin-controller
|
||||
labels:
|
||||
net.unraid.docker.webui: "${DOLPHIN_PUBLIC_URL:-http://[IP]:[PORT:1263]/}"
|
||||
net.unraid.docker.icon: "/boot/config/plugins/dockerMan/images/Ludarium-icon.svg"
|
||||
net.unraid.docker.managed: "dockerman"
|
||||
net.unraid.docker.shell: ""
|
||||
environment:
|
||||
PUID: ${PUID:-1654}
|
||||
PGID: ${PGID:-1654}
|
||||
TZ: ${TZ:-Europe/Brussels}
|
||||
PIXELFLUX_WAYLAND: "true"
|
||||
DRINODE: ${DOLPHIN_DRI_NODE:-/dev/dri/renderD128}
|
||||
DRI_NODE: ${DOLPHIN_DRI_NODE:-/dev/dri/renderD128}
|
||||
START_DOCKER: "false"
|
||||
DISABLE_IPV6: "true"
|
||||
CUSTOM_USER: ${DOLPHIN_REMOTE_USER:?set the Dolphin trusted-LAN username}
|
||||
PASSWORD: ${DOLPHIN_REMOTE_PASSWORD:?set the Dolphin trusted-LAN password}
|
||||
LUDARIUM_DOLPHIN_CONTROL_TOKEN: ${DOLPHIN_CONTROL_TOKEN:?set the internal Dolphin control token}
|
||||
# App-owned save directory the Game Data Vault captures and restores. Override only when a
|
||||
# different Dolphin build stores its saves and states elsewhere.
|
||||
LUDARIUM_DOLPHIN_SAVE_ROOT: ${DOLPHIN_SAVE_ROOT:-/config/.local/share/dolphin-emu}
|
||||
TITLE: Ludarium Dolphin
|
||||
FILE_MANAGER_PATH: /games
|
||||
SUBFOLDER: /dolphin-player/
|
||||
HARDEN_DESKTOP: "true"
|
||||
HARDEN_OPENBOX: "true"
|
||||
SELKIES_ENABLE_SHARING: "false|locked"
|
||||
SELKIES_ENABLE_COLLAB: "false|locked"
|
||||
SELKIES_ENABLE_SHARED: "false|locked"
|
||||
SELKIES_FILE_TRANSFERS: "none|locked"
|
||||
SELKIES_COMMAND_ENABLED: "false|locked"
|
||||
SELKIES_CLIPBOARD_ENABLED: "false|locked"
|
||||
SELKIES_MICROPHONE_ENABLED: "false|locked"
|
||||
SELKIES_UI_SIDEBAR_SHOW_CLIPBOARD: "false|locked"
|
||||
SELKIES_UI_SIDEBAR_SHOW_FILES: "false|locked"
|
||||
SELKIES_UI_SIDEBAR_SHOW_APPS: "false|locked"
|
||||
MAX_RES: 3840x2160
|
||||
ports:
|
||||
- ${DOLPHIN_REMOTE_PORT:-1263}:3001
|
||||
devices:
|
||||
- /dev/dri:/dev/dri
|
||||
shm_size: 1gb
|
||||
volumes:
|
||||
- ${DOLPHIN_DATA_ROOT:?set isolated app-owned Dolphin data}/config:/config:rw
|
||||
- ${DOLPHIN_GAMECUBE_LIBRARY:?set the GameCube source library}:/games/gamecube:ro
|
||||
- ${DOLPHIN_WII_LIBRARY:?set the Wii source library}:/games/wii:ro
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
healthcheck:
|
||||
test: ["CMD", "python3", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8765/health', timeout=3).read()"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 12
|
||||
start_period: 30s
|
||||
restart: unless-stopped
|
||||
Reference in New Issue
Block a user