2022-02-01 02:37:32 +01:00
|
|
|
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
|
2022-02-06 19:07:04 +01:00
|
|
|
if [ -e /etc/systemd/system/unvanquished.service ]; then
|
|
|
|
systemctl stop unvanquished
|
|
|
|
fi
|
|
|
|
|
2022-08-07 15:14:06 +02:00
|
|
|
unvanquished_url="https://github.com/Unvanquished/Unvanquished/releases/download/v${unvanquished_version}/unvanquished_${unvanquished_version}.zip"
|
2022-07-31 16:01:52 +02:00
|
|
|
if [ -z ${unvanquished_version} ] || [ "${unvanquished_version}" = "latest" ]; then
|
|
|
|
unvanquished_version=$(curl -s https://api.github.com/repos/Unvanquished/Unvanquished/releases/latest | jq -r '.["tag_name"]' | cut -c2-)
|
2022-08-07 15:14:06 +02:00
|
|
|
unvanquished_url=$(curl -s https://api.github.com/repos/Unvanquished/Unvanquished/releases/latest | jq -r '.assets | .[] | select(.size > 1000) | .browser_download_url')
|
2022-07-31 16:01:52 +02:00
|
|
|
fi
|
|
|
|
|
2022-02-04 23:53:34 +01:00
|
|
|
# Unvanquished
|
2022-02-01 02:37:32 +01:00
|
|
|
unvanquished_directory="/opt/unvanquished-${unvanquished_version}"
|
2022-08-07 15:14:06 +02:00
|
|
|
curl --location ${unvanquished_url} > ${TMPDIR:-/tmp}/unvanquished.zip
|
2022-02-06 20:21:26 +01:00
|
|
|
unzip -o -d ${TMPDIR:-/tmp} ${TMPDIR:-/tmp}/unvanquished.zip
|
2022-02-01 02:37:32 +01:00
|
|
|
mkdir -p ${unvanquished_directory}/bin ${unvanquished_directory}/share
|
2022-02-06 20:21:26 +01:00
|
|
|
unzip -o -d ${unvanquished_directory}/bin ${TMPDIR:-/tmp}/unvanquished*/linux-amd64.zip
|
2022-02-01 02:37:32 +01:00
|
|
|
if [ -d ${unvanquished_directory}/share/pkg ]; then
|
|
|
|
rm -rf ${unvanquished_directory}/share/pkg
|
|
|
|
fi
|
|
|
|
mv ${TMPDIR:-/tmp}/unvanquished*/pkg ${unvanquished_directory}/share
|
|
|
|
rm -rf ${TMPDIR:-/tmp}/unvanquished*
|
|
|
|
|
2022-02-04 23:53:34 +01:00
|
|
|
mkdir -p ${systemuserhome}/unvanquished_home/config
|
|
|
|
cat > ${systemuserhome}/unvanquished_home/config/unvanquished.cfg <<EOF
|
|
|
|
set server.private 1
|
2022-02-01 02:37:32 +01:00
|
|
|
set g_needpass 0
|
|
|
|
set sv_hostname "^NUnvanquished ^3onFOSS-LAN"
|
2022-02-06 20:54:40 +01:00
|
|
|
set g_motd "^2get news on ^5${DOMAINNAME}"
|
2022-02-01 02:37:32 +01:00
|
|
|
set sv_allowdownload 0
|
|
|
|
set sv_maxclients 24
|
|
|
|
set timelimit 0
|
|
|
|
set g_emptyTeamsSkipMapTime 15
|
|
|
|
set g_teamForceBalance 1
|
|
|
|
set g_mapConfigs "map"
|
|
|
|
set g_initialMapRotation rotation1
|
|
|
|
map yocto
|
|
|
|
EOF
|
2022-02-04 23:53:34 +01:00
|
|
|
chown -R ${systemuser}: ${systemuserhome}/unvanquished_home
|
2022-02-01 02:37:32 +01:00
|
|
|
|
2022-02-04 23:53:34 +01:00
|
|
|
cat > /etc/systemd/system/unvanquished.service <<EOF
|
2022-02-01 02:37:32 +01:00
|
|
|
[Unit]
|
2022-02-04 23:53:34 +01:00
|
|
|
Description=Unvanquished server
|
2022-02-01 02:37:32 +01:00
|
|
|
After=network.target
|
|
|
|
|
|
|
|
[Service]
|
2022-08-14 19:17:47 +02:00
|
|
|
ExecStart=/usr/bin/console2web -a "${systempassword}" -p 62549 -e quit ${unvanquished_directory}/bin/daemonded -pakpath ${unvanquished_directory}/share/pkg/ -libpath ${unvanquished_directory}/bin/ -homepath \${HOME}/unvanquished_home/ +exec unvanquished.cfg
|
2022-02-01 02:37:32 +01:00
|
|
|
Restart=on-failure
|
|
|
|
User=${systemuser}
|
|
|
|
|
|
|
|
[Install]
|
|
|
|
WantedBy=multi-user.target
|
|
|
|
EOF
|
|
|
|
|
|
|
|
systemctl daemon-reload
|
2022-02-04 23:53:34 +01:00
|
|
|
systemctl enable --now unvanquished.service
|
2022-02-01 02:37:32 +01:00
|
|
|
|
2022-02-19 01:00:02 +01:00
|
|
|
cat > /etc/nginx/gameserver.d/unvanquished.conf <<EOF
|
|
|
|
location /unvanquished {
|
|
|
|
proxy_pass http://localhost:62549/;
|
|
|
|
proxy_http_version 1.1;
|
|
|
|
proxy_set_header Upgrade \$http_upgrade;
|
|
|
|
proxy_set_header Connection "Upgrade";
|
|
|
|
proxy_set_header Host \$host;
|
|
|
|
}
|
|
|
|
EOF
|
|
|
|
|
2022-02-01 02:37:32 +01:00
|
|
|
firewall-cmd --zone=public --add-port=27960/udp --permanent
|