mirror of
https://github.com/parkervcp/eggs.git
synced 2024-11-11 19:57:22 +08:00
54 lines
2.0 KiB
Bash
54 lines
2.0 KiB
Bash
#!/bin/bash
|
|
# steamcmd Base Installation Script
|
|
#
|
|
# Server Files: /mnt/server
|
|
# Image to install with is 'debian:buster-slim'
|
|
|
|
##
|
|
#
|
|
# Variables
|
|
# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.
|
|
# WINDOWS_INSTALL - if it's a windows server you want to install set to 1
|
|
# SRCDS_APPID - steam app id ffound here - https://developer.valvesoftware.com/wiki/Dedicated_Servers_List
|
|
# INSTALL_FLAGS - when a server has extra glas for things like beta installs or updates.
|
|
#
|
|
##
|
|
|
|
apt -y update
|
|
apt -y --no-install-recommends install curl lib32gcc1 ca-certificates
|
|
|
|
## just in case someone removed the defaults.
|
|
if [[ "${STEAM_USER}" == "" ]] || [[ "${STEAM_PASS}" == "" ]]; then
|
|
echo -e "steam user is not set.\n"
|
|
echo -e "Using anonymous user.\n"
|
|
STEAM_USER=anonymous
|
|
STEAM_PASS=""
|
|
STEAM_AUTH=""
|
|
else
|
|
echo -e "user set to ${STEAM_USER}"
|
|
fi
|
|
|
|
## download and install steamcmd
|
|
cd /tmp
|
|
mkdir -p /mnt/server/steamcmd
|
|
curl -sSL -o steamcmd.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
|
|
tar -xzvf steamcmd.tar.gz -C /mnt/server/steamcmd
|
|
mkdir -p /mnt/server/steamapps # Fix steamcmd disk write error when this folder is missing
|
|
cd /mnt/server/steamcmd
|
|
|
|
# SteamCMD fails otherwise for some reason, even running as root.
|
|
# This is changed at the end of the install process anyways.
|
|
chown -R root:root /mnt
|
|
export HOME=/mnt/server
|
|
|
|
## install game using steamcmd
|
|
./steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +force_install_dir /mnt/server +app_update ${SRCDS_APPID} ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6
|
|
|
|
## set up 32 bit libraries
|
|
mkdir -p /mnt/server/.steam/sdk32
|
|
cp -v linux32/steamclient.so ../.steam/sdk32/steamclient.so
|
|
|
|
## set up 64 bit libraries
|
|
mkdir -p /mnt/server/.steam/sdk64
|
|
cp -v linux64/steamclient.so ../.steam/sdk64/steamclient.so
|