Bibliografía:
https://wiki.teamfortress.com/w/index.php?title=Linux_dedicated_server
El servidor Team Fortress 2 tiene una serie de requisitos, para ello pon los siguientes comandos en la consola.
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install lib32z1 lib32ncurses5:i386 libbz2-1.0:i386 lib32gcc1 lib32stdc++6 libtinfo5:i386 libcurl3-gnutls:i386
Crea un usuario llamado gameserver
useradd gameserver
Crea un directorio en el que instalaremos SteamCMD, y entraremos en dicho directorio
mkdir ./hlserver
cd hlserver
Descargaremos SteamCMD
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
Lo descomprimimos con tar
tar zxf steamcmd_linux.tar.gz
Creamos un fichero denominado tf2_ds.txt
nano tf2_ds.txt
Lo rellenamos con
login anonymous
force_install_dir ./tf2
app_update 232250
quit
Creamos otro fichero llamado update.sh
nano update.ah
Lo rellenamos con
#!/bin/sh
./steamcmd.sh +runscript tf2_ds.txt
Lo hacemos ejecutable y lo ejecutamos, tardará un rato dependiendo de tu conexión ya que se descarga aproximadamente unos 8GBs.
chmod +x update.sh
./update.sh
Cambia el directorio a ~/hlserver/tf2/tf/cfg
cd ~/hlserver/tf2/tf/cfg
Crea un fichero denominado server.cfg
nano server.cfg
Rellenalo con los siguientes datos cambiando el nombre del servidor, tus propias contraseñas y correo electrónico
hostname "NOMBRE_DEL_SERVIDOR" // El nombre del servidor que los jugadores verán en el explorador de servidores y el marcador.
sv_password "TU_CONTRASEÑA" // La contraseña para conectarse al servidor
rcon_password "TU_CONTRASEÑA_DE_RCON" // La contraseña para habilitar el acceso rcon desde la consola.
mp_timelimit 30 // Tiempo por mapa en la rotación, en minutos. Pon 0 para que nunca se cambie el mapa.
mp_maxrounds 2 // Máximo número de rondas a jugar por mapa antes que forzar un cambio de mapa.
sv_allowupload 1 // Permite a los jugadores subir archivos personalizados (por ejemplo aerosoles)
sv_allowdownload 1 // Permite a los jugadores descargar archivos personalizados (por ejemplo aerosoles, mapas y aspectos, etc.)
net_maxfilesize 15 // Tamaño máximo permitido al subir archivos en MB (opcional)
Edita ahora los ficheros motd.txt y mapcycle.txt copiandolos desde los modelos que vienen por defecto, dichos archivos puedes modificarlos luego con tus propios valores
cp motd_default.txt motd.txt
cp mapcycle_default mapcycle.txt
Es ahora cuando vamos a crear un servicio para poder ejecutar el servidor sin tener la consola abierta
sudo nano /etc/systemd/system/hlserver.service
y lo rellenamos con los siguientes datos
[Unit]
Description=Team Fortress Server
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=gameserver
ExecStart=/home/gameserver/hlserver/tf2/srcds_run -console -game tf +sv_pure 1 +randommap +maxplayers 12
[Install]
WantedBy=multi-user.target
Habilitamos el servicio que acabamos de crear, recargamos de nuevo todos los servicios y lo ejecutamos
systemctl enable hlserver.service
systemctl daemon-reload
systemctl start hlserver
A partir de ahora el servidor se ejecutará automáticamente después de reiniciar el servidor, si lo que deseas es actualizarlo…
cd /home/gameserver
systemctl stop hlserver
./update.sh
systemctl start hlserver