Skip to content

feat: add validated native Linux and managed Wine eggs - #21

Open
PhasedExistence wants to merge 2 commits into
GameForgeGG:mainfrom
PhasedExistence:feat/validated-native-and-wine-eggs
Open

PhasedExistence wants to merge 2 commits into
GameForgeGG:mainfrom
PhasedExistence:feat/validated-native-and-wine-eggs

Conversation

@PhasedExistence

@PhasedExistence PhasedExistence commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

What changed

  • Adds sandbox-pterodactyl-linux-native.json, a commit-pinned native Linux egg built from Facepunch/sbox-public.
  • Adds sandbox-pterodactyl-wine-managed.json, a managed-console Wine alternative.
  • Adds image pins, deployment requirements, known limitations, and acceptance evidence in VALIDATED_EGGS.md.
  • Leaves the existing GameForge Pterodactyl/Pelican eggs and GHCR runtime unchanged.

Why

Facepunch public source now builds a usable native Linux dedicated server before a stable native Steam depot is available. The managed-console Wine path also fixes the lifecycle problem where the old Ctrl-C stop path could wait for forced termination. Both alternatives use Connected to Steam for readiness and quit for normal panel shutdown.

Validation

  • Both PTDL_v2 files and their nested startup JSON parse successfully.
  • Both embedded installer scripts pass bash -n.
  • The existing Yolk/entrypoint.sh still passes bash -n.
  • Native image digest: sha256:3abf160c2350581bf67f3e9d5373c6cf4b4691d39da11061fbaa8367d8880e1d.
  • Wine image digest: sha256:86e77b48e7c9264c359a3f4aa903784f726fbcd68adc58cdd9ed9e2a0f9c15b3.
  • Native panel acceptance: real Steam client joined for 63 seconds, public A2S_INFO passed, and panel quit reached offline in 21.685 seconds.
  • Wine panel acceptance: two consecutive real-client joins (including 76 seconds), A2S reported 1/32 while connected and 0/32 after normal close, and panel quit reached offline in 21.059-21.445 seconds.
  • Sandbox/Flatgrass, Flatgrass scene test, and Bomb Royale reached Steam readiness on both runtimes.
  • Forced-kill recovery and subsequent graceful restarts passed on both runtimes.

Compatibility and follow-up

  • These are additive Pterodactyl alternatives and use externally maintained Docker Hub images; the existing GameForge/Pelican path is not replaced.
  • Native installation builds an exact public-source commit and can take several minutes on a fresh volume.
  • One earlier Wine connection stalled before the two controlled passes; repeated joins and longer soak tests remain in the regression plan.
  • facepunch.walker currently fails on both runtimes with the same package-whitelist/API compatibility error, so it is not treated as an egg-specific failure.

Full reproducible tooling and logs: https://github.com/Dopamine-Sbox/Dedicated-Server-Benchmarks

@PhasedExistence
PhasedExistence requested a review from a team as a code owner August 23, 2026 02:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant