WolfES-DE on metis: curated ROM library, storage layout, Wolf API socket
Last updated 05/11/2026 · wolf, es-de, gaming, metis
Wolf compose (decided 2026-10-30)
- Project
/data/docker/wolf/, containerwolf-wolf-1(imageghcr.io/games-on-whales/wolf:stable), Moonlight on host port 47999. - Added mount
/var/run/wolf:/run/user/wolfso the Wolf REST API is reachable from the host:sudo curl --unix-socket /var/run/wolf/wolf.sock http://localhost/api/v1/...(socket is root-owned; plain curl gets permission denied). Endpoints: /apps, /clients, /sessions, /profiles…; session launch still needs a Moonlight client.
ROM library layout
/data/sources/ROMS/= the ES-DE games mount (mounts = ["/data/sources/ROMS/:/ROMs/:rw"]in config.toml; ES-DE settingROMDirectory=/ROMs). Directory names are ES-DE system IDs.- Curated set (2026-10-30): one game per platform across 23 platforms (nes, snes, gb, gbc, gba, gc, n64, megadrive, mastersystem, gamegear, sega32x, neogeo, arcade, atari2600, atarijaguar, c64, msx, tg16, turbografx-cd, virtualboy, wonderswan, capcomplaysystem2, capcomplaysystem3); ~1.7 GB total.
- Full GameCube collection (~50 ISOs, 38 GB) moved to
/data/sources/ROMS-archive/gc/(only Super Mario Sunshine stays in ROMS/gc). 223 empty placeholder dirs deleted. - (Re)seed script:
/data/maintenance/wolf-esde-seed.shpulls one ROM per platform from RomM/zfsdata/apps/romm/library/romson handtrixxx.com via rsync; RomMmegacdis empty. Filenames with apostrophes breakssh "test -f ..."quoting — let rsync handle it. - BIOSes:
neogeo.zip,syscard3.pce,MSX.ROM,MSX2.ROM,MSX2P.ROMin/data/docker/wolf/data/profile-data/user/WolfES-DE/bioses/(= container$HOME/bioses).
Persistent storage
- Wolf keeps per-app state under
./data/profile-data/<profile>/<app>(bind-mounted as/home/retroin app containers): ES-DE gamelists, downloaded media, themes, saves/savestates all persist there (~1.3 GBfor ES-DE). WolfSteam is actively used (46 GB profile incl. homebrew) — never prune or delete it (Niklas, 2026-10-30). - Only files under the mounts survive: the app containers themselves are deleted when a session ends.
Gotchas / perf notes
- ES-DE container runs
es-de:edgeas an AppImage; it exits immediately if run standalone (needs Wolf’s session orchestration), so validate by launching from a Moonlight client and checkinggamelists/afterwards. CreatePlaceholderSystemDirectoriesis false in es_settings.xml (good — keeps /ROMs clean).
Source: Wiki.js