Creating a Dota 2 Server on CentOS 6
In this article, we will be creating a Dota 2 server. Dota is a free-to-play multiplayer game released by Valve, the company behind Steam. As a reminder, this article is written for CentOS 6.
Warning: These instructions will not work on the base level Vultr VPS plan, as Dota 2 requires more than 15GB of disk space. The minimum plan size is a 20GB SSD plan.
Step 1: Prerequisites and requirements
As many Steam game servers require
SteamCMD, we will be installing the dependencies of it. For reference, SteamCMD requires the following packages:
- freetype fonts
In order to install these packages, please execute the following commands as the root user. If you wish to perform this with a unprivileged account, make sure you add
sudo before any commands specified to run as root.
yum groupinstall 'Development Tools' -y yum install libX11-devel freetype freetype-devel zlib-devel libxcb-devel -y
For 32 bit users, execute the following as the root user:
yum install glibc libstdc++ -y
For 64 bit users, you'll need the 32 bit compatibility libraries for
glibc since SteamCMD runs on only 32 bit environments:
yum install glibc.i686 libstdc++.i686 -y
Step 2: Installing SteamCMD
First, we'll create a special user to host the game server. We do this because if someone finds an exploit in the game server software, they will only have limited privileges to your VPS. Feel free to change the username, however this article will be using
dotags as the unprivileged user.
Enter the user account:
Then, download SteamCMD:
Now, we need to extract the tar archive:
tar -xvf steamcmd_linux.tar.gz
Step 3: Configuring SteamCMD for Dota 2
Because Dota 2 does not allow the
anonymous user to install Dota 2, we need to log in with our own accounts. First, start SteamCMD:
Then, log into Steam:
Let's set our installation directory for Dota 2:
... and begin the installation:
This will take a while, so please be patient.
Now, we need to install MetaMod so that the server runs properly.
Go to the Dota 2 game directory:
cd ~/Steam/steamapps/common/dota 2 beta/game/dota
Download the source and extract it:
wget http://www.metamodsource.net/mmsdrop/1.10/mmsource-1.10.7-git952-linux.tar.gz tar -xvf mmsource-1.10.7-git952-linux.tar.gz
As Dota 2 requires a program called
srcds to run properly, we'll grab that now:
wget -O srcds.tar.gz https://forums.alliedmods.net/attachment.php?attachmentid=140208&d=1416970992 cd ~/Steam/steamapps/common/dota 2 beta/game/dota tar -xvf srcds.tar.gz
Good job, all that's left is to start the server.
Step 4: Starting your Dota 2 server
This step is simple; create a
screen session and start the server inside of it.
screen -dmS dota2server "/home/Steam/steamapps/common/dota 2 beta/game/dota/srcds_run -game dota -console"
You can put that in
/etc/rc.local to have your Dota 2 server start when your instance boots up. Do that by opening it (
nano /etc/rc.local ), paste the command above and save the file.
In this article, you created your own Dota 2 server; now you can get in and play!