Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/spezifanta/hldm-docker
Half Life Deatchmatch Server as Docker Image
https://github.com/spezifanta/hldm-docker
docker docker-image gameserver goldsrc half-life hldm hlds steam
Last synced: 3 months ago
JSON representation
Half Life Deatchmatch Server as Docker Image
- Host: GitHub
- URL: https://github.com/spezifanta/hldm-docker
- Owner: spezifanta
- License: mit
- Created: 2018-05-28T21:02:18.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-03-27T15:34:13.000Z (8 months ago)
- Last Synced: 2024-04-08T03:11:41.912Z (7 months ago)
- Topics: docker, docker-image, gameserver, goldsrc, half-life, hldm, hlds, steam
- Language: Pawn
- Homepage:
- Size: 5.03 MB
- Stars: 34
- Watchers: 4
- Forks: 15
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- RAWR - hldm-docker - Half-Life Deathmatch Server as Docker Image. (Gaming / Game Servers - Docker)
README
![Half-Life](/media/banner.jpg)
# Half-Life Deathmatch Server as Docker image
Probably the fastest and easiest way to set up an old-school Half-Life Deathmatch Dedicated Server (HLDS).
You don't need to know anything about Linux or HLDS to start a server. You just need Docker and this image.## Quick Start
Start a new server by running:
```
docker run -it --rm -d -p27015:27015 -p27015:27015/udp spezifanta/hldm
```Change the player slot size, map or `rcon_password` by running:
```
docker run -it --rm -d --name hldm -p27015:27015 -p27015:27015/udp spezifanta/hldm +map crossfire +maxplayers 12 +rcon_password SECRET_PASSWORD
```> **Note:** Any [server config command](http://sr-team.clan.su/K_stat/hlcommandsfull.html) can be passed by using `+`. But it has to follow after the image name `spezifanta/hldm`.
The following default maps are available:
- boot_camp
- bounce
- crossfire
- datacore
- frenzy
- gasworks
- lambda_bunker
- rapidcore
- snark_pit
- stalkyard
- subtransit
- undertow## Advanced
In order to use a custom content like maps or server config file, create a directory named `gamedir` and place your files there.
For an example of a custom `server.cfg` run:```
mkdir gamedir && echo 'echo "Executing custom server.cfg"' > gamedir/server.cfg
```Add your settings to the `server.cfg` and mount the directory as volume by running:
```
docker run -it --rm -d -p27015:27015 -p27015:27015/udp -v gamedir:/gamedir spezifanta/hldm
```You should see `Executing custom server.cfg` in the server log when starting the server.
## About this Docker image
This image uses the latest version of [Half-life](https://store.steampowered.com/app/70/HalfLife), which can be installed via [SteamCMD](https://developer.valvesoftware.com/wiki/SteamCMD)
and patched versions of:- [Metamod v1.20](http://metamod.org/)
- [Stripper2 v1.0.0](http://hpb-bot.bots-united.com/stripper2.html)Patches: https://github.com/spezifanta/metamod-p
## But why?
### Speed
Setting up a new HLDS from scratch can be a bit tedious because since a few years now SteamCMD will fail to download all the files on the first try.
The general workaround is just by retrying. And retrying, and retrying, and... :gun:. A more promising workaround is replacing certain files and forcing a redownload. But even this can fail sometimes.
Anyway, just searching for the download link of SteamCMD takes longer than just copying & pasting the Docker `run` command from above (yes, this assumes you have Docker installed. But why haven't you already?).Also, there are a couple of server commands, which need tweaking, and plugins, that need to be installed and configured.
So this image saves a lot of time.
### Sustainability
Half-Life is more than 20 years old now. Many major community pages and tutorials are offline. I am not saying, that Half-Life will die, but the sites with the step by step instructions, workarounds and plugins might not be around for ever.
Furthermore not everybody, who likes playing Half-Life and wants to set up a server, is a Linux geek. You don't need to know anything about Linux or HLDS to start a server by using this image.
That's why I build this image.I want HLDM to live forever!
### Other reasons
- In most cases, you have to wrap `hlds_run` anyway by using something like `screen`, `tmux`, `wmux` or `systemd`, because the server will exit as soon as you close your terminal. So why not add Docker to that list.
- Decoupling. To set up a HLDS you need to install 32bit libraries. On a 64bit system, this is somewhat less than perfect. On a company PC, you might need extra permissions to do so. With Docker on the other hand... I hope you get my point ;).
- Scalability.## License
MIT
## Test Server
Connect to `steamcalculator.com:27015` to give it a try.