Code Monkey home page Code Monkey logo

timche / docker-csgo Goto Github PK

View Code? Open in Web Editor NEW
191.0 2.0 28.0 258 KB

Counter-Strike: Global Offensive (CS:GO) Dedicated Server with automated/manual updating and optional SourceMod and PugSetup/PracticeMode integrations

Home Page: https://hub.docker.com/r/timche/csgo

License: MIT License

Dockerfile 6.26% Shell 67.84% TypeScript 25.89%
csgo server docker dedicated-server counter-strike counter-strike-global-offensive docker-image docker-csgo docker-csgoserver

docker-csgo's Introduction

docker-csgo

GitHub CI Docker Image Version Docker Image Size Docker Pulls Docker Stars

Counter-Strike: Global Offensive (CS:GO) Dedicated Server with automated/manual updating and optional SourceMod and PugSetup/PracticeMode integrations

ℹ️ Run your CS:GO server on Hetzner Cloud for as low as €6.37/months with 2 vCPUs, 4 GB RAM, 40 GB storage and great performance (low sv/var)! Use my referral link to receive €20 cloud credits for free as soon as you sign up!

Table of Contents

How to Use This Image

$ docker run \
  -v=csgo:/home/csgo/server \
  --net=host \
  timche/csgo

This is a bare minimum example and the server will be:

To configure the server with more advanced settings, set environment variables.

Image Variants

Each variant refers to a tag, e.g. timche/csgo:<tag>.

Vanilla CS:GO server.

Vanilla CS:GO server with untouched Metamod:Source and SourceMod.

Vanilla CS:GO server with untouched Metamod:Source, SourceMod, PugSetup and PracticeMode (by splewis).

Environment Variables

General

CSGO_GSLT

Default: None

Your Game Server Login Token (GSLT) if you want to run the server on the internet.

Sets +sv_setsteamaccount in srcds_run parameters.

CSGO_WS_API_KEY

Default: None

Your Steam Web API Key to download workshop maps.

Sets -authkey in srcds_run parameters.

CSGO_IP

Default: 0.0.0.0

Internet IP the server is accessible from. In most cases the default value is sufficient, but if you want to run a GOTV server or have issues connecting to the server, setting the IP can help.

Sets +ip in srcds_run parameters.

CSGO_PORT

Default: 27015

Port the server is listening to.

Sets -port in srcds_run parameters.

CSGO_MAP

Default: de_dust2

Start the server with a specific map.

Sets +map in srcds_run parameters.

CSGO_MAX_PLAYERS

Default: 16

Maximum players allowed to join the server.

Sets -maxplayers_override in srcds_run parameters.

CSGO_HOSTNAME

Default: Counter-Strike: Global Offensive

The server name. It can't contain spaces, so if you need a server name with spaces, set hostname in a config instead, e.g. server.cfg.

Sets +hostname in srcds_run parameters.

CSGO_RCON_PW

Default: changeme

RCON password to administrate the server.

Sets +rcon_password in srcds_run parameters.

CSGO_PW

Default: None

Password to join the server.

Sets +sv_password in srcds_run parameters.

CSGO_TICKRATE

Default: 128

Server tick rate which can be 64 or 128. The default value gives the best game experience, but also requires most server hardware resources.

Sets -tickrate in srcds_run parameters.

CSGO_GAME_TYPE

Default: 0 (Competitive)

Game type.

Sets +game_type in srcds_run parameters.

CSGO_GAME_MODE

Default: 1

Game mode.

Sets +game_mode in srcds_run parameters.

CSGO_MAP_GROUP

Default: mg_active

Map group.

Sets +mapgroup in srcds_run parameters.

CSGO_TV_ENABLE

Default: false

Enable GOTV. Can be enabled with true.

CSGO_TV_NAME

Default: GOTV

Set GOTV name.

CSGO_TV_PASSWORD

Default: None

Set GOTV password.

CSGO_TV_DELAY

Default: 45

Set GOTV broadcast delay in seconds.

CSGO_TV_PORT

Default: 27020

Set GOTV port.

CSGO_TV_DELAYMAPCHANGE

Default: 1

Delay the map change on game server until rest of buffered game has been broadcasted.

CSGO_TV_DELTACACHE

Default: 2

CSGO_TV_DISPATCHMODE

Default: 1

CSGO_TV_MAXCLIENTS

Default: 10

Maximum client number for GOTV.

CSGO_TV_MAXRATE

Default: 0

Maximum bandwidth spend per client in bytes/second.

CSGO_TV_OVERRIDEMASTER

Default: 0

CSGO_TV_SNAPSHOTRATE

Default: 128

World snapshots broadcasted per second by GOTV.

CSGO_TV_TIMEOUT

Default: 60

CSGO_TV_TRANSMITALL

Default: 1

By default entities and events outside of the auto-director view are removed from GOTV broadcasts to save bandwidth. If tv_transmitall is enabled, the whole game is transmitted and spectators can switch their view to any player they want. This option increases bandwidth requirement per spectator client by factor 2 to 3.

CSGO_FORCE_NETSETTINGS

Default: false

Force client netsettings to highest rate (786432), cmdrate (128) and updaterate (128). This ensures optimal gameplay experience. Requires 128 tick rate.

Sets +sv_minrate, +sv_mincmdrate and +sv_minupdaterate in srcds parameters.

CSGO_PARAMS

Additional srcds_run parameters.

CSGO_DISABLE_BOTS

Default: false

Disable bots completely. Can be enabled with true.

This is not setting bot_quota to 0, because it's buggy and still spawns bots when players are for example disconnecting or switching sides. This is also not setting -nobots parameter, because it's also buggy and causes radar bugs with smokes. This simply removes bot profile files, so the server can't spawn any bots as it can't find an appropriate difficulty profile. It just works™. Bots in PracticeMode still work though.

CSGO_CUSTOM_FILES_DIR

Default: /usr/csgo

Absolute path to a directory in the container containing custom server files. Changing this is not recommended in order to follow the documentation. See more at "Populating with Own Server Files".

SERVER_CONFIGS

Default: false

Add server configs for competitive 5v5, knife round, aim map and FFA deathmatch from csgo-server-configs. Can be enabled with true.

SERVER_CONFIGS_VERSION

Default: 1.1.0

csgo-server-configs version. Changing this will update/downgrade it on container start. Only works with SERVER_CONFIGS set to true.

Mods

METAMOD_VERSION

sourcemod, pug-practice image only.

Default: 1.11.0

Metamod:Source version running on the server. Changing this will update/downgrade it on container start.

METAMOD_BUILD

sourcemod, pug-practice image only.

Default: 1155

Metamod:Source build number running on the server. Changing this will update/downgrade it on container start. Build number must exist at version.

SOURCEMOD_VERSION

sourcemod, pug-practice image only.

Default: 1.11.0

SourceMod version running on the server. Changing this will update/downgrade it on container start.

SOURCEMOD_BUILD

sourcemod, pug-practice image only.

Default: 6964

SourceMod build number running on the server. Changing this will update/downgrade it on container start. Build number must exist at version.

SOURCEMOD_PLUGINS_DISABLED

sourcemod, pug-practice image only.

Default: None

List of comma-separated SourceMod plugins (e.g. nextmap,reservedslots,sounds) that are disabled. * disables all plugins. The plugins are moved into the disabled folder on container start. This is running before SOURCEMOD_PLUGINS_ENABLED.

SOURCEMOD_PLUGINS_ENABLED

sourcemod, pug-practice image only.

Default: None

List of comma-separated SourceMod plugins (e.g. mapchooser,randomcycle,rockthevote) that are enabled. * enables all plugins. The plugins are moved out of the disabled folder into plugins on container start. This is running after SOURCEMOD_PLUGINS_DISABLED.

SOURCEMOD_ADMINS

sourcemod, pug-practice image only.

List of comma-separated Steam IDs that are SourceMod admins (e.g. STEAM_0:0:123,STEAM_0:1:234) with z flag.

PugSetup/PracticeMode

PUGSETUP_VERSION

pug-practice image only.

Default: 2.0.7

PugSetup version running on the server. Changing this will update/downgrade it on container start.

PRACTICEMODE_VERSION

pug-practice image only.

Default: 1.3.4

PracticeMode version running on the server. Changing this will update/downgrade it on container start.

PUG_PRACTICE_MINIMAL_PLUGINS

pug-practice image only.

Default: false

Disables all SourceMod plugins and enables only minimal required plugins for optimal server performance:

  • admin-flatfile
  • botmimic
  • csutils
  • practicemode
  • pugsetup

Can be enabled with true. Additional plugins can be enabled with SOURCEMOD_PLUGINS_ENABLED.

PUGSETUP_PERMISSIONS

pug-practice image only.

Default: None

List of comma-separated PugSetup permissions (e.g. sm_10man=none,sm_setup=admin) that are set in addons/sourcemod/configs/pugsetup/permissions.cfg. Changes are applied on container start.

PUGSETUP_SETUPOPTIONS

pug-practice image only.

Default: None

List of comma-separated PugSetup configurations (e.g. maptype=current,record=0:0) that are set in addons/sourcemod/configs/pugsetup/setupoptions.cfg where the first value is the default value followed by an optional second value which is the display_setting value and a : delimiter in between them. Changes are applied on container start.

PUGSETUP_CVARS

pug-practice image only.

Default: None

List of comma-separated PugSetup configurations (e.g. sm_pugsetup_autosetup=1,sm_pugsetup_quick_restarts=1) that are set in cfg/sourcemod/pugsetup.cfg. Changes are applied on container start, but not on initial container start as pugsetup.cfg must be auto-generated first by the server.

PUGSETUP_DAMAGEPRINT_CVARS

pug-practice image only.

Default: None

List of comma-separated PugSetup configurations (e.g. sm_pugsetup_damageprint_auto_color=1,sm_pugsetup_damageprint_format={NAME} [{HEALTH}]: {DMG_TO}/{HITS_TO}) that are set in cfg/sourcemod/pugsetup_damageprint.cfg. Changes are applied on container start, but requires pugsetup_damageprinter plugin to be run first.

Other

VALIDATE_SERVER_FILES

Default: false

Validate and restore missing/fix broken server files (incl. Metamod, SourceMod, PugSetup and PracticeMode if you're using sourcemod or pug-practice images) on container start. Can be enabled with true.

This should especially be used whenever custom server files have been deleted and have overwritten files before, e.g. addons/sourcemod/configs/admins_simple.ini, and you want to restore the original files.

DEBUG

Default: false

Print all executed commands for better debugging.

Managing SourceMod Plugins

SourceMod plugins can be managed through the environment variables SOURCEMOD_PLUGINS_DISABLED and SOURCEMOD_PLUGINS_ENABLED where either selected (comma-separated list) or all (*) plugins are disabled/enabled. Plugins are disabled first and then enabled on container start.

Example

# .env
SOURCEMOD_PLUGINS_DISABLED="*"
SOURCEMOD_PLUGINS_ENABLED="admin-flatfile,antiflood,reservedslots"

This will disable all plugins and enable admin-flatfile, antiflood and reservedslots. Using * is useful to disable/enable all plugins without needing to specify them individually.

The pug-practice image also offers a PUG_PRACTICE_MINIMAL_PLUGINS environment variable that disables all SourceMod plugins and enables only minimal required plugins for PugSetup and PracticeMode for optimal server performance.

Populating with Own Server Files

The server can be populated with your own custom server files (e.g. configs and maps) through a mounted directory that has the same folder structure as the server csgo folder in order to add or overwrite the files at their respective paths. Deleted custom server files, which have been added or have overwritten files before, are also removed from the csgo folder. The directory must be mounted at CSGO_CUSTOM_FILES_DIR (default: /usr/csgo) and will be synced with the server csgo folder at each start of the container.

Note: See VALIDATE_SERVER_FILES on how to restore original files if they've been overwritten before but are removed now.

Example

Host

Custom server files in /home/user/custom-files:

custom-files
├── addons
│   └── sourcemod
│       └── configs
│           └── admins_simple.ini # Will be overwritten
└── cfg
    └── server.cfg # Will be added

Container

/home/user/custom-files mounted to CSGO_CUSTOM_FILES_DIR (default: /usr/csgo) in the container:

$ docker run \
  -v=csgo:/home/csgo/server \
  -v=/home/user/custom-files:/usr/csgo \ # Mount the custom files directory
  --net=host \
  timche/csgo

Updating the Server

Once the server has been installed, the container will check for a server update at every container start.

Automated (recommended)

csgo-updater, a companion Docker image, is automatically watching all containers running this image and will restart them when a server update is available and the server is empty. We recommend this to update your servers without hassle.

Example

$ docker run -d \
  --name csgo-updater \
  -v /var/run/docker.sock:/var/run/docker.sock \
  timche/csgo-updater

Manually

Restart the container with docker restart.

Example

Container named csgo:

$ docker restart csgo

docker-csgo's People

Contributors

djmattyg007 avatar eydr1en avatar gelmo avatar kyoto44 avatar sneak-it avatar timche avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

docker-csgo's Issues

server not starting

Installation command

docker run \
  -v=csgo:/home/csgo/server \
  -v=/home/jibin/csgo:/usr/csgo \
  --net=host \
  --env-file=csgo-env \
  timche/csgo:pug-practice

getting this error on installation

> Checking for custom files at "/usr/csgo" ...
> Found custom files, applying ...
+ rsync -rti /usr/csgo/ /home/csgo/server/csgo
.d..t...... ./
+ set +x
> Done
> Starting server ...
+ exec /home/csgo/server/srcds_run -game csgo -console -norestart -usercon -nobreakpad +ip 0.0.0.0 -port 27015 -tickrate 128 -maxplayers_override 16 +game_type 0 +game_mode 1 +mapgroup mg_active +map de_dust2 +rcon_password jibin +sv_setsteamaccount X +hostname sudo_server -authkey X +tv_enable 1 +tv_delaymapchange 1 +tv_delay 45 +tv_deltacache 2 +tv_dispatchmode 1 +tv_maxclients 10 +tv_maxrate 0 +tv_overridemaster 0 +tv_snapshotrate 128 +tv_timeout 60 +tv_transmitall 1
/home/csgo/server/srcds_run: 32: /home/csgo/server/srcds_run: pushd: not found
/home/csgo/server/srcds_run: 35: /home/csgo/server/srcds_run: popd: not found
[S_API] SteamAPI_Init(): SteamAPI_IsSteamRunning() did not locate a running instance of Steam.
dlopen failed trying to load:
/home/csgo/.steam/sdk32/steamclient.so
with error:
/home/csgo/.steam/sdk32/steamclient.so: cannot open shared object file: No such file or directory
[S_API] SteamAPI_Init(): Sys_LoadModule failed to load: /home/csgo/.steam/sdk32/steamclient.so
LD_LIBRARY_PATH=/home/csgo/server/bin:/home/csgo/server:/home/csgo/server/bin:
#
#Console initialized.
#Loading VPK file hashes for pure server operation.
#Loading VPK file hashes for pure server operation.
#Loading VPK file hashes for pure server operation.
#Loading VPK file hashes for pure server operation.
#Loading VPK file hashes for pure server operation.

Improve server `var`

Hey @timche

I was trying to use this image to build a CSGO server in a really good server, almost 4X better than the one that you described in your README file, using the command:

docker run -v=csgo:/home/csgo/server --net=host -e CSGO_GSLT='###' -e CSGO_PW='senha' -e CSGO_FORCE_NETSETTINGS='true' timche/csgo:pug-practice

And it worked fine, but when I opened the net_graph I saw that the server var was 0.020 or bigger

Here in Brazil we have the GamersClub, where the server var usually is 0.001

So my question is: do you know how we can improve this server var? Is it a problem with these config files? Or something that we can do in the server?

Documentation request: how to start csgo-practice-mode

Hello,

Thank you for developing those Docker images, it's really helpful.

I am able to run timche/csgo:pug-practice image and to connect the server. I didn't configure anything else than:

docker run \
  -v=csgo:/home/csgo/server \
  --net=host \
  timche/csgo

From there, I would like to know how to start csgo-practice-mode. I suppose that I have to either enter commands in the server terminal or change some configuration but I didn't find how. I tried to run .setup in a client console, but the command was not found.

Could you add some documentation about how to use csgo-practice-mode running your image?

Thank you!

Permission error

Trying to run it through docker-compose and I get this error also the host folder volume is bound to is empty after the installation.

  csgo:
    image: timche/csgo:sourcemod
    container_name: csgo-server
    restart: unless-stopped
    depends_on:
      - mariadb
    volumes:
      - ${HOME}/csgo-data:/home/csgo/server
      - ${HOME}/data:/usr/csgo
    environment:
      - CSGO_PW=xxxx
      - CSGO_RCON_PW=xxxx
      - CSGO_GSLT=xxxxx
      - CSGO_WS_API_KEY=xxxx
    ports:
      - "27015:27015/tcp"
      - "27015:27015/udp"
      - "27020:27020/udp"
Success! App '740' fully installed.
Work thread 'CHTTPClientThreadPool:1' is marked exited, but we could not immediately join prior to deleting -- proceeding without join
+ set +x
> Done
touch: cannot touch '/home/csgo/server/installed.lock': Permission denied
> Installing server ...
+ /home/csgo/Steam/steamcmd.sh +force_install_dir /home/csgo/server +login anonymous +app_update 740 validate +quit
WARNING: setlocale('en_US.UTF-8') failed, using locale: 'C'. International characters may not work.
Redirecting stderr to '/home/csgo/Steam/logs/stderr.txt'
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1652487999
-- type 'quit' to exit --
Loading Steam API...OK

Connecting anonymously to Steam Public...OK
Waiting for client config...OK

Fixing for CS2

Apparently, now, the only way to make this work is with populating with own files, since 740 still says it's CS:GO DS.

Server hibernating.

So I'm trying out the image tag timche/csgo:pug-practice and after installing the server shutdowns after couple of seconds with the last message "Server is hibernating":

#Console initialized.
#Loading VPK file hashes for pure server operation.
#Loading VPK file hashes for pure server operation.
#Loading VPK file hashes for pure server operation.
#Loading VPK file hashes for pure server operation.
#Loading VPK file hashes for pure server operation.
#Filesystem successfully switched to safe whitelist mode
#Game.dll loaded for "Counter-Strike: Global Offensive"
#CGameEventManager::AddListener: event 'server_pre_shutdown' unknown.
#CGameEventManager::AddListener: event 'game_newmap' unknown.
#CGameEventManager::AddListener: event 'finale_start' unknown.
#CGameEventManager::AddListener: event 'round_start' unknown.
#CGameEventManager::AddListener: event 'round_end' unknown.
#CGameEventManager::AddListener: event 'difficulty_changed' unknown.
#CGameEventManager::AddListener: event 'player_death' unknown.
#CGameEventManager::AddListener: event 'hltv_replay' unknown.
#CGameEventManager::AddListener: event 'player_connect' unknown.
#CGameEventManager::AddListener: event 'player_disconnect' unknown.
#GameTypes: missing mapgroupsSP entry for game type/mode (custom/custom).
#GameTypes: missing mapgroupsSP entry for game type/mode (cooperative/cooperative).
#GameTypes: missing mapgroupsSP entry for game type/mode (cooperative/coopmission).
Failed to load gamerulescvars.txt, game rules cvars might not be reported to management tools.
Server is hibernating

What's happening here? Tried out the debug as true, but I don't see anything on the logs.

Server command:

/home/csgo/server/srcds_run -game csgo -console -norestart -usercon -nobreakpad +ip 0.0.0.0 -port 27015 -tickrate 64 -maxplayers_override 16 +game_type 0 +game_mode 1 +mapgroup mg_active +map de_dust2 +rcon_password <password> +sv_setsteamaccount <token> +hostname Counter-Strike: Global Offensive -authkey <key>

Container stop in middle of the proccess

I've a trouble when i run the command docker run -v=csgo:/home/csgo/server timche/csgo

The container start proccess stop in

Setting breakpad minidump AppID = 730
RecordSteamInterfaceCreation (PID 1): SteamGameServer013 /
RecordSteamInterfaceCreation (PID 1): SteamUtils010 /
RecordSteamInterfaceCreation (PID 1): SteamNetworking006 /
RecordSteamInterfaceCreation (PID 1): SteamGameServerStats001 /
RecordSteamInterfaceCreation (PID 1): STEAMHTTP_INTERFACE_VERSION003 /
RecordSteamInterfaceCreation (PID 1): STEAMINVENTORY_INTERFACE_V003 /
RecordSteamInterfaceCreation (PID 1): STEAMUGC_INTERFACE_VERSION014 /
RecordSteamInterfaceCreation (PID 1): STEAMAPPS_INTERFACE_VERSION008 /
RecordSteamInterfaceCreation (PID 1): SteamUtils009 / Utils
RecordSteamInterfaceCreation (PID 1): SteamNetworkingSocketsSerialized004 /
RecordSteamInterfaceCreation (PID 1): SteamGameServer012 / GameServer
RecordSteamInterfaceCreation (PID 1): STEAMHTTP_INTERFACE_VERSION003 / HTTP
RecordSteamInterfaceCreation (PID 1): SteamGameServer013 /
RecordSteamInterfaceCreation (PID 1): SteamUtils010 /
RecordSteamInterfaceCreation (PID 1): SteamNetworking006 /
RecordSteamInterfaceCreation (PID 1): SteamGameServerStats001 /
RecordSteamInterfaceCreation (PID 1): STEAMHTTP_INTERFACE_VERSION003 /
RecordSteamInterfaceCreation (PID 1): STEAMINVENTORY_INTERFACE_V003 /
RecordSteamInterfaceCreation (PID 1): STEAMUGC_INTERFACE_VERSION014 /
RecordSteamInterfaceCreation (PID 1): STEAMAPPS_INTERFACE_VERSION008 /
RecordSteamInterfaceCreation (PID 1): SteamGameCoordinator001 /
RecordSteamInterfaceCreation (PID 1): SteamGameServer013 / GameServer
RecordSteamInterfaceCreation (PID 1): SteamUtils010 / Utils

Is this normal?

Banned by server

If i try to connect to the server, it says that my ip is banned by the server. The banned IP is the docker host IP, i removed the ip from the ban list, a week later it auto ban my IP again. Anyone encountered the same issue?

Cant launch Practice mode

Hi,

i currently struggeling to get the practice mode to work. Its greyed out in the setup menu. I followed the wiki and checked the file in /addons/sourcemod/configs. Its set to:

Overrides
{
"sm_practicemap" ""
"sm_prac" ""
}

So everyone can do everything there. Even i tried to set me as the owner and changing this to use the "g" command it didnt worked. It seems like the server is ignoring this file.
I created the container with following commands:

docker run --name=PUG_SERVER_2 -v="csgo:/home/csgo/server" -e CSGO_GSLT=MYTOKEN -e CSGO_MAX_PLAYER=12 -e CSGO_RCON_PW=Serverpw -e CSGO_PW=serverpw -e CSGO_GAME_TYPE=0 -e CSGO_GAME_MODE=1 -e CSGO_FORCE_NETSETTINGS=true -e CSGO_DISABLE_BOTS=false -e CSGO_HOSTNAME=gameservername -e CSGO_MAP=de_mirage -e CSGO_PORT=27016 -e CSGO_TV_ENABLE=true --net=host -d timche/csgo:pug-practice-2.3.1

(masked the sensitive parts here)

Any help will be appreciated im currently a little bit desperated :D

Re-enable bots

When disabling bots via CSGO_DISABLE_BOTS=true bot files get completly removed by the startup script:

if [ "${CSGO_DISABLE_BOTS-"false"}" = "true" ]; then
if [ -f "botchatter.db" ]; then
rm "botchatter.db"
fi
if [ -f "botprofilecoop.db" ]; then
rm "botprofilecoop.db"
fi
if [ -f "botprofile.db" ]; then
rm "botprofile.db"
fi
fi

It's impossible to re-enable bots again, but it would be possible when the script just renames the botfiles...

How to run CSGO

How to run CSGO normally instead of CS2, and want to build a personal server to play with friends

Server not starting

Logs:

csgo_1  | > Installing server ...
csgo_1  | + /home/csgo/Steam/steamcmd.sh +login anonymous +force_install_dir /home/csgo/server +app_update 740 validate +quit
csgo_1  | WARNING: setlocale('en_US.UTF-8') failed, using locale: 'C'. International characters may not work.
csgo_1  | Redirecting stderr to '/home/csgo/Steam/logs/stderr.txt'
csgo_1  | [  0%] Checking for available updates...
csgo_1  | [----] Downloading update (0 of 53165 KB)...
csgo_1  | [  0%] Downloading update (48 of 53165 KB)...
csgo_1  | [  0%] Downloading update (2776 of 53165 KB)...
csgo_1  | [  5%] Downloading update (6329 of 53165 KB)...
csgo_1  | [ 11%] Downloading update (9073 of 53165 KB)...
csgo_1  | [ 17%] Downloading update (11559 of 53165 KB)...
csgo_1  | [ 21%] Downloading update (14058 of 53165 KB)...
csgo_1  | [ 26%] Downloading update (16545 of 53165 KB)...
csgo_1  | [ 31%] Downloading update (19293 of 53165 KB)...
csgo_1  | [ 36%] Downloading update (21795 of 53165 KB)...
csgo_1  | [ 40%] Downloading update (24286 of 53165 KB)...
csgo_1  | [ 45%] Downloading update (26770 of 53165 KB)...
csgo_1  | [ 50%] Downloading update (29277 of 53165 KB)...
csgo_1  | [ 55%] Downloading update (32032 of 53165 KB)...
csgo_1  | [ 60%] Downloading update (34013 of 53165 KB)...
csgo_1  | [ 63%] Downloading update (35257 of 53165 KB)...
csgo_1  | [ 66%] Downloading update (36626 of 53165 KB)...
csgo_1  | [ 68%] Downloading update (37995 of 53165 KB)...
csgo_1  | [ 71%] Downloading update (39367 of 53165 KB)...
csgo_1  | [ 74%] Downloading update (40608 of 53165 KB)...
csgo_1  | [ 76%] Downloading update (41856 of 53165 KB)...
csgo_1  | [ 78%] Downloading update (43224 of 53165 KB)...
csgo_1  | [ 81%] Downloading update (44466 of 53165 KB)...
csgo_1  | [ 83%] Downloading update (45717 of 53165 KB)...
csgo_1  | [ 85%] Downloading update (46962 of 53165 KB)...
csgo_1  | [ 88%] Downloading update (48338 of 53165 KB)...
csgo_1  | [ 90%] Downloading update (49588 of 53165 KB)...
csgo_1  | [ 93%] Downloading update (50832 of 53165 KB)...
csgo_1  | [ 95%] Downloading update (52072 of 53165 KB)...
csgo_1  | [ 97%] Downloading update (53165 of 53165 KB)...
csgo_1  | [100%] Download complete.
csgo_1  | [----] Installing update...
csgo_1  | [----] Extracting package...
csgo_1  | [----] Extracting package...
csgo_1  | [----] Extracting package...
csgo_1  | [----] Extracting package...
csgo_1  | [----] Installing update...
csgo_1  | [----] Installing update...
csgo_1  | [----] Installing update...
csgo_1  | [----] Installing update...
csgo_1  | [----] Installing update...
csgo_1  | [----] Installing update...
csgo_1  | [----] Installing update...
csgo_1  | [----] Installing update...
csgo_1  | [----] Cleaning up...
csgo_1  | [----] Update complete, launching Steamcmd...
csgo_1  | WARNING: setlocale('en_US.UTF-8') failed, using locale: 'C'. International characters may not work.
csgo_1  | Redirecting stderr to '/home/csgo/Steam/logs/stderr.txt'
csgo_1  | [  0%] Checking for available updates...
csgo_1  | [----] Verifying installation...
csgo_1  | Steam Console Client (c) Valve Corporation
csgo_1  | -- type 'quit' to exit --
csgo_1  | Loading Steam API...OK.
csgo_1  |
csgo_1  | Connecting anonymously to Steam Public...Logged in OK
csgo_1  | Waiting for user info...OK
csgo_1  | ERROR! Failed to install app '740' (Disk write failure)
csgo_1  | > Installing server ...
csgo_1  | + /home/csgo/Steam/steamcmd.sh +login anonymous +force_install_dir /home/csgo/server +app_update 740 validate +quit
csgo_1  | WARNING: setlocale('en_US.UTF-8') failed, using locale: 'C'. International characters may not work.
csgo_1  | Redirecting stderr to '/home/csgo/Steam/logs/stderr.txt'
csgo_1  | [  0%] Checking for available updates...
csgo_1  | [----] Verifying installation...
csgo_1  | Steam Console Client (c) Valve Corporation
csgo_1  | -- type 'quit' to exit --
csgo_1  | Loading Steam API...OK.
csgo_1  |
csgo_1  | Connecting anonymously to Steam Public...Logged in OK
csgo_1  | Waiting for user info...OK
csgo_1  | ERROR! Failed to install app '740' (Disk write failure)
csgoleeticity_csgo_1 exited with code 8

Docker-Compose:

version: "3"
services:
  csgo:
    image: timche/csgo:pug-practice
    volumes:
      - /opt/csgo_leeticity/csgo:/home/csgo/server:rw
      - /opt/csgo_leeticity/csgo_custom:/usr/csgo:rw
    environment:
      - CSGO_PW=PASSWORD
      - CSGO_RCON_PW=PASSWORD
      - CSGO_TICKRATE=128
      - CSGO_FORCE_NETSETTINGS=true

Images vs. Containers

Hi, there. First of all thanks so much for putting in all the work and making it super easy to run a practicemode or pug server in minutes. It's much appreciated! ❤️

I'm no docker expert, but some of the design decisions surprise me. I suspect that I'm probably missing some information and that there are good reasons for this setup, but out of curiosity I want to ask some questions.

The way I got to know docker is, that you build images in a way so that the contents of it are very much defined and constant/immutable. So if I were to start the image docker-csgo:pug-practice it's already installed and runs the server in seconds with a concrete set of packages (steam client, metamod, sourcemod, practivemode, etc..). Configuration would be done over ENV_VARS just like now, but starting a container would not install or update the dependencies again.
The containers would be stateless and all customization are done by either volumes or building upon the image itself (inherting from it).

This definitely would have some drawbacks like a higher maintenance burden, but most of it could be automated.

What are the reasons that the installation of the server, plugins, etc. is part of the container's CMD (entry-point)? Couldn't we make this part of the image build process?

I only looked at the repo for about an hour, so I'm sorry if I missed very obvious reasons 😬

One more question: Where is the state (e.g saved nades, and so on) actually stored by steam? As far as I'm concerned this would definitely need to be put into a volume in order to make the container stateless.

Sincerely,
Max ✌️

Sourcemod server crashes on start

Since last csgo update, the image timche/csgo:sourcemod crashes on startup. (Already pulled for updates, but github actions failed on last build)

Container fails during startup

Starting server ...

  • exec /home/csgo/server/srcds_run -game csgo -console -norestart -usercon -nobreakpad +ip 0.0.0.0 -port 27015 -tickrate 128 -maxplayers_override 16 +game_type 0 +game_mode 1 +mapgroup mg_active +map de_dust2 +rcon_password REDACTED +sv_setsteamaccount REDACTED
    /home/csgo/server/srcds_run: 32: /home/csgo/server/srcds_run: pushd: not found
    /home/csgo/server/srcds_run: 35: /home/csgo/server/srcds_run: popd: not found
    [S_API] SteamAPI_Init(): SteamAPI_IsSteamRunning() did not locate a running instance of Steam.
    dlopen failed trying to load:
    /home/csgo/.steam/sdk32/steamclient.so
    with error:
    /home/csgo/.steam/sdk32/steamclient.so: cannot open shared object file: No such file or directory
    [S_API] SteamAPI_Init(): Sys_LoadModule failed to load: /home/csgo/.steam/sdk32/steamclient.so

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.