This repository contains Pterodactyl and Pelican eggs and container build assets for running an s&box dedicated server with Wine on Linux. (Native Linux will be added once facepunch add it to a steam depot.)
This is working in production. We use it to offer s&box server hosting: Looking for a server?
Provides a production-ready egg that:
- provides ease of use variables for the server.
- runs as non-root in container environments.
- runs SteamCMD on every boot to keep the server up to date.
- A single stage runtime image based on
steamcmd/steamcmd:alpinethat uses steamcmd to download and keep sbox updated.
sandbox-pterodactyl.json— Pterodactyl egg export.sandbox-pelican.json— Pelican egg export.Yolk/Dockerfile— Docker image build.Yolk/entrypoint.sh— Runtime startup and orchestration logic.
Both egg files are functionally identical — they share the same Docker image, startup command, variables, and runtime behavior.
Key details:
- Startup command:
start-sbox - Done detection:
Loading game|Server started(This triggers when sbox finishes loading rather than when the game mode loading)`
| Variable | Description | Default |
|---|---|---|
GAME |
Primary game package (+game) |
strikeforce.strikeforce |
SERVER_NAME |
Public server name | Sandbox Server |
MAP |
Optional map/package identifier | Empty |
SBOX_PROJECT |
Local .sbproj under /home/container/projects/ |
|
SBOX_EXTRA_ARGS |
Extra launch arguments | |
SBOX_AUTO_UPDATE |
Run SteamCMD update on each boot (0/1) |
1 |
SBOX_BRANCH |
Steam beta branch for updates (e.g. staging) |
|
TOKEN |
Steam game server token | |
STEAMCMD_EXTRA_ARGS |
Extra Args for SteamCMD |
At container start, Yolk/entrypoint.sh:
- SteamCMD will validate and update s&box as required into
/home/container/sbox. - Launches
sbox-server.exeunder Wine with the configured arguments. - Logs into
/home/container/logs
If SteamCMD times out or fails but a previous sbox-server.exe exists, startup continues with existing files and the updater error is logged to logs/sbox-update.log.
- Import the appropriate egg into your panel:
- Pterodactyl: import
sandbox-pterodactyl.json - Pelican: import
sandbox-pelican.json
- Set the Docker image to
ghcr.io/GameForgeGG/sbox-egg:latest(or your own build). - Create a server and configure variables.
- Start the server. On first boot it will seed files and run the updater before launching.
While this egg was built for GameForge to sell s&box hosting, we are happy to see other providers use it and welcome pull requests.