mirror of
				https://github.com/pelican-eggs/eggs.git
				synced 2025-11-04 02:48:07 +00: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
 |