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/deploy.sh

70 lines
2.2 KiB
Bash
Raw Normal View History

2022-02-01 02:37:32 +01:00
#!/bin/bash
### Deploy script for a game server running multiple open-source game servers
### This script is intended for Debian 11, but may work on other apt-based
### systems too
###
### Specify domain name:
### DOMAINNAME=example.com ./deploy.sh
2022-02-01 02:37:32 +01:00
set -e
2022-02-09 01:39:31 +01:00
if [ -z $DOMAINNAME ]; then
2022-02-07 01:16:59 +01:00
echo "Domain name was not set. Please export DOMAINNAME first"
exit 1
fi
2022-02-01 02:37:32 +01:00
export stk_version="1.3"
export bzflag_version="2.4"
export mindustry_version="135"
2022-02-12 20:52:05 +01:00
export openhv_version="20220128"
2022-02-01 02:37:32 +01:00
export teeworlds_version="0.7.5"
export unvanquished_version="0.52.1"
export xonotic_version="0.8.2"
2022-02-12 22:12:18 +01:00
export lix_version="0.9.41"
2022-02-01 02:37:32 +01:00
export systemuser="onfoss"
export letsencryptemail="jarno@jarno.ca"
2022-02-01 02:37:32 +01:00
# Install what we need
apt update -y && apt full-upgrade -y
apt install --assume-yes \
git tmux unzip curl vim openjdk-11-jdk xz-utils python3-venv python3-pip \
python3-dev apt virtualenv python3-virtualenv libjpeg-dev zlib1g-dev \
fuse g++ gcc curl firewalld automake autoconf libtool \
2022-02-01 02:37:32 +01:00
libcurl3-dev libc-ares-dev zlib1g-dev libncurses-dev make python3-aiohttp \
2022-02-12 22:12:18 +01:00
nginx-core certbot python3-certbot-nginx sudo python3-psutil \
ldc dub libenet-dev
2022-02-01 02:37:32 +01:00
# Create the user for running the game servers
if ! getent passwd ${systemuser}; then
useradd ${systemuser} --system --create-home --shell=/bin/false
fi
export systemuserhome="$( getent passwd "${systemuser}" | cut -d: -f6 )"
# Install the web interface for servers that require interactive shells
if [ -d console2web ]; then
cd console2web
git pull
cd -
else
git clone https://github.com/DeathByDenim/console2web.git
fi
cp console2web/console2web.py /usr/bin/console2web
# Deploy the game servers
2022-02-02 03:36:29 +01:00
"$(dirname "$0")"/scripts/deploy_supertuxkart.sh
"$(dirname "$0")"/scripts/deploy_bzflag.sh
"$(dirname "$0")"/scripts/deploy_hedgewars.sh
2022-02-12 22:12:18 +01:00
"$(dirname "$0")"/scripts/deploy_lix.sh
2022-02-02 03:36:29 +01:00
"$(dirname "$0")"/scripts/deploy_mindustry.sh
"$(dirname "$0")"/scripts/deploy_openhv.sh
"$(dirname "$0")"/scripts/deploy_openspades.sh
"$(dirname "$0")"/scripts/deploy_teeworlds.sh
"$(dirname "$0")"/scripts/deploy_unvanquished.sh
2022-02-02 03:36:29 +01:00
"$(dirname "$0")"/scripts/deploy_xonotic.sh
2022-02-07 02:34:02 +01:00
# Deploy web interface stuff
"$(dirname "$0")"/scripts/deploy_monitoring.sh
2022-02-07 01:16:59 +01:00
"$(dirname "$0")"/scripts/deploy_webserver.sh