This guide installs an Astroneer Dedicated Server on Linux using Wine and SteamCMD. It covers configuration requirements, including disabling encryption for all clients.
A Linux distribution (e.g., Ubuntu, Fedora, or Gentoo). Root or
sudo access for initial installation steps. Basic knowledge
of terminal commands.
Create a dedicated astroneer user for isolation.
$ sudo useradd -m-s /bin/bash -G video,users astroneer
$ sudo passwd astroneer
$ sudo su - astroneerThe -G video,users flags add supplementary groups:
The server requires wine-proton; standard vanilla builds fail. This guide was tested with version 10.0.4 in July, 2026.
Disable unnecessary features for a headless server:
$ echo "app-emulation/wine-proton -usb -cups -gstreamer -unwind -sdl -pulseaudio -mingw -gecko -alsa -vulkan">> /etc/portage/package.use/steam
$ emerge --ask app-emulation/wine-protonA standard Wine installation with lib32 support is
required.
Download and extract the Linux version of SteamCMD.
$ mkdir -p ~/steamcmd
$ cd ~/steamcmd
$ L="https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz"
$ [ ! -f steamcmd_linux.tar.gz ] &&wget$L&&tar zxvf steamcmd_linux.tar.gzDownload and verify the server files with SteamCMD using
anonymous login; no license is required.
$ ./steamcmd.sh \
+@sSteamCmdForcePlatformType windows \
+login anonymous \
+app_update 728470 validate \
+quitSet up symlinks for easier access to configuration and save games.
$ D="$HOME/Steam/steamapps/common/ASTRONEER Dedicated Server"
$ ln -sf"$D" Astro
$ ln -sf"$D/Astro/Saved/Config/WindowsServer" AstroConfig
$ ln -sf"$D/Astro/Saved/SaveGames" AstroSaveServer files are in $D.
Open UDP port 8777 in your firewall. Astroneer uses PlayFab for server registration and liveness checks. The server sends heartbeats to PlayFab to prove it’s alive and appear in the server browser. Without port access, PlayFab registration fails and the server won’t be visible. This applies even to local-only servers — the port must be open regardless of whether external players connect.1
On first run, Wine needs to set up its prefix and install required libraries (Mono, Gecko). Run this once:
$ WINE="/etc/eselect/wine/bin/wine"
$ export DISPLAY=:0
$ export XDG_RUNTIME_DIR=$HOME
$ cd "$HOME"
$ timeout 120 $WINE wineboot --initRun the server once manually to generate the default configuration files.
$ WINE="/etc/eselect/wine/bin/wine"
$ export DISPLAY=:0
$ export XDG_RUNTIME_DIR=$HOME
$ cd "$D"
$ $WINE AstroServer.exe
# Press Ctrl+C after the config files are generated.The server script uses AstroLauncher, a community launcher with a web dashboard. Download it to your home directory:
$ wget https://github.com/JoeJoeTV/AstroLauncher/releases/download/1.8.5.1/AstroLauncher.exeModify AstroConfig/AstroServerSettings.ini to set your
public details using an idempotent update script.
Create a script named update in your home directory to
automate configuration and updates:
$ cat << EOF> ~/update
#!/bin/sh
set -ex
L="https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz"
[ ! -f steamcmd_linux.tar.gz ] && wget $L
[ ! -d steamcmd ] && mkdir steamcmd && cd steamcmd && tar zxvf ../steamcmd_linux.tar.gz
LIB=$HOME/steamcmd/linux32
export LD_LIBRARY_PATH="$LIB:$LD_LIBRARY_PATH"
ulimit -n 2048 # max number of open file descriptors
STEAMCMD="$HOME/steamcmd/steamcmd.sh"
D="$HOME/Steam/steamapps/common/ASTRONEER Dedicated Server"
cd $HOME
$STEAMCMD \
+@sSteamCmdForcePlatformType windows \
+login anonymous \
+app_update 728470 validate \
+quit
D="$HOME/Steam/steamapps/common/ASTRONEER Dedicated Server"
ln -sf "$D" Astro
ln -sf "$D/Astro/Saved/Config/WindowsServer" AstroConfig
ln -sf "$D/Astro/Saved/SaveGames" AstroSave
[ ! -f AstroConfig/AstroServerSettings.ini ] && echo "start the AstroServer.exe to generate the initial config files" >&2 && exit 1
STEAMUSER="your_username" # Replace with your Steam display name
IP=$(curl-4-s ifconfig.me)
PORT=8777
SERVER=$(hostname--short|tr[a-z][A-Z])
sed -i "s/^\\(PublicIP\\)=.*/\\1=${IP}/" AstroConfig/AstroServerSettings.ini
sed -i "s/^\\(OwnerName\\)=.*/\\1=${STEAMUSER}/" AstroConfig/AstroServerSettings.ini
sed -i "s/^\\(ServerName\\)=.*/\\1=${SERVER}/" AstroConfig/AstroServerSettings.ini
sed -i '/^\[URL\]/,$d' AstroConfig/Engine.ini
cat << EOF >> AstroConfig/Engine.ini
[URL]
Port=$PORT
[SystemSettings]
net.AllowEncryption=False
EOF
# Configure Launcher.ini for headless server
sed-i's/^DisableNetworkCheck=False/DisableNetworkCheck=True/'"$D/Launcher.ini"
sed-i's/^AdminAutoConfigureFirewall=True/AdminAutoConfigureFirewall=False/'"$D/Launcher.ini"
sed-i's/^HeartBeatFailRestartServer=8/HeartBeatFailRestartServer=0/'"$D/Launcher.ini"
sed-i's/^AutoUpdateLauncherSoftware=True/AutoUpdateLauncherSoftware=False/'"$D/Launcher.ini"
sed-i's/^AutoUpdateServerSoftware=True/AutoUpdateServerSoftware=False/'"$D/Launcher.ini"
sed-i's/^UpdateOnServerRestart=True/UpdateOnServerRestart=False/'"$D/Launcher.ini"
sed-i's/^HideServerConsoleWindow=False/HideServerConsoleWindow=True/'"$D/Launcher.ini"
sed-i's/^HideLauncherConsoleWindow=False/HideLauncherConsoleWindow=True/'"$D/Launcher.ini"
EOF
$ chmod +x ~/update
$ ./updateWeb Management Interface: Create a
server script to launch the server with a web dashboard.
You can access this management page in your browser using
xdg-open:
$ cat << EOF> ~/server
#!/bin/sh -ex
echo -e "[NOTE] kill the AstroServer with\n\$ pkill Astro"
D="$HOME/Steam/steamapps/common/ASTRONEER Dedicated Server"
WINE="/etc/eselect/wine/bin/wine"
export DISPLAY=:0
export XDG_RUNTIME_DIR=$HOME
cd "$D"
exec $WINE ~/AstroLauncher.exe
EOF
$ chmod +x ~/server
$ ./server &
$ xdg-open http://localhost:5000Clients MUST disable encryption in their local
settings. Update the following path on all client machines:
~/.steam/steam/steamapps/compatdata/361420/pfx/drive_c/users/steamuser/AppData/Local/Astro/Saved/Config/WindowsNoEditor/Engine.ini
$ cat << EOF>> /path/to/client/Engine.ini
[SystemSettings]
net.AllowEncryption=False
EOFClients cannot load into a server that has no save file. After the server is running, connect with the Astroneer client and create a save using Join Game (not Manage Server):
$ ./server &Why not Manage Server? The “Create New Game” option in Manage Server (both the default game creation after setup and the in-client Manage Server menu) may fail with a “Loading Solar System” bounce. Use Join Game instead — it reliably creates the initial save.
After the first save exists, future client connections load the saved game normally.
If you edit configuration files while the server is running, changes will be overwritten when the server saves. Stop the server before making config changes.
If you cannot connect to the server:
net.AllowEncryption=False in their respective
Engine.ini files.If the server starts on port 7777 (default) instead of 8777, the
Engine.ini changes from the update script may
not have applied. Run ./update again, then restart the
server. Verify the port with:
$ grep Port AstroConfig/Engine.iniYou should see Port=8777.
If the client reaches “Loading Solar System” and then bounces back to the main menu, the server likely has no save file. See Create Your First Save above — use Join Game (not Manage Server) to create the initial save.
This can also happen if the save file is corrupted. Delete the
.savegame file from AstroSave/ and create a
fresh save using the Join Game method above.
Wine produces many warning messages that are normal on a headless system. These include:
nodrv_CreateWindow /
Could not create tray window — no graphical display
available; expected for a headless server. fixme:crypt /
fixme:ntdll / fixme:nls — stub functions in
Wine that do not affect server operation. Authorization required, but no authorization protocol specified
— X11 display server not running; cosmetic only.These messages do not indicate a problem. The server works if you see
Server ready! and Connected to RCON Console!
in the output.
The server autosaves every 15 minutes
(AutoSaveGameInterval=900 in
AstroServerSettings.ini). Backups occur every 2 hours
(BackupSaveGamesInterval=7200). Modify these values in
AstroConfig/AstroServerSettings.ini to change the
intervals. Save via the in-game menu before running
pkill Astro to avoid losing progress.
Ctrl-C stops the launcher but leaves the Wine and server processes
running. You must run pkill Astro every
time to fully stop the server.
$ pkill AstroVerify all processes are gone:
$ ps -aef|grep-i AstroThe Astroneer Dedicated Server is a Windows executable. Wine provides the compatibility layer to run it on Linux, avoiding a virtual machine or dual-boot setup.
Community projects for hosting Astroneer on Linux:
ghcr.io/birdhimself/astroneer-server.armadous/astroneer-server and
whalybird/astroneer-server — Older Docker images, source
repos now deleted. The whalybird image is a mirror of
birdhimself/astroneer-server.AstroLauncher.exe).| Term | Description |
|---|---|
| AstroServer.exe | The main executable for the Astroneer Dedicated Server, run via Wine. |
| SteamCMD | Valve’s command-line version of Steam used to download and update servers. |
| Wine | A compatibility layer for running Windows executables on Linux. |
| Proton | A compatibility layer based on Wine developed by Valve. |
| LD_LIBRARY_PATH | Environment variable defining the paths where the dynamic linker searches for libraries. |
| Engine.ini | Configuration file for Unreal Engine network settings. |
| AstroServerSettings.ini | Configuration file for specific Astroneer server parameters. |
| AstroTuxLauncher | A launcher tool used by some community members to manage Astroneer installations and server components. |
This appendix shows a successful server startup. Use this to verify your installation is working.
$ ./server &Expected output (Wine warnings are normal — see Troubleshooting):
[NOTE] kill the AstroServer with
$ pkill Astro
AstroLauncher - Unofficial Dedicated Server Launcher v1.8.5.1
...
Starting Server process...
Server started ( 0.0 )! Getting ready....
Server ready! Took 21.23 seconds to register.
Connected to RCON Console!
Server FPS: 3$ pkill AstroExpected output:
Kill Server: Launcher shutting down via signal
Server shutdown.
Server saved. YourSaveName$2026.01.01-00.00.00.savegame
All servers deregisteredNote: Ctrl-C stops the launcher but may leave Wine
and server processes running. Run pkill Astro to fully
clean up.
$ ps -aef|grep-i astroYou should see AstroLauncher.exe and
AstroServer-Win64-Shipping.exe processes running under the
astroneer user.
While the server is running, access the management interface at:
http://localhost:5000This provides a web-based status page and configuration options.
AstroLauncher’s Launcher.ini has
PlayFab-related settings: PlayfabAPIFrequency controls how
often the launcher checks registration status (default: 2 seconds), and
HeartBeatFailRestartServer sets how many PlayFab failures
before restarting the server (default: 8).↩︎