Skip to content

v1.6.0 — Version pinning, OpenTTD, crash reasons

Choose a tag to compare

@Shakes63 Shakes63 released this 07 Aug 17:39
· 44 commits to main since this release

A version-control release: pin what your servers run — the game build, the Steam branch, or the Docker image itself — always from a dropdown of real published versions, never a guessed string. Plus OpenTTD as game #24, crash explanations, and a security pass.

Game-version pinning (12 games)

Pick the game version or branch a server runs, right in its Settings, with the default always "stable/latest" so existing servers are untouched:

  • Minecraft (Java) — every release + recent snapshots, live from the Mojang manifest.
  • OpenTTD — every release (incl. betas), live from OpenTTD's GitHub.
  • ATS / ETS2 / Life is Feudal: YO — the app's real Steam branches, live from SteamDB data (the truck sims expose per-version branches like 1.53.x).
  • 7 Days to Die stable/experimental · Enshrouded public/testing · Valheim stable/public-test · Palworld stable/beta-insider · V Rising current/legacy-1.0.x (Satisfactory's experimental toggle already existed).

Where a game genuinely can't be pinned (its image always installs the latest from Steam), the UI now says so explicitly instead of letting the image-tag picker masquerade as a version pin.

Docker image-tag pinning (all 24 games)

An advanced Image version card on every server: pin the game's Docker image to any published tag (Docker Hub and GHCR are queried live) — useful to roll back a bad image update. For Factorio and Terraria the tag is the game version; the card's per-game note explains exactly what a pin does and doesn't control on each game.

Crashed servers explain themselves

When a server dies, its Overview now shows why: the container's exit code (or OOM kill) plus the last log lines, in a copyable banner — captured for unexpected exits, wedged starts, and failed launches alike, and cleared on the next clean start. A bad image pin now reads "exited with code 1: UnsupportedClassVersionError…" instead of a bare Crashed badge.

OpenTTD (game #24)

Full lifecycle on the ich777 image: create → install → start with readiness detection, backups, schedules, player-count via the game port, and the full openttd.cfg catalog (rendered fresh each start across its three config files, passwords kept out of the world-readable one).

Palworld

  • Palworld (Wine): 25 → 111 settings — full coverage of every variable the ripps818 image actually renders, byte-identical env for existing servers. Community contribution by @SCSIExpress (#15) — thank you!
  • Wine servers can now opt into game-file updates (ALWAYS_UPDATE_ON_START in the Version tab — previously they were silently stranded on their installed build).
  • A curated "Popular server mods" panel in the Mods tab (PalDefender link, UE4SS guidance), since Palworld has no browsable mod store for dedicated servers.

Fixes & hardening

  • Unraid first-boot fix: a blank PUBLIC_BASE_URL field (Unraid passes blanks as empty strings) no longer crashes the container; scheme-less values like 10.0.0.5:8970 now work too. Empty env vars are treated as unset across the board. Thanks @kevinduong for the report (#6).
  • Dependency security pass: Next.js → 15.5.21 (DoS/SSRF advisories), plus patched postcss, sharp, and socket.io-parser — clearing every high-severity audit finding.
  • The runtime image no longer ships the (unused) npm CLI — removing its vulnerable bundled node-tar and shrinking the attack surface.
  • OpenTTD's Overview no longer shows phantom Query/RCON/Mods rows.

Upgrading

Standard image update — no manual steps. All new version controls default to the previous behavior, so nothing changes until you pin something.