0a941f3ba6
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Windrose — panel-native module
Panel-native Windrose dedicated server running under Wine + Xvfb.
- Image:
panel-windrose:latest— built from./Dockerfile(Debian 12 + Wine + Xvfb + tini). - Game files: downloaded by the panel's SteamCMD updater sidecar (app 4129620) into the
panel-<id>-gamenamed volume. Windrose ships only as a Windows build, so the updater uses+@sSteamCmdForcePlatformType windows(declared inmodule.yamlviaplatform: windows). - Saves:
panel-<id>-savesvolume mounted at/game-saves; the entrypoint movesR5/Saved/from the game install into the save volume on first boot and symlinks it back, so SteamCMDvalidatecan't clobber world data. - Config:
ServerDescription.jsonlives in the save volume (authoritative) and is symlinked back to the game install path the binary expects. Edit via the Files tab — JSON parsed in-browser; no dedicated Config-tab form yet. - RCON: none. Windrose has no remote admin protocol; the admin console is in-process only. The Console tab streams the UE log.
Ports
- 7777/udp — Direct-connect game port (docs refer to this as
DirectConnectionServerPort). - 27015/udp — Steam query (UE5 convention).
Most Windrose peer connectivity runs through Steam NAT punch-through, but the direct port must be reachable for LAN or public-IP clients.
Updating
Click Update in the panel. The SteamCMD sidecar re-validates app 4129620 against the /game volume. First install is ~900 MB compressed.
Known gotchas
- Server binary path isn't documented — the entrypoint probes
/game/WindroseServer.exe,/game/R5/Binaries/Win64/WindroseServer.exe, and/game/R5/Binaries/WinGDK/WindroseServer.exe, then falls back tofindif none match. Check logs on first boot. - No RCON means the Players tab will stay empty; start/stop state comes from log-line ready-regex + container state.