If you like to host your own half life dedicated servers on linux, this software can automatically deploy multiple servers each with their own config and plugins using Docker with LinuxGSM docker images. LinuxGSM is the underlying server management software, this just set's everything up with shell scripts. Perfect for using in conjunction with AWS's Spot Instances.
- Docker
- AWS Cli (For S3 config)
The following config files are supported and will be copied over to the correct directories.
Place your config files in the config
directory (create it if one doesn't exit). For example: config/server1
.
- LinuxGSM
- lgsm.cfg
- Server
- mapcycle.txt
- motd.txt
- plugins.ini
- server.cfg
- AMX Mod X
- users.ini (admins)
- FoxBot (TFC)
- botnames.cfg
- foxbot.cfg
You can create multiple directories:
- config
- server1
- server.cfg
- users.ini
- server2
- server.cfg
- users.ini
You can set CONFIG_SETUP=auto
variable in your .env
file to enable automatic download of your config files from an s3 bucket.
Supported files: .zip
, or .tar.gz
In order to download from S3 you must set the appropriate AWS Cli credentials in your .env
as well.
Note: This script will run on the host machine. Which means AWS Cli must be installed.
# Manual or Auto
CONFIG_SETUP=auto
The directory structure of the file should mirror our root directory:
- config
- server1
- server.cfg
- plugins.ini
- plugins
- server1
- map_vote.amxx
All srcds instances run on docker and defined in the docker-compose.yml
. You can define multiple instances on different ports to run on the same host.
You can browse all the supported LinuxGSM docker images.
Take note of the container name as that's what is passed when using the make
commands.
cstrike:
image: gameservermanagers/gameserver:cstrike
...
dod:
image: gameservermanagers/gameserver:dod
...
tfc:
image: gameservermanagers/gameserver:tfc
...
Each server should have their own server-example.sh
script (minus the example).
make install CONTAINER=tfc1 GAME=tfc CONFIG=classic SCRIPT=server-example.sh
Utilize the Makefile included to install configs and plugins.
Pass your continer, game and config folder name to the make commands:
CONTAINER=tfc
GAME=tfc
CONFIG=classic
Run the following commands in your root directory:
# Metamod
make install-metamod CONTAINER=tfc GAME=tfc CONFIG=classic
# AMX Mod X
make install-amxmod CONTAINER=tfc GAME=tfc CONFIG=classic
# FoxBoT (TFC)
make install-foxbot CONTAINER=tfc
# Copy your configs
make setup CONTAINER=tfc1 GAME=tfc CONFIG=classic
Or install everything:
make install-all
Just start the docker instances, the servers will start up.
docker-compose up -d;
The idea here is when launching a spot instance for the first tiem, pull this repo, copy your configs to the appropriate locations and run the make commands through docker.
See our contributing guidelines.
See our licensing information.