In this guide, we will show you how to set up a Starbound dedicated server on Linux.
Starbound is a multiplayer action-adventure game that takes in place in 2D procedurally generated universe. You can play within this universe with multiple other players.
The Starbound server isn’t super resource intensive, so you can run this off a fairly low-end VPS or device. If you are only playing with a couple of players, you can get away with about 2GB of RAM.
Thanks to the Starbound development team releasing native Linux binaries, getting this server up and running is a relatively straightforward process, especially when combined with the steamcmd tool.
One downside of using the Starbound dedicated server on Linux is that you must own the game. Installing the server without owning the game is impossible, as the developers never allowed anonymous installations.
Please note that to access this server, you will to be able to allow port 21025
through your firewall. Alternatively, you can set up a service such as Tailscale or NordVPN meshnet.
Installing and Running a Starbound Server on Linux
Over the following sections, we will walk you through installing and running a server for Starbound on Linux.
These steps should work on almost any Linux-based operating system if you run an x86 or x64 system. There is no support for ARM systems without using software like Box86 and Box64.
Preparing your System
1. Before you can set up the Starbound server on your Linux operating system, you must install SteamCMD. This tool allows us to easily download games and servers from Steam.
Luckily, we have a guide that shows you the easy steps to getting SteamCMD on Linux.
https://pimylifeup.com/linux-steamcmd/
Creating a User to Run the Starbound Server on Linux
2. Once you have installed SteamCMD, we can now create a user under which we will run the Starbond server on our Linux system.
We can create a user called “starbound
” using the useradd command within the terminal.
sudo useradd -m starbound
3. With the user created, you will want to swap to them for the next few steps. Changing this user will allow us to download the Starbound server without messing around with permissions later.
Changing this new user is as simple as running the following command within the terminal.
sudo -u starbound -s
4. After swapping to the new user, change to their home directory using the cd command below in the terminal.
cd ~
Downloading and Installing Starbound
5. We are now at the point where we can download the Starbound server onto your Linux system. This is where the SteamCMD tool we installed earlier comes in.
All you need to do is run the following command within the terminal to begin downloading the server.
While typing out this command, you must replace “<USERNAME>
” with your Steam username and “<PASSWORD>
” with your password.
/usr/games/steamcmd +@sSteamCmdForcePlatformType linux +force_install_dir /home/starbound/server +login <USERNAME> <PASSWORD> +app_update 211820 +quit
Please note that if you have Steam Guard enabled, you will be prompted to enter a valid code before the installation can proceed. At the time of publishing, just hitting “Approve
” does not allow SteamCMD access.
6. After the server has finished downloading, you can now return to your normal user by using the following command.
exit
Writing a Service to Start and Manage Starbound
7. Our next step is to create a systemd service that will start and manage the Starbound server while it runs on our Linux system.
You can write this service file using Nano by running the following command.
sudo nano /etc/systemd/system/starboundserver.service
8. Within this file, type out the following lines. These lines are fairly simple and basically, tell the system what file it should execute when the service is started.
All the configuration for the Starbound server is done through a different file.
[Unit]
Description=Starbound Dedicated Server
After=network.target
[Service]
Type=simple
User=starbound
Group=starbound
WorkingDirectory=/home/starbound/server
ExecStart=/home/starbound/server/linux/starbound_server
KillMode=SIGINT
Restart=on-failure
RestartSec=15
[Install]
WantedBy=multi-user.target
9. After writing out this file, you can save and quit by pressing CTRL + X, Y, and then ENTER.
Starting Your Server for the First Time
10. You will now want to enable the Starbound server service so that it will automatically be started when your system boots.
To enable the service we just wrote, you only need to run the following command in the terminal.
sudo systemctl enable starboundserver
11. After enabling the service, you can start the Starbound server on Linux by running the command below.
sudo systemctl start starboundserver
12. At this point you should now be able to access your new dedicated server. If you are having trouble connecting, you should allow port 21025
through your firewall. Additionally, if you are hosting this from your home, you may need to forward this port.
Configuring the Starbound Server on Linux
13. Before you configure the Starbound server on Linux, you will want to stop it from running.
Stopping the server is made simple thanks to the service we wrote earlier in this guide.
sudo systemctl stop starboundserver
14. After stopping the server, you can open the Starbound configuration file using the command below.
sudo nano /home/starbound/server/storage/starbound_server.config
15. You can now adjust the settings in this file to suit how you want to run the dedicated server.
Once you have finished making changes to this file, you can save and quit by pressing CTRL + X, Y, and then ENTER.
16. With all of your changes made, you will now want to start your Starbound server on Linux by using the following command
sudo systemctl start starboundserver
Updating your Starbound Server
While Starbound isn’t updated super often anymore, you may need to update the server at some point. This section will walk you through the simple steps to update the latest version of the Starbound dedicated server on Linux.
1. The first thing you must do is stop the currently running server. You can’t update if the files are currently in use.
sudo systemctl stop starboundserver
2. To simplify updating, you will now want to temporarily move over to the “starbound
” user.
sudo -u starbound -s
3. You can now update the Starbound Linux server by running the following command within the terminal.
Like when you installed the server, you must specify both your username, and password to update.
/usr/games/steamcmd +@sSteamCmdForcePlatformType linux +force_install_dir /home/starbound/server +login <USERNAME> <PASSWORD> +app_update 211820 +quit
4. When the update completes, you can exit from your current user by typing “exit
” into the terminal.
exit
5. All you need to do to start up the game server again is start up the “starboundserver
” service by using the following command.
sudo systemctl start starboundserver
Conclusion
Hopefully, by this point in the guide, you will now have successfully got the Starbound dedicated server running on Linux.
Starbound is a multiplayer action-adventure game where your play lives in a procedurally generated universe.
Please feel free to post a comment below if you have had any issues with getting this server running on Linux.
If you liked this tutorial, we recommend that you explore the many other game server tutorials to see what else you can self-host.
OK, fixed the problem from my earlier comment.
Had to change the working directory to the linux subdirectory of the one provided
WorkingDirectory=/home/starbound/server/linux
After following the instructions, the service doesn’t work because it cannot find sbinit.config
Starting the service as root works fine (though a terrible idea security-wise) so it seems to be a permission issue of some sort.
sbinit.config is owned by the starbound user, however… certainly odd.