ETL Server Setup Guide - Linux¶
This guide assumes you have an up and running as well as web accessible Ubuntu headless server.
Navigate to your /home/user folder and create a folder to hold the installation and configuration files:
Now navigate into your newly created folder:
Now we need to download the installation file from etlegacy.com. Have a look at the download page, you can right click on the 32bit installer for Linux and copy the url. Now we can use wget command to download and rename the file like so:
wget https://www.etlegacy.com/download/file/128 -O etlegacy.sh
Once the download is complete, we need to make this file executable so that we can run the installation:
chmod +x etlegacy.sh
Now you can run the installer:
Now the installer will launch in the terminal. You will be asked to accept the terms and conditions.
Be careful, the installer will as you whether you want to install the files directly into your folder or make a sub folder. I find it neater to install directly into the folder, since we made it explicitly for this.
Once the installation is complete you should have a similar set up of files in your ET folder:
drwxr-xr-x 3 YourUsername YourUsername 4096 Mar 16 2005 bin -rw-r--r-- 1 YourUsername YourUsername 3691 Mar 15 2005 CHANGES -rw-r--r-- 1 YourUsername YourUsername 35842 Jan 6 12:12 COPYING.txt drwxr-xr-x 3 YourUsername YourUsername 4096 Mar 16 2005 Docs -rwxr-xr-x 1 YourUsername YourUsername 5538960 Jan 6 12:24 etl -rwxr-xr-x 1 YourUsername YourUsername 149 Jan 6 12:12 etl_bot.sh -rwxr-xr-x 1 YourUsername YourUsername 2018368 Jan 6 12:28 etlded -rwxr-xr-x 1 YourUsername YourUsername 187 Jan 6 12:12 etlded_bot.sh -rwxrwxr-x 1 YourUsername YourUsername 50016987 Jan 13 20:54 etlegacy-v.76-i386.sh -rwxrwxr-x 1 YourUsername YourUsername 270965248 Jan 15 16:28 et-linux-2.60.x86.run -rwxr-xr-x 1 YourUsername YourUsername 195 Jan 6 12:12 etl_renderer2.sh drwxr-xr-x 3 YourUsername YourUsername 4096 Jan 13 20:31 etmain -rw-r--r-- 1 YourUsername YourUsername 11 Jan 16 10:29 etserver.log -rw-r--r-- 1 YourUsername YourUsername 1290 Mar 15 2005 ET.xpm -rw-r--r-- 1 YourUsername YourUsername 2578 Jan 6 12:12 INSTALL.txt drwxr-xr-x 5 YourUsername YourUsername 4096 Jan 13 20:31 legacy -rw-r--r-- 1 YourUsername YourUsername 2054216 Jan 6 12:26 librenderer_opengl1_i386.so -rw-r--r-- 1 YourUsername YourUsername 2538344 Jan 13 20:31 librenderer_opengl2_i386.so -rwxr-xr-x 1 YourUsername YourUsername 287 Mar 15 2005 openurl.sh drwxr-xr-x 3 YourUsername YourUsername 4096 Mar 16 2005 pb -rw-r--r-- 1 YourUsername YourUsername 625 Mar 15 2005 README drwxr-xr-x 4 YourUsername YourUsername 4096 Mar 16 2005 setup.data -rwxr-xr-x 1 YourUsername YourUsername 7151 Mar 15 2005 setup.sh
Now we need to ensure that the required ports are open.
Assuming you are using iptables and assuming that your rules are in the file located at /etc/iptables.firewall.rules
Let us open the file with nano (you don’t have to use nano, you can use a command line editor of your choice) and edit it:
sudo nano /etc/iptables.firewall.rules
Now let us add these rules:
# Allow for ET Server -A INPUT -p udp --dport 27960 -j ACCEPT -A INPUT -p tcp --dport 27960 -j ACCEPT -A INPUT -p udp --dport 27950 -j ACCEPT -A INPUT -p tcp --dport 27950 -j ACCEPT -A INPUT -p udp --dport 27951 -j ACCEPT -A INPUT -p tcp --dport 27951 -j ACCEPT
You may not need all these ports. I found them mentioned while reading up on how to install an ET server. Some of them may not be relevant anymore (hopefully this can be corrected in this tutorial).
Now refresh your iptables so that the new rules can take effect (alternatively you can restart your server).
Depending on your configuration, one of the following may work. For me it is the first one:
/etc/init.d/networking restart /etc/init.d/iptables restart /etc/init.d/firewall restart
This concludes the installation steps, now we can look at configuration.
Now back in our /home/User/ET folder we have to sub folders, one called etmain/ and one called etlegacy/.
These are the interesting ones for our server configuration.
In etmain/ you will find a sample config file called etl_server.cfg
Let us make a copy of it so we can edit the copy:
cp etl_server.cfg server.cfg
Now we can edit our newly created server.cfg
You should be able to do this without elevating your credentials with "sudo", so just this should be enough (assuming you own the file):
If that does not work you can use sudo
sudo nano server.cfg
The file is quite nicely commented. The interesting bits are:
// LOGGING & PROTECTION set logfile "2" // enables console logging - 'etconsole.log' (1: enabled 2: enabled and sync'ed) set sv_protect "1" // getstatus response limit protection set sv_protectLog "sv_protect.log" // when set all sv_protect and server security related messages are written into this log file set sv_floodProtect "1" // prevent server flooding set sv_pure "1" // enable hash check of client pk3 files // NETWORK set dedicated "2" // 1: dedicated server for lan 2: dedicated server for internet set sv_advert "1" // send hartbeats to master server - important to set! //set net_ip "" // set to override the default IPv4 ET uses //set net_port "27960" // set to override the default port ET uses //set net_ip6 "" // set to override the default IPv6 ET uses //set net_port6 "27960" // set to override the default port ET uses sv_timeout "40" // seconds without any message from connected clients sv_dl_timeout "240" // seconds without any message from downloading or preparing clients set sv_minping "0" // minimum ping required on connect (0: no minimum) set sv_maxping "0" // maximum ping allowed on connect (0: no maximum) set sv_ipMaxClients "0" // limits connections per IP to cvar value (0: no maximum) // PASSWORDS & CLIENTS set g_password "" // set to password protect the server set sv_maxclients "24" // number of players including private slots set sv_privateclients "4" // if set > 0, then this number of client slots will be reserved for connections set sv_privatepassword "" // that have "password" set to the value of "sv_privatePassword" set rconpassword "" // remote console access password set refereePassword "" // referee status password // MOTD ETC set sv_hostname "ET Legacy Host" // name of server here // max length is "12345678901234567890123456" // (message should not be longer than this without the color codes) set server_motd0 " ^NET Legacy ^7MOTD " // message in right corner of join screen here set server_motd1 "" set server_motd2 "" set server_motd3 "" set server_motd4 "" set server_motd5 ""
Look through the file and edit as you see fit.
Some more explanations to these CVARS can be found here: https://dev.etlegacy.com/projects/etlegacy/wiki/List_of_Cvars
Once you are done, save your changes and exit the file.
In theory you now have the basics in place to start your rather default and vanilla ETL server.
Starting the Server¶
To start the server make sure you are back in your parent folder /home/user/ET
Here we can issue various combinations of the following plain command:
./etlded +set fs_basepath /home/user/ET +exec server.cfg
If you get an error saying:
bash: ./etlded: No such file or directory
Then it means we are missing some files to allow this 32bit installation of ETL to run on our 64bit operating system.
As a side note, we installed the 32bit version and not the 64bit - because many clients use the 32bit version and would not be able to connect to our server had we used the 64bit version.
To fix the issue see the troubleshooting section below.
Now you can try the command above again and you should see your server start and initialize. To test it, fire up an ETL client and check to see the list of online servers. Hopefully your server is listed somewhere in the list.
bash: ./etlded: No such file or directory