Skip to content

Commit

Permalink
Merge pull request #41 from joedwards32/steamtv_support
Browse files Browse the repository at this point in the history
Basic SourceTV/GOTV support
  • Loading branch information
joedwards32 authored Oct 26, 2023
2 parents 746b4e1 + 5c4c0f7 commit ab9070b
Show file tree
Hide file tree
Showing 5 changed files with 59 additions and 8 deletions.
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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!
4 changes: 4 additions & 0 deletions bullseye/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
13 changes: 9 additions & 4 deletions bullseye/etc/entry.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
35 changes: 31 additions & 4 deletions bullseye/etc/server.cfg
Original file line number Diff line number Diff line change
@@ -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)
6 changes: 6 additions & 0 deletions examples/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:

0 comments on commit ab9070b

Please sign in to comment.