This repository has been archived on 2023-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
gameserver/scripts/deploy_xonotic-br.sh

89 lines
2.6 KiB
Bash
Executable File

#!/bin/bash
# Collection of scripts to deploy a server hosting several open-source games
# Copyright (C) 2022 Jarno van der Kolk
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
set -e
if [ -e /etc/systemd/system/xonotic-br.service ]; then
systemctl stop xonotic-br
fi
apt install --assume-yes autoconf automake build-essential curl git libtool \
libgmp-dev libjpeg62-turbo-dev libsdl2-dev libxpm-dev xserver-xorg-dev \
zlib1g-dev unzip zip
# Xonotic Battle Royale branch
xonotic_directory="/opt/xonotic-br"
rm -rf ${xonotic_directory}
git clone https://gitlab.com/xonotic/xonotic.git ${xonotic_directory}
cd ${xonotic_directory}
./all update -l best
./all checkout Juhu/battle-royale
./all compile -r dedicated
mkdir -p ${systemuserhome}/xonotic-br/data
chown -R ${systemuser}: ${systemuserhome}/xonotic-br
cat > ${systemuserhome}/xonotic-br/data/server.cfg <<EOF
sv_public 0
hostname "onFOSS"
maxplayers 64
port 26000
log_file "server.log"
g_start_delay 15
g_maplist "implosion glowplant dance geoplanetary xoylent"
g_maplist_shuffle 1
gametype br
rcon_password "onFOSS"
bot_number 4
skill 8
minplayers 4
bot_prefix [BOT]
g_maplist_votable 6
sv_weaponstats_file http://www.xonotic.org/weaponbalance/
EOF
cat > /etc/systemd/system/xonotic-br.service <<EOF
[Unit]
Description=Xonotic Battle Royale server
After=network.target
Conflicts=xonotic.service
[Service]
WorkingDirectory=${xonotic_directory}
ExecStart=/usr/bin/console2web -a "${systempassword}" -p 62550 ${xonotic_directory}/all run dedicated +serverconfig server.cfg -userdir ${systemuserhome}/xonotic-br
Restart=on-failure
User=${systemuser}
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
#systemctl enable --now xonotic-br.service
cat > /etc/nginx/gameserver.d/xonotic.conf <<EOF
location /xonotic {
proxy_pass http://localhost:62550/;
proxy_http_version 1.1;
proxy_set_header Upgrade \$http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host \$host;
}
EOF
firewall-cmd --zone=public --add-port=26000/udp --permanent