Merge pull request #73 from joedwards32/72-multi-server-crash-bug-after-connecting-to-server

Disable server hibernation by default as this has been observed to cause server crashes
This commit is contained in:
John Edwards 2023-12-17 16:41:05 +00:00 committed by GitHub
commit 57ca7daf66
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 33 additions and 26 deletions

View file

@ -51,6 +51,9 @@ Feel free to overwrite these environment variables, using -e (--env):
```dockerfile ```dockerfile
SRCDS_TOKEN="" (Game Server Token from https://steamcommunity.com/dev/managegameservers) SRCDS_TOKEN="" (Game Server Token from https://steamcommunity.com/dev/managegameservers)
CS2_SERVERNAME="changeme" (Set the visible name for your private server) CS2_SERVERNAME="changeme" (Set the visible name for your private server)
CS2_SERVER_HIBERNATE=0 (Put server in a low CPU state when there are no players.
0 - hibernation disabled, 1 - hibernation enabled
n.b. hibernation has been observed to trigger server crashes)
CS2_IP="" (CS2 server listening IP address, 0.0.0.0 - all IP addresses on the local machine, empty - IP identified automatically) CS2_IP="" (CS2 server listening IP address, 0.0.0.0 - all IP addresses on the local machine, empty - IP identified automatically)
CS2_PORT=27015 (CS2 server listen port tcp_udp) CS2_PORT=27015 (CS2 server listen port tcp_udp)
CS2_RCON_PORT="" (Optional, use a simple TCP proxy to have RCON listen on an alternative port. CS2_RCON_PORT="" (Optional, use a simple TCP proxy to have RCON listen on an alternative port.

View file

@ -40,6 +40,7 @@ FROM build_stage AS bullseye-base
ENV CS2_SERVERNAME="cs2 private server" \ ENV CS2_SERVERNAME="cs2 private server" \
CS2_IP=0.0.0.0 \ CS2_IP=0.0.0.0 \
CS2_SERVER_HIBERNATE=0 \
CS2_PORT=27015 \ CS2_PORT=27015 \
CS2_RCON_PORT="" \ CS2_RCON_PORT="" \
CS2_MAXPLAYERS=10 \ CS2_MAXPLAYERS=10 \

View file

@ -34,6 +34,7 @@ fi
# Rewrite Config Files # Rewrite Config Files
sed -i -e "s/{{SERVER_HOSTNAME}}/${CS2_SERVERNAME}/g" \ sed -i -e "s/{{SERVER_HOSTNAME}}/${CS2_SERVERNAME}/g" \
-e "s/{{SERVER_HIBERNATE}}/${CS2_SERVER_HIBERNATE}/g" \
-e "s/{{SERVER_PW}}/${CS2_PW}/g" \ -e "s/{{SERVER_PW}}/${CS2_PW}/g" \
-e "s/{{SERVER_RCON_PW}}/${CS2_RCONPW}/g" \ -e "s/{{SERVER_RCON_PW}}/${CS2_RCONPW}/g" \
-e "s/{{TV_ENABLE}}/${TV_ENABLE}/g" \ -e "s/{{TV_ENABLE}}/${TV_ENABLE}/g" \

View file

@ -1,35 +1,36 @@
// Server Defaults // Server Defaults
hostname "{{SERVER_HOSTNAME}}" // Set server hostname hostname "{{SERVER_HOSTNAME}}" // Set server hostname
sv_hibernate_when_empty {{SERVER_HIBERNATE}} // Disable server hibernation
// Passwords // Passwords
rcon_password "{{SERVER_RCON_PW}}" // Set rcon password rcon_password "{{SERVER_RCON_PW}}" // Set rcon password
sv_password "{{SERVER_PW}}" // Set server password sv_password "{{SERVER_PW}}" // Set server password
// CSTV // CSTV
sv_hibernate_postgame_delay 180 // Delay server hibernation after all clients disconnect sv_hibernate_postgame_delay 30 // Delay server hibernation after all clients disconnect
tv_allow_camera_man 1 // Auto director allows spectators to become camera man tv_allow_camera_man 1 // Auto director allows spectators to become camera man
tv_allow_static_shots 1 // Auto director uses fixed level cameras for shots tv_allow_static_shots 1 // Auto director uses fixed level cameras for shots
tv_autorecord {{TV_AUTORECORD}} // Automatically records all games as CSTV demos: 0=off, 1=on. tv_autorecord {{TV_AUTORECORD}} // Automatically records all games as CSTV demos: 0=off, 1=on.
tv_chatgroupsize 0 // Set the default chat group size tv_chatgroupsize 0 // Set the default chat group size
tv_chattimelimit 8 // Limits spectators to chat only every n seconds tv_chattimelimit 8 // Limits spectators to chat only every n seconds
tv_debug 0 // CSTV debug info. tv_debug 0 // CSTV debug info.
tv_delay {{TV_DELAY}} // CSTV broadcast delay in seconds tv_delay {{TV_DELAY}} // CSTV broadcast delay in seconds
tv_delaymapchange 1 // Delays map change until broadcast is complete tv_delaymapchange 1 // Delays map change until broadcast is complete
tv_deltacache 2 // Enable delta entity bit stream cache tv_deltacache 2 // Enable delta entity bit stream cache
tv_dispatchmode 1 // Dispatch clients to relay proxies: 0=never, 1=if appropriate, 2=always tv_dispatchmode 1 // Dispatch clients to relay proxies: 0=never, 1=if appropriate, 2=always
tv_enable {{TV_ENABLE}} // Activates CSTV on server: 0=off, 1=on. tv_enable {{TV_ENABLE}} // Activates CSTV on server: 0=off, 1=on.
tv_maxclients 10 // Maximum client number on CSTV server. tv_maxclients 10 // Maximum client number on CSTV server.
tv_maxrate {{TV_MAXRATE}} // Max CSTV spectator bandwidth rate allowed, 0 == unlimited tv_maxrate {{TV_MAXRATE}} // Max CSTV spectator bandwidth rate allowed, 0 == unlimited
tv_name "{{SERVER_HOSTNAME}} CSTV" // CSTV host name tv_name "{{SERVER_HOSTNAME}} CSTV" // CSTV host name
tv_overridemaster 0 // Overrides the CSTV master root address. tv_overridemaster 0 // Overrides the CSTV master root address.
tv_port {{TV_PORT}} // Host SourceTV port tv_port {{TV_PORT}} // Host SourceTV port
tv_password "{{TV_PW}}" // CSTV password for clients tv_password "{{TV_PW}}" // CSTV password for clients
tv_relaypassword "{{TV_RELAY_PW}}" // CSTV password for relay proxies tv_relaypassword "{{TV_RELAY_PW}}" // CSTV password for relay proxies
tv_relayvoice 1 // Relay voice data: 0=off, 1=on tv_relayvoice 1 // Relay voice data: 0=off, 1=on
tv_timeout 60 // CSTV connection timeout in seconds. tv_timeout 60 // CSTV connection timeout in seconds.
tv_title "{{SERVER_HOSTNAME}} CSTV" // Set title for CSTV spectator UI tv_title "{{SERVER_HOSTNAME}} CSTV" // Set title for CSTV spectator UI
tv_transmitall 1 // Transmit all entities (not only director view) tv_transmitall 1 // Transmit all entities (not only director view)

View file

@ -8,6 +8,7 @@ services:
- SRCDS_TOKEN # Game Server Token from https://steamcommunity.com/dev/managegameservers - SRCDS_TOKEN # Game Server Token from https://steamcommunity.com/dev/managegameservers
- CS2_SERVERNAME=changeme # (Set the visible name for your private server) - CS2_SERVERNAME=changeme # (Set the visible name for your private server)
- CS2_PORT=27015 # (CS2 server listen port tcp_udp) - CS2_PORT=27015 # (CS2 server listen port tcp_udp)
- CS2_SERVER_HIBERNATE=0 # (Put server in a low CPU state when there are no players. 0 - hibernation disabled, 1 - hibernation enabled)
- CS2_RCON_PORT # (Optional, use a simple TCP proxy to have RCON listen on an alternative port. Useful for services like AWS Fargate which do not support mixed protocol ports.) - CS2_RCON_PORT # (Optional, use a simple TCP proxy to have RCON listen on an alternative port. Useful for services like AWS Fargate which do not support mixed protocol ports.)
- CS2_LAN=0 # (0 - LAN mode disabled, 1 - LAN Mode enabled) - CS2_LAN=0 # (0 - LAN mode disabled, 1 - LAN Mode enabled)
- CS2_RCONPW=changeme # (RCON password) - CS2_RCONPW=changeme # (RCON password)