Running StarRupture Dedicated Servers on Linux
StarRupture's official dedicated server is a Windows binary. There is no native Linux build today, and the experimental Linux branch that surfaced briefly in early Access has not shipped publicly as of April 2026. The standard way to run a StarRupture server on Linux is via Proton (Steam's compatibility layer) or Wine. This guide walks through the exact SteamCMD invocation, the Proton-GE setup, the winetricks dependencies that are required to avoid startup crashes, the d3d11 workaround, and the systemd unit that keeps it all alive across reboots.
🐧 Fast Read
- No native Linux binary today. Use Proton-GE over standard Proton for fewer compatibility surprises.
- SteamCMD app ID:
3809400(the experimental dedicated server branch). - Required winetricks:
vcrun2015 vcrun2017 vcrun2019 vcrun2022 corefonts. - Crash cause most common: missing
d3d11.dllin the Proton prefix. EnableDXVKor skip the dependency. - systemd: run under a dedicated user, pin
WINEPREFIX, restart on failure.
Why Linux Hosting Needs Proton
StarRupture ships a Windows binary StarRuptureServer.exe. Creepy Jar has not published a native Linux executable on the public depot, and the community has not seen a Linux ELF surface in the SteamDB manifest. Attempting to run the Windows binary with an installed Mono or bare Wine typically fails because the binary expects a DirectX-compatible graphics surface - even though the server does not render a UI - and several Visual C++ runtime libraries that are not present on a clean Linux system.
Proton solves both problems. It bundles a vetted Wine fork with DXVK (a Vulkan translation layer for DirectX calls) and a preconfigured set of runtime DLLs. Proton-GE, a community-maintained build with additional fixes, adds compatibility patches specific to several Epic Online Services-based games. For StarRupture, Proton-GE is the recommended choice over the default Proton because it reduces the chance of an EOS authentication failure on startup.
Running under Proton is officially unsupported by Creepy Jar, but it is how most Linux hosting providers are shipping StarRupture today, and the procedure is stable enough that Supercraft runs every StarRupture node on this exact stack.
Step 1: SteamCMD Install
Create a dedicated system user, install SteamCMD, and pull the server files. The server app is App ID 3809400 on the experimental branch. Installing under an anonymous login works because Creepy Jar has made the dedicated server build public.
sudo useradd --system --create-home --shell /bin/bash starrupture
sudo -u starrupture bash
cd ~
# Install SteamCMD (Debian/Ubuntu)
sudo apt-get update
sudo apt-get install -y steamcmd
# Download the server
steamcmd \
+force_install_dir /home/starrupture/server \
+login anonymous \
+app_update 3809400 validate \
+quit
The download is around 40-45 GB and includes both server binary and content. Expect it to take 15-30 minutes on a reasonable link. The validate flag is worth keeping on first install - it catches partially-downloaded depots that would cause silent crashes later.
Step 2: Proton-GE Prefix
Install Proton-GE to its expected location and create a dedicated prefix for the StarRupture server. Keeping the prefix separate from your own Steam client prefixes avoids cross-contaminating runtime DLLs.
mkdir -p /home/starrupture/.steam/root/compatibilitytools.d
cd /home/starrupture/.steam/root/compatibilitytools.d
# Download the current stable release tarball from GloriousEggroll/proton-ge-custom
# e.g. GE-Proton9-18.tar.gz at time of writing
tar xf GE-Proton9-18.tar.gz
export PROTON_DIR=/home/starrupture/.steam/root/compatibilitytools.d/GE-Proton9-18
export STEAM_COMPAT_DATA_PATH=/home/starrupture/proton-prefix
export STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/starrupture/.steam
mkdir -p "$STEAM_COMPAT_DATA_PATH"
# Initialise the prefix
"$PROTON_DIR/proton" run wineboot --init
After wineboot completes, the prefix directory contains a pfx/ subtree that holds all the Wine-side state for StarRupture. Keep this prefix on the same filesystem as the server files for the fastest IO, and do not move it around between runs - Proton records absolute paths inside the prefix.
Step 3: winetricks Dependencies
A clean Proton prefix does not have enough Visual C++ runtime libraries to launch StarRupture. The server will exit silently or with a generic "missing DLL" error unless you install the right set. Install winetricks and feed it the package list:
sudo apt-get install -y winetricks
export WINE=/home/starrupture/.steam/root/compatibilitytools.d/GE-Proton9-18/files/bin/wine
export WINEPREFIX=/home/starrupture/proton-prefix/pfx
winetricks --unattended \
vcrun2015 vcrun2017 vcrun2019 vcrun2022 \
corefonts
What each package gives you:
- vcrun2015-2022 - Visual C++ redistributables. StarRupture links against multiple versions; installing all four covers the build tooling used by the Windows binary.
- corefonts - Microsoft core fonts. The server uses them for log rendering and some RCON output. Skipping this causes occasional "font not found" lines in the log but does not break functionality.
If winetricks errors out during download, set a different winetricks cache directory (export WINETRICKS_CACHE=/tmp/wt) and retry. Corporate networks sometimes block the default source mirror.
Step 4: d3d11 Workaround
Even with all Visual C++ runtimes installed, some Proton prefixes throw a d3d11.dll not found error when StarRupture starts. That is because the server binary calls into DirectX even though it never actually renders. Two workarounds:
- Enable DXVK in the prefix. Proton-GE ships with DXVK enabled by default for most games, but if Proton has disabled it for your prefix, re-enable via
PROTON_USE_WINED3D=0andDXVK_HUD=0in the environment before launch. - Install a Wine Mono-free d3d11 replacement. If DXVK misbehaves, copy
d3d11.dllfrom the Proton runtime into the prefix and register it as a native override viawinetricks d3d11=n.
In practice, the first workaround handles roughly 95% of Linux crashes at this stage. If the server still refuses to launch, check ~/proton-prefix/pfx/drive_c/users/steamuser/AppData/Local/StarRupture/Logs/ for a stack trace - it usually names the missing library by path.
msvcrt, avoid then forcing native d3d11 - the combination causes sporadic heap corruption that shows up as intermittent crashes 10-30 minutes into a session.
Step 5: systemd Service
Wrap the whole thing in a systemd unit so the server survives reboots, restarts on crash, and logs to the journal. Create /etc/systemd/system/starrupture.service:
[Unit]
Description=StarRupture dedicated server (Proton)
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=starrupture
Group=starrupture
WorkingDirectory=/home/starrupture/server
Environment="STEAM_COMPAT_DATA_PATH=/home/starrupture/proton-prefix"
Environment="STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/starrupture/.steam"
Environment="PROTON_USE_WINED3D=0"
ExecStart=/home/starrupture/.steam/root/compatibilitytools.d/GE-Proton9-18/proton run /home/starrupture/server/StarRuptureServer.exe -log -server
Restart=on-failure
RestartSec=10
StandardOutput=append:/home/starrupture/logs/server.log
StandardError=append:/home/starrupture/logs/server.err
[Install]
WantedBy=multi-user.target
Reload systemd, enable, and start:
sudo mkdir -p /home/starrupture/logs
sudo chown starrupture:starrupture /home/starrupture/logs
sudo systemctl daemon-reload
sudo systemctl enable --now starrupture.service
sudo journalctl -u starrupture.service -f
The Restart=on-failure directive is the Linux equivalent of the watchdog script from the autoload save on restart guide. Combined with the DSSettings.txt flags from that guide, this gives you a crash-resilient, reboot-resilient Linux deployment.
Step 6: Keeping the Server Updated
SteamCMD does not run inside the Proton prefix, so updating the server is a normal Linux flow. Stop the service, re-run the SteamCMD command from Step 1 with app_update 3809400 validate, and start the service again. If the update changes the binary version, the first launch after update will rebuild some Proton prefix state, which takes 15-30 seconds.
On Update 1 (April 9, 2026), the server changed versions and briefly caused clients to fail joining until the server was restarted. That is a client-server protocol mismatch and not a Proton-specific issue - every server running Windows or Linux showed the same behaviour. Version mismatches are best handled by updating the server within a few hours of a client update rollout.
File Paths Inside the Prefix
Proton maps Windows paths inside the prefix to Linux paths. The most useful translations:
- Save files:
~/proton-prefix/pfx/drive_c/users/steamuser/AppData/Local/StarRupture/Saved/SaveGames/ - Server config:
~/proton-prefix/pfx/drive_c/users/steamuser/AppData/Local/StarRupture/Saved/Config/WindowsServer/ - Logs:
~/proton-prefix/pfx/drive_c/users/steamuser/AppData/Local/StarRupture/Logs/
Back up the SaveGames/ directory daily via rsync or rclone. Saves are small (a few megabytes) so snapshotting them every autosave cycle is cheap and gives you per-minute recovery granularity when something breaks.
FAQ
Is there a real native Linux server on the way?
Creepy Jar has hinted at Linux support but has not published a timeline. Until the native binary ships, Proton remains the canonical approach and Supercraft's production nodes run this way today.
Which Proton version should I use?
Proton-GE stable (latest GE-Proton release) is the community recommendation. Stock Proton Experimental also works but has fewer EOS-specific patches and occasionally drops sessions after long uptime.
Can I skip winetricks if I already have the DLLs?
Only if you have installed the same redistributable versions manually and registered them correctly. Missing even one of the four vcrun packages causes an immediate crash with a cryptic error. The safest path is always the full winetricks install.
Does the Proton server support SaveSync migrations?
Yes. SaveSync runs against EOS, which is OS-agnostic. Linux hosts participate in host migration exactly like Windows hosts. See the SaveSync migration guide.
Why does the log mention Wine even though I am using Proton?
Proton is a Wine fork. Internal logs still reference Wine subsystems. This is expected and harmless.
Supercraft runs every StarRupture node on this Proton stack with safe defaults, the systemd supervisor, and daily save snapshots. See the StarRupture server hosting page to rent a preconfigured instance.
Next Steps
- Full dedicated server setup (Windows and Linux)
- Autoload save on restart
- Server hardware requirements