Skip to content

feat(ark-survival-evolved)!: run the public hermsi/ark-server image - #58

Merged
ValgulNecron merged 2 commits into
mainfrom
feat/ark-evolved-hermsi-image
Nov 11, 2026
Merged

ValgulNecron merged 2 commits into
mainfrom
feat/ark-evolved-hermsi-image

Conversation

@ValgulNecron

@ValgulNecron ValgulNecron commented Nov 11, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Moves ARK: Survival Evolved off the Gameplane-built image (ghcr.io/gameplanepanel/gameplane/ark-survival-evolved) onto the maintained community image hermsi/ark-server, pinned by digest (latest-1794213856, sha256:ce291990…44bf5). This follows the maintainer rule to use a maintained public image when one exists and build our own only when required. In spec 015 (OPEN-DECISIONS §10) ARK Evolved got a custom build because no community image looked maintained. That has changed: the image is rebuilt weekly (last 2026-11-09) and has about 340k pulls.

Module version 2.0.0 (breaking):

  • Storage moves from /data to /app, the image's data root. The install moves to /app/server, and saves to /app/server/ShooterGame/Saved.
  • Cluster transfers get their own extra volume, cluster (1Gi), mounted at /cluster. The image sets -ClusterDirOverride=/cluster.
  • The image starts as root and drops to steam (UID/GID 1000) with gosu. security therefore keeps only fsGroup: 1000, the same as Palworld. ARK no longer runs when the operator has enforceRestricted: true.
  • rcon.passwordEnv is ADMIN_PASSWORD. The RCON_PASSWORD config key is removed because the operator manages the password, and MAP_NAME is renamed SERVER_MAP.
  • spec.env overrides these image defaults: SERVER_PASSWORD="" (the image default is YouShallNotPass), UPDATE_ON_START=true (keeps 1.x update-on-boot), PRE_UPDATE_BACKUP=false (Gameplane runs its own backups), and the four port variables.
  • Adds the raw UDP socket port raw 7778. It is always game port + 1, and the image documents it as required for clients.
  • The README has an "Upgrading from 1.x" section. Existing servers have to move their volume contents into server/, copy their cluster data to /cluster, and rename or remove the old config keys.

Follow-ups

  • In the main repo: remove containers/games/ark-survival-evolved and its images.yaml entry, update the two hand-run ARK e2e tests (waiting on maintainer sign-off), and bump the submodule after this PR merges.
  • Stale branch feat/ark-evolved-public-image has the same change with a wrong commit trailer and can be deleted.

Verification

validate modules CI checks the template against the image's real OCI config. I checked locally that both YAML files parse. No live cluster run yet.

🤖 Generated with Claude Code

Switch the module from the Gameplane-built image to the maintained
community image hermsi/ark-server, pinned by digest. Module 2.0.0.

- Volume moves from /data to /app (install in /app/server); cluster
  transfer data gets its own 1Gi volume at /cluster.
- Image starts as root and drops to UID 1000, so security keeps only
  fsGroup: 1000.
- RCON password env is ADMIN_PASSWORD; MAP_NAME becomes SERVER_MAP;
  RCON_PASSWORD config key removed (operator manages it).
- Expose the raw UDP socket port 7778.
- README documents the 1.x upgrade steps.

BREAKING CHANGE: existing servers must move their data into server/
and rename MAP_NAME to SERVER_MAP / drop RCON_PASSWORD.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Claude <noreply@anthropic.com>
@ValgulNecron ValgulNecron self-assigned this Nov 11, 2026
@coderabbitai

coderabbitai Bot commented Nov 11, 2026 •

Copy link
Copy Markdown

Important

  • Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 3f4cc155-b61e-47e5-80c4-a5f241e796a4
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

validate.py requires module.yaml and template spec.version in lockstep.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Claude <noreply@anthropic.com>
@ValgulNecron
ValgulNecron merged commit 33e1095 into main Nov 11, 2026
4 checks passed
Baylem pushed a commit to Baylem/Gameplane that referenced this pull request Nov 11, 2026
The ark-survival-evolved module now runs the community image
hermsi/ark-server (GameplanePanel/module#58), so stop building our own.

- Remove containers/games/ark-survival-evolved and its images.yaml
  matrix entry and README tree line.
- Point the two hand-run ARK e2e tests at hermsi/ark-server: mount
  /app instead of /data, ADMIN_PASSWORD instead of RCON_PASSWORD,
  SERVER_PASSWORD="" (image default would lock the bot out), raw UDP
  port 7778, and a /cluster extra volume for the cluster marker.
  Test edits signed off by valgul on 2026-11-11.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants