Table of Contents
Linux Server Install
System Requirements
The system requirements of a SrcDS server are pretty low nowadays:
- CPU: Basically anything will do nowadays. When it comes to hosting multiple servers from a single machine, we recommend limiting the load to one SrcDS instance (server) per core. Higher specced machines you may be able to get away with more than one SrcDS instance per core.
We recommend starting off with at least 2 cores for performance reasons.
- RAM: You're looking at less than 512MB of RAM usage per SrcDS instance.
- Network:
- Static IP: If you're hosting a public server, we recommend a static IP as it will make it easier for returning players to find your server.
- Speed: At least 1Mbps download, 8Mbps upload (16-slot server).
- Latency: Lower is better! We recommend less than 100ms between the client and the server for an optimal experience.
If you don't have a capable setup or the instructions seem daunting to you, you are encouraged to use a game hosting company such as NFO Servers.
Having issues? Please check our troubleshooting articles.
Server Setup
Running the server natively on Linux has proven to be highly problematic, so for the time being, we have prepared instructions for running the server using Wine. This guide was written for Ubuntu Server 18.04, but you could likely adapt it to other distributions as well.
In short, the installation process is:
- Install required packages:
- Wine
- Xvfb (X virtual framebuffer)
- SteamCMD (Linux version)
- Download the Windows version of Source 2007 Dedicated Server
- Download GE:S
- Create service files to run the server automatically
It is recommended that you create a user for the game and X server to run as – do not run as root. You can name the user whatever you like, but in this guide we use the example geserver
.
Add the required repositories and install the packages:
sudo add-apt-repository multiverse sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine-stable xvfb steamcmd
Create the server folder tree and set permissions:
sudo mkdir -p /servers/geserver sudo chown -R geserver:geserver /servers/ cd /servers/geserver
Start SteamCMD:
steamcmd
It will update and eventually you'll land at the Steam> prompt. Now, we'll download the Windows version of the Source 2007 Dedicated Server. Note that it is important to specify the full path to the install directory here.
@sSteamCmdForcePlatformType windows logon anonymous force_install_dir /servers/geserver app_update 310 quit
Grab the Server install archive from the Server Downloads page. Then, extract the gesource
folder to /servers/geserver
.
With the files in place, it's time to make the systemd service. First, we'll create a service file for Xvfb. This will allow the X server to run on startup and provide a display for Wine to use.
Create and open the file /etc/systemd/system/xvfb.service
:
sudo nano /etc/systemd/system/xvfb.service
Now, paste the following:
[Unit] Description=X Virtual Frame Buffer Service After=network.target [Service] User=geserver ExecStart=/usr/bin/Xvfb :99 -screen 0 16x16x8 [Install] WantedBy=multi-user.target
Press Ctrl-O
to save and then Ctrl-X
to exit. Type the following to enable the service at startup:
sudo systemctl enable xvfb
Start the service:
sudo systemctl start xvfb
If all goes well, the virtual X display is ready and we can create the service file for the GE:S server.
Create and open the file /etc/systemd/system/geserver.service
:
sudo nano /etc/systemd/system/geserver.service
Paste the following:
[Unit] Description=GoldenEye: Source server After=xvfb.service [Service] Type=simple User=geserver Environment="DISPLAY=:99" WorkingDirectory=/servers/geserver ExecStart=/usr/bin/wine srcds.exe -console -game gesource +map ge_archives Restart=on-failure RestartSec=10s [Install] WantedBy=multi-user.target
Save and close the file. Enable and start the service:
sudo systemctl enable geserver sudo systemctl start geserver
The game server will now run on startup of your Linux server. As you need to configure your server, you can use the following commands to start, stop, and restart your server:
Action | Command |
---|---|
Start | sudo systemctl start geserver |
Stop | sudo systemctl stop geserver |
Restart a running server | sudo systemctl restart geserver |
The game server should now be running and ready for configuration, which you can learn about using the other articles on this wiki.
Accessing Your Server From the Internet
To access your server over the Internet, you need to allow port 27015 TCP and UDP through any firewalls. If you're behind a NAT router, you also need to forward these ports to the device hosting your server.
Note: A local server will always appear under the LAN tab, not the Internet tab. The best way to verify the server is reachable online is for a friend to connect to it.
If you're running multiple servers from a single host, you may want to specify a custom port number for each server using the -port
launch option. For example, you would add -port 27016
to the launch parameters. You do, of course, need to whitelist/forward whatever port number(s) you decide to use.
Configuring Your Server
After you have a functional GoldenEye: Source server, you can customize settings to your liking. For information on server customization, please check the Server Guides page.
For common issues, including VAC or Steam connection issues, please check the troubleshooting page.