This is the project used to configure the Planet KiF Counter Strike:Global Offensive server. See https://planet-kif.de for more details, in particular how to set up a server in AWS and how to manage it.
This project covers the "userspace" of such a server, in particular the configuration and customization of CS.
Everything that gets modified within the repository will be copied to the server automatically, so there is no need in working with the files on the server itself. A Github action takes care of the copy job. See file .github/workflows/deploy.yml
Quite simple:
- install a Linux distribution on your machine. We prefer a Debian based environment, therefore some of the scripts/config's/docs might be depending on this. You can use an AWS instance for this, but this repository is independent of that and you may use an old school hosting server as well. You will need SSH access.
- install
steamcmd
using your distros package manager. See docs/setup - install CSGO using
steamcmd
into a folder calledcsgosv
in the homedirectory of a user, e.g.home/ubuntu/csgosv
Not into/usr/local/...
or some other shared folder.
See docs/setup - fork the project
- add the list of secrets given below to your new Github project (or organization if that fits)
- execute the Github action, either by pushing anything to your new repo or by starting it in the Github UI. If everything went well, then you will find some scripts in a
bin
directory and a few config files were created/modified. - To make the CSGO server start automatically and to try an update every night add the following lines to the users crontab. To do so log in and type
crontab -e
. Validate this usingcrontab -l
@reboot /home/ubuntu/bin/csctrl start
30 5 * * * /home/ubuntu/bin/csctrl upgrade
If you restart the instance now (sudo shutdown -r now
), then the server should start the CSGO server during its startup.
CSGO_HOST
The hostname (or ip (not encouraged)) of your instance, e.g.cs.planet-kif.de
CSGO_KEY
The SSH private key used to connect to the server. The copy action will use this for arsync
, for example. You will need to add the corresponding public key to the Linux machine user running the CS server.CSGO_USERNAME
The username of the user, where you installed the CSGO server to. For exampleubuntu
with its home directory in/home/ubuntu
RCON_PASSWORD
The CS server will use this RCON password for remote administration using the in-game console.SERVER_PASSWORD
Clients/players that want to connect to the CSGO server will need this password to connect.~~SLACK_INFORMER_WEBHOOK
This webhook will be used to inform a Slack channel of update problems.SLACK_WEBHOOK_URL
This webhook will be used by the Github deployment action to inform a Slack channel of the job's result.NOTIFICATION_WEBHOOK
This webhook will be used by the Github deployment action to inform a Discord channel of the job's result.STEAM_ACCOUNT
The steam account the CSGO server is associated to.STEAM_WEBAPI_AUTHKEY
To be able to use Steam Workshop maps you will need to provide a WebAPI key. See docs/workshopSTEAM_WORKSHOP_COLLECTION_ID
The server will use the map collection on the Steam Workshop defined by this id. See docs/workshop
You may use Slack instead of Discord to receive all the notifications in a channel. Simply provide the secrets/webhooks above and de-uncomment the Slack paragraph in the Github Action definition ('.github/workflows/deploy.yml`).