pelican-panel-mirror/database/Seeders/eggs/source-engine/egg-custom-source-engine-game.yaml
2025-09-05 11:07:08 +02:00

155 lines
4.5 KiB
YAML

_comment: 'DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL'
meta:
version: PLCN_v3
update_url: 'https://github.com/pelican-dev/panel/raw/main/database/Seeders/eggs/source-engine/egg-custom-source-engine-game.yaml'
exported_at: '2025-09-05T08:55:22+00:00'
name: 'Custom Source Engine Game'
author: panel@example.com
uuid: 2a42d0c2-c0ba-4067-9a0a-9b95d77a3490
description: |-
This option allows modifying the startup arguments and other details to run a custom SRCDS based
game on the panel.
tags:
- source
- steamcmd
features:
- steam_disk_space
docker_images:
Source: 'ghcr.io/parkervcp/games:source'
file_denylist: { }
startup_commands:
Default: './srcds_run -game {{SRCDS_GAME}} -console -port {{SERVER_PORT}} +map {{SRCDS_MAP}} +ip 0.0.0.0 -strictportbind -norestart'
config:
files: { }
startup:
done: 'gameserver Steam ID'
logs: { }
stop: quit
scripts:
installation:
script: |-
#!/bin/bash
# steamcmd Base Installation Script
#
# Server Files: /mnt/server
##
#
# 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
# EXTRA_FLAGS - when a server has extra glas for things like beta installs or updates.
#
##
## just in case someone removed the defaults.
if [ "${STEAM_USER}" == "" ]; then
echo -e "steam user is not set.
"
echo -e "Using anonymous user.
"
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} ${EXTRA_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
container: 'ghcr.io/parkervcp/installers:debian'
entrypoint: bash
variables:
-
name: 'Game ID'
description: 'The ID corresponding to the game to download and run using SRCDS.'
env_variable: SRCDS_APPID
default_value: ''
user_viewable: true
user_editable: false
rules:
- required
- numeric
- 'digits_between:1,6'
sort: 1
-
name: 'Game Name'
description: 'The name corresponding to the game to download and run using SRCDS.'
env_variable: SRCDS_GAME
default_value: ''
user_viewable: true
user_editable: false
rules:
- required
- alpha_dash
- 'between:1,100'
sort: 2
-
name: Map
description: 'The default map for the server.'
env_variable: SRCDS_MAP
default_value: ''
user_viewable: true
user_editable: true
rules:
- required
- string
- alpha_dash
sort: 3
-
name: 'Steam Auth'
description: ''
env_variable: STEAM_AUTH
default_value: ''
user_viewable: true
user_editable: true
rules:
- nullable
- string
sort: 6
-
name: 'Steam Password'
description: ''
env_variable: STEAM_PASS
default_value: ''
user_viewable: true
user_editable: true
rules:
- nullable
- string
sort: 5
-
name: 'Steam Username'
description: ''
env_variable: STEAM_USER
default_value: ''
user_viewable: true
user_editable: true
rules:
- nullable
- string
sort: 4