How to set up a CS:GO dedicated server with LinuxGSM

LinuxGSM (short for Linux Game Server Management) is an open source game server creator and manager, running in Linux (of course). The tool was designed to be as simple and lightweight as possible, enabling gamers spend less time on management and more time entertaining. While not having an eye-catching graphical interface, LinuxGSM makes it up with a huge number of games supported, as well as automatic updates, server monitoring, and a bunch of other awesome features.

Counter-Strike: Global Offensive is the fourth game in the Counter-Strike series of games. Despite the fact that CS:GO (Counter-Strike: Global Offensive) was released about seven years ago, the game is still very popular among gamer community. As of February 2020, Counter-Strike had 24 million monthly active users, double the figure from May 2016.

On Windows, you can use the built-in HLDS (Half Life Dedicated Server) executable to spin up a dedicated server. But for a reliable connection and high availability, a Linux-powered server is the best option as it's cheaper than the Windows counterpart and guarantee fast connection to the players.

In this article, we will show you how to easily set up a full-fledged CS:GO dedicated server with LinuxGSM in just a couple of minutes. The machine in the test runs Ubuntu 20.04 LTS, has 4 GBs of RAM and 2 Xeon E5-2670 CPU cores.

Prerequisites

The following requirements are unofficial, but are the general consensus amongst CS:GO server admins. You may still be able to run a playable dedicated server using less but to maintain good performance, this is a good starting point to begin server shopping.

  • 1vCPU or higher
  • 2 GB RAM or higher
  • A good CPU, preferably new generation (even if they're lower clocked than the older generation).
  • 100Mbps connection or higher. A server near your location is better.
  • At least 50GB free disk size to be able to download CS:GO into it.
  • Ubuntu, Debian or CentOS. Other Linux distros are not officially tested with LinuxGSM and may not work as intended.
  • Most of the server plans offer a few hundreds GBs of bandwidth, opt for a value higher than 100GB.
  • Port forwarding if you're operating from a home lab with NAT.

Please note that the more players you have, the higher these requirements will need to be to sustain performance.

I've had great performance with Vultr cloud-based VPS. If you're not sure about which provider to use, choose Vultr, its price, specs and locations and setup process are great for a beginner.

Install LinuxGSM depencies

Before install the actual game server manager, you need to install all the packages it relies to.

In order to do that, connect to your server through SSH (Linux) or Putty (Windows), log into an user with root privileges and run the following command.

sudo dpkg --add-architecture i386; sudo apt update; sudo apt install curl wget file tar bzip2 gzip unzip bsdmainutils python util-linux ca-certificates binutils bc jq tmux netcat lib32gcc1 lib32stdc++6 libsdl2-2.0-0:i386 steamcmd

LinuxGSM depencies

If you're asked anything, just proceed by pressing Enter or select OK button for SteamCMD.

Running Debian or CentOS? Copy the command to install LinuxGSM depencies here : https://linuxgsm.com/lgsm/csgoserver/

Create an user for LinuxGSM

As a security best practice, you should create a new, dedicated user for running LinuxGSM only.

sudo adduser csgoserver

Following the prompt, you will be asked to provide password for the newly-created user along with other details. You should choose a strong and random password for better security.

create-csgoserver-user

You can also choose a different name for the user as it does not affect LinuxGSM, for example csdedi. But please note that the commands in the next part of this article have to be replaced with your user name as well.

Run LinuxGSM installation script

After creating csgoserver user, we switch to it by the following command

su - csgoserver

Please do note that there are two spaces before and after the hyphen.

In the new prompt, copy and paste the following command into it.

wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh csgoserver

The command will automatically download the installation script, give it permission to run as an executable and call the script with csgoserver argument.

setup-csgoserver

Once you see "Installed Counter-Strike: Global Offensive server as csgoserver", that's when LinuxGSM has finished installing the script to automatically set up and manage CS:GO. Type the following command into the prompt to proceed with the actual CS:GO dedicated server installation.

./csgoserver install

Now csgoserver script will begin the preparation. Wait until you see Continue? [Y/n] along with information about the installation script, then input Y and press Enter. You may want to grab yourself a cup of coffee to wait for it to finish.

In the end of the installation, it will ask if SteamCMD successfully downloads the game data and whether you want to send anonymous server information back to LinuxGSM development team. Depend on your setup, you may answer them accordingly.

Manage CS:GO dedicated server created by LinuxGSM

In order to start the server, use the following command :

./csgoserver start

Call csgoserver with details argument and you will see information about the server status, configuration path, command line parameters, IP, ports, etc.

CS:GO server details

LinuxGSM has a bunch of other useful commands that allows for easier management of the CS:GO server.

commands

Changing CS:GO server name

LinuxGSM stores its configuration files in lgsm/config-lgsm directory. Each game server have their own subdirectory inside config-lgsm. Please make sure you're in the home directory where you've got LinuxGSM installed and run the following command to edit _default.cfg config file:

nano lgsm/config-lgsm/csgoserver/_default.cfg

csgo server default config

In this file you will find all settings related to your CS:GO servers. Every new CS:GO server you spin up uses this set of settings.

If you simply want to run only one CS:GO server instance, you can change the server name, its password, listening port and the command used to start the server along with its parameters right here. When you're done, press Ctrl+O to write the changes to disk.

After changing things, you have to restart LinuxGSM server to load the new configuration. In order to do so, run the following command :

./csgoserver restart

Alternatively, if you want to run multiple CS:GO servers, edit csgoserver.cfg instead of _default.cfg. You will be able to add another CS:GO server with the same LinuxGSM installation later by running bash linuxgsm.sh csgoserver. Newly added servers will be appended with a number to separate it from the others. For example, running bash linuxgsm.sh csgoserver for the second time will create ./csgoserver-2 management file and csgoserver-2.cfg configuration file.

nano lgsm/config-lgsm/csgoserver/csgoserver.cfg

csgoserver.cfg is empty, any flag you add to this file will supplant what was specified in _default.cfg. After saving it, you need to restart the server for changes to take effect.

./csgoserver start

Starting a CS:GO server usually takes about a minute or so, sometimes longer if you runs LinuxGSM on a low-end CPU. Once it has completely started, you can safely close the connection to the server without having to worry about the CS:GO server itself as it runs in background.

We hope that you've learned how to easily set up a CS:GO server on Ubuntu. If you also play Valheim, you can definitely adds its dedicated server onto your current setups, please consult our guide on setting up Valheim server with LinuxGSM for more details.

Click to rate this post!
[Total: 7 Average: 5]

Leave a Comment