Releases: heyvaldemar/blackmesa-server-docker-compose
Releases · heyvaldemar/blackmesa-server-docker-compose
Release list
v1.2.0
Added
BLACKMESA_SERVER_TIMEZONE: the game gets the household clock too. Every timestamp this server writes — a ban, a join, the crash it leaves behind — is read next to a log line from somewhere else, and two clocks turn that into arithmetic. Six of this fleet's eleven game templates already carried the setting and this one did not. It defaults to UTC, which is now a choice rather than an accident, and the image carries the whole tz database so any zone name works. Measured against the pinned image: unset givesUTC, set gives the zone asked for.
Upgrading
git pull (or ./update.sh), then docker compose up -d. Nothing changes unless you set the new variable: the default is UTC, which is what the container did before.
Full history in CHANGELOG.md.
v1.1.0
Added
update.sh: move between release tags on purpose. It updates to the latest release (a combination this repository's CI has booted and smoke-tested), refuses to cross a major version unattended, refuses to run over local changes, and names any new required variable before anything has moved.--dry-runsays what would happen.
Upgrading
git pull (or ./update.sh). Nothing running changes: this release adds or extends the update script and touches no image pin.
Full history in CHANGELOG.md.
v1.0.0
Added
- A Black Mesa deathmatch server, image pinned by digest as an
interpolation default, sogit pulldelivers the build this repository has
tested and.envoverrides survive it. The tag islatestbecause upstream
publishes no version numbers: the digest is the version. - A health check that matches the game exactly rather than as a substring.
Two commands run in the container:srcds_linux, the game, andsrcds_run,
its restart wrapper. A substring search is satisfied by either, so the game
can crash and leave the wrapper standing while the container reports
healthy.tests/e2e-healthcheck.shproves the distinction against a real
container, with no game download. - A map that cannot drift. Time and frag limits of zero and a one-entry
rotation mounted at both paths srcds may read it from, because one copy in
the wrong place is a rotation that silently does not exist. - Free-for-all pinned in server.cfg. The image's own cfg ships
mp_teamplay 1, which flipped a running server into team mode mid-session. - A log that is flushed per line and stays one file. The engine buffers
and flushes only on close, so a quiet server reports zero bytes while people
are talking; and server.cfg is exec'd at every map load, so a second
log onopened a fresh file each time — 141 in one day. - The published port equal to the port the server binds, and measured
limits: a deathmatch server peaked at 865 MB, and the 3 GB ceiling exists
so a leak here cannot get some other container OOM-killed in its place. - Deployment Verification CI: shell and workflow linting, a Trivy scan of
the pinned image, a daily freshness check on the pin, and the health-check
suite. It deliberately does not boot the game: the image is 16 GB
compressed, and a test that pretends a runner can hold it never runs.
Upgrading
First release: nothing to upgrade from. git clone, copy .env.example to .env, and docker compose up -d.
Full history in CHANGELOG.md.