diff --git a/README.md b/README.md index 4041126..688076c 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,15 @@ CS2_BOT_QUOTA="" (Number of bots) CS2_BOT_QUOTA_MODE="" (fill, competitive) ``` +### CSTV/SourceTV + +```dockerfile +TV_ENABLE=1 (0 - disable, 1 - enable) +TV_PORT=27020 (SourceTV/CSTV port to bind to) +TV_AUTORECORD=0 (Automatically record all games as CSTV demos: 0=off, 1=on) +TV_RELAY_PW="changeme" (CSTV password for relay proxies) +``` + # Credits This container leans heavily on the work of [CM2Walki](https://github.com/CM2Walki/), especially his [SteamCMD](https://github.com/CM2Walki/steamcmd) container image. GG! diff --git a/bullseye/Dockerfile b/bullseye/Dockerfile index 15e44f2..058e90a 100644 --- a/bullseye/Dockerfile +++ b/bullseye/Dockerfile @@ -52,6 +52,10 @@ ENV CS2_SERVERNAME="cs2 private server" \ CS2_GAMETYPE=0 \ CS2_GAMEMODE=1 \ CS2_LAN=0 \ + TV_AUTORECORD=0 \ + TV_ENABLE=1 \ + TV_PORT=27020 \ + TV_RELAY_PW="changeme" \ CS2_ADDITIONAL_ARGS="" # Set permissions on STEAMAPPDIR diff --git a/bullseye/etc/entry.sh b/bullseye/etc/entry.sh index 09dbbc9..688fae6 100644 --- a/bullseye/etc/entry.sh +++ b/bullseye/etc/entry.sh @@ -14,10 +14,15 @@ ln -sfT ${STEAMCMDDIR}/linux64/steamclient.so ~/.steam/sdk64/steamclient.so # Install server.cfg cp /etc/server.cfg "${STEAMAPPDIR}"/game/csgo/cfg/server.cfg -sed -i -e "s/{{SERVER_HOSTNAME}}/${CS2_SERVERNAME}/g" "${STEAMAPPDIR}"/game/csgo/cfg/server.cfg \ - -e "s/{{SERVER_PW}}/${CS2_PW}/g" "${STEAMAPPDIR}"/game/csgo/cfg/server.cfg \ - -e "s/{{SERVER_RCON_PW}}/${CS2_RCONPW}/g" "${STEAMAPPDIR}"/game/csgo/cfg/server.cfg \ - -e "s/{{SERVER_LAN}}/${CS2_LAN}/g" "${STEAMAPPDIR}"/game/csgo/cfg/server.cfg +sed -i -e "s/{{SERVER_HOSTNAME}}/${CS2_SERVERNAME}/g" \ + -e "s/{{SERVER_PW}}/${CS2_PW}/g" \ + -e "s/{{SERVER_RCON_PW}}/${CS2_RCONPW}/g" \ + -e "s/{{SERVER_LAN}}/${CS2_LAN}/g" \ + -e "s/{{TV_ENABLE}}/${TV_ENABLE}/g" \ + -e "s/{{TV_PORT}}/${TV_PORT}/g" \ + -e "s/{{TV_AUTORECORD}}/${TV_AUTORECORD}/g" \ + -e "s/{{TV_RELAY_PW}}/${TV_RELAY_PW}/g" \ + "${STEAMAPPDIR}"/game/csgo/cfg/server.cfg # Rewrite Config Files diff --git a/bullseye/etc/server.cfg b/bullseye/etc/server.cfg index 8aa41f3..0c85c8e 100644 --- a/bullseye/etc/server.cfg +++ b/bullseye/etc/server.cfg @@ -1,9 +1,36 @@ // Server Defaults -hostname "{{SERVER_HOSTNAME}}" -sv_lan {{SERVER_LAN}} +hostname "{{SERVER_HOSTNAME}}" // Set server hostname +sv_lan {{SERVER_LAN}} // If a server is a LAN server there is no heartbeat, no Steam authentication, and no non-class C addresses // Passwords -rcon_password "{{SERVER_RCON_PW}}" -sv_password "{{SERVER_PW}}" +rcon_password "{{SERVER_RCON_PW}}" // Set rcon password +sv_password "{{SERVER_PW}}" // Set server password + +// CSTV + +sv_hibernate_postgame_delay 180 // Delay server hibernation after all clients disconnect + +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_autorecord {{TV_AUTORECORD}} // Automatically records all games as CSTV demos: 0=off, 1=on. +tv_chatgroupsize 0 // Set the default chat group size +tv_chattimelimit 8 // Limits spectators to chat only every n seconds +tv_debug 0 // CSTV debug info. +tv_delay 30 // CSTV broadcast delay in seconds +tv_delaymapchange 1 // Delays map change until broadcast is complete +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_enable {{TV_ENABLE}} // Activates CSTV on server: 0=off, 1=on. +tv_maxclients 10 // Maximum client number on CSTV server. +tv_maxrate 20000 // Max CSTV spectator bandwidth rate allowed, 0 == unlimited +tv_name "{{SERVER_HOSTNAME}} CSTV" // CSTV host name +tv_overridemaster 0 // Overrides the CSTV master root address. +tv_port {{TV_PORT}} // Host SourceTV port +tv_relaypassword "{{TV_RELAY_PW}}" // CSTV password for relay proxies +tv_relayvoice 1 // Relay voice data: 0=off, 1=on +tv_snapshotrate 24 // Snapshots broadcasted per second +tv_timeout 60 // CSTV connection timeout in seconds. +tv_title "{{SERVER_HOSTNAME}} CSTV" // Set title for CSTV spectator UI +tv_transmitall 1 // Transmit all entities (not only director view) diff --git a/examples/docker-compose.yml b/examples/docker-compose.yml index 894e81b..f0eab49 100644 --- a/examples/docker-compose.yml +++ b/examples/docker-compose.yml @@ -28,10 +28,16 @@ services: - CS2_BOT_DIFFICULTY # (0 - easy, 1 - normal, 2 - hard, 3 - expert) - CS2_BOT_QUOTA # (Number of bots) - CS2_BOT_QUOTA_MODE # (fill, competitive) + # TV + - TV_AUTORECORD=0 # Automatically records all games as CSTV demos: 0=off, 1=on. + - TV_ENABLE=1 # Activates CSTV on server: 0=off, 1=on. + - TV_PORT=27020 # Host SourceTV port + - TV_RELAY_PW=changeme # CSTV password for relay proxies volumes: - cs2:/home/steam/cs2-dedicated/ # (Change /mnt/cs2 according to your volume location) ports: - "27015:27015/tcp" # TCP - "27015:27015/udp" # UDP + - "27020:27020/udp" # UDP volumes: cs2: