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.

2023/01/06 18:38

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:

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.

2023/01/06 18:38

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.

2023/01/06 18:38