Skip to content

Releases: heyvaldemar/jediacademy-server-docker-compose

v1.2.0

Choose a tag to compare

@heyvaldemar heyvaldemar released this 22 Sep 14:09

Added

  • JKA_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 gives UTC, 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

Choose a tag to compare

@heyvaldemar heyvaldemar released this 07 Sep 20:39

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-run says 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

Choose a tag to compare

@heyvaldemar heyvaldemar released this 07 Sep 02:27

Added

  • A Jedi Academy FFA server with JA+, image pinned by digest as an
    interpolation default, so git pull delivers the build this repository has
    tested and .env overrides survive it.
  • The rcon password rendered into the config at start, never kept in it.
    idTech3 reads it from server.cfg and nowhere else, and that file is
    tracked; the shipped copy holds a placeholder that the compose command fills
    from .env on the way in. CI checks that the placeholder is still there and
    that the render works. The config this descends from once carried a real
    password, and it left the machine before anyone noticed.
  • A health check with no pgrep -f fallback. That branch could only ever
    succeed, because the shell running the check carries the pattern in its own
    command line — measured: pgrep -f ZZZ_no_such_process exits 0 in this
    container. One exact match on linuxjampded replaces it, and
    tests/e2e-healthcheck.sh proves the pgrep -f form stays green with the
    game dead.
  • The game files supplied by their owner. assets0-3.pk3 go in
    assets/; without them the image's start script exits by design, and CI
    starts the real image with an empty directory to prove it refuses.
  • Measured limits. Resident 51 MB; the 2.4 GB once recorded as a peak was
    page cache, which a limit reclaims rather than kills.
  • Deployment Verification CI: shell and workflow linting, a Trivy scan of
    the pinned image, a daily freshness check on the pin, the health-check
    suite, the refusal-without-assets proof and the render proof.

Upgrading

First release: nothing to upgrade from. git clone, copy .env.example to .env, create the external volume where the compose file says so, and docker compose up -d.

Full history in CHANGELOG.md.