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 'ghcr.io/parkervcp/installers:debian'
 | |
| 
 | |
| ##
 | |
| #
 | |
| # 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 lib32gcc-s1 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 +force_install_dir /mnt/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +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
 |