Files
panel/modules/windrose/README.md
T
dbledeez a00bd620a1 Panel — public source drop (v0.9.0)
Self-hostable game-server control panel: controller + agent + 26 game
modules. One-line install (prebuilt release, no Go required):

  curl -fsSL https://git.pdxtechs.com/dbledeez/panel/raw/branch/main/install.sh | sudo bash

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 21:17:39 -07:00

1.9 KiB

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>-game named volume. Windrose ships only as a Windows build, so the updater uses +@sSteamCmdForcePlatformType windows (declared in module.yaml via platform: windows).
  • Saves: panel-<id>-saves volume mounted at /game-saves; the entrypoint moves R5/Saved/ from the game install into the save volume on first boot and symlinks it back, so SteamCMD validate can't clobber world data.
  • Config: ServerDescription.json lives 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 to find if 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.