Skip to content

Releases: matserix/cubeherd

v0.3.2

Choose a tag to compare

@github-actions github-actions released this 19 Oct 23:09
ded2c2c

Fixes

  • The tab strip on a server page could be scrolled vertically. The 1 px negative margin that lets the active tab's underline overlay the strip's bottom border made the content one pixel taller than the strip. The line is now an inset shadow and the strip no longer scrolls vertically. On narrow screens it still scrolls sideways, as intended.

Upgrade

docker pull ghcr.io/matserix/cubeherd:0.3.2

Full Changelog: v0.3.1...v0.3.2

v0.3.1

Choose a tag to compare

@github-actions github-actions released this 19 Oct 22:24
89a7b96

Fixes

  • Odd gap on the left and top of the page. The stylesheet did not reset the browser's default 8 px body margin, so the sidebar and content sat 8 px away from the left and top edge and the whole page scrolled by 16 px. The layout now fills the window exactly.

Upgrade

docker pull ghcr.io/matserix/cubeherd:0.3.1

Full Changelog: v0.3.0...v0.3.1

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 19 Oct 22:09
a80c444

Highlights

  • Performance tab. Live TPS, tick time (MSPT), CPU and memory for each server, with a 10-minute history chart and a plain verdict (runs smoothly, getting slower, overloaded).
    • Values come over RCON, so no plugin is needed: neoforge tps / forge tps (per dimension), tps + mspt on Paper and Purpur, tps on Folia (per region), tick query on Vanilla, Fabric and Quilt from Minecraft 1.20.3 (with the 95th percentile).
    • It only queries while the tab is open and stores nothing. A paused server is never queried, because RCON would not wake it.
    • When a server is stuck in one very long tick and stops answering, the tab says so and keeps the last values on screen, dimmed.
    • spark itself does not answer over RCON; the tab points to spark profiler in game for deeper analysis.
  • Backup verification and health warnings.
    • Every archive is read back completely right after it is made. A damaged archive is flagged, never uploaded or pruned against, and fails the operation, so an update, restore or uninstall that depended on it stops instead of continuing without a safety net.
    • New "Check" column and "Check" button per archive. Remote-only archives are downloaded for the check and removed again.
    • A banner on top of the Backups tab warns when runs failed or stayed overdue (after two missed intervals, 25 hours or 3 days, your choice) and when the newest archive is damaged. Both options can be switched off per server.

Fixes

  • The first scheduled backup of a server never started. Without any earlier scheduled backup the next run was searched after "now"; the timer wakes slightly after the planned time, so the run always moved to tomorrow, again and again. The first run is now anchored at the server's creation. Servers that were stuck on "Next scheduled: tomorrow" back up after the next start of Cubeherd.
  • Wizard: "Next" on the resources step stayed disabled when you kept the suggested name.
  • Adopting an existing container no longer accepts the Minecraft EULA on your behalf.
  • The server list in the sidebar follows status changes without a reload.
  • Sign out is reachable on narrow screens.
  • Backups skip the regenerated .fabric server jars (about 75 MB per Fabric backup).
  • "Do not keep locally" is disabled without the upload switch, and the backup list says its size counts local archives only.
  • The downgrade warning in the update dialog only shows when the target version is older.
  • RCON error replies put the echoed command on its own line.
  • Mod and plugin search also reacts to pasted text.

Upgrade

docker pull ghcr.io/matserix/cubeherd:0.3.0

Full Changelog: v0.2.4...v0.3.0

v0.2.4

Choose a tag to compare

@github-actions github-actions released this 19 Oct 20:19
943f748

Fixes

  • The sidebar showed the wrong version. The version at the bottom left was a hardcoded constant that had not been updated since v0.1.0. It is now set at build time from the release tag, so it matches the release (for example 0.2.4). Builds from a branch show dev-<commit>, and a plain go build shows dev.

Upgrade

docker pull ghcr.io/matserix/cubeherd:0.2.4

Full Changelog: v0.2.3...v0.2.4

v0.2.3

Choose a tag to compare

@github-actions github-actions released this 19 Oct 20:11
8aacf7d

Highlights

  • Remote-only backups. A new per-server switch, "Do not keep locally", in the Backups tab (next to "Also back up to external storage") deletes the local archive once it has been uploaded to the external S3 storage, so backups only take up space in the bucket.
    • A failed upload always keeps the local archive and is reported as a failed operation.
    • The safety copy Cubeherd makes before a restore always stays local, so a restore never depends on the external storage being reachable.
    • Restoring a remote-only backup fetches it first and removes the temporary local copy afterwards. Downloading streams it straight from the bucket.
    • The switch only applies together with the external storage upload. Existing servers are not affected.

Upgrade

docker pull ghcr.io/matserix/cubeherd:0.2.3

Full Changelog: v0.2.2...v0.2.3

v0.2.2

Choose a tag to compare

@github-actions github-actions released this 19 Oct 20:00
7af8e92

Improvements

  • Hint for empty spark output in the console. spark does not send its replies back over RCON, so commands like spark tps ran but the console only showed "(no output)". The console now explains this and points to running the command in game, or to neoforge tps / forge tps for TPS.

Upgrade

docker pull ghcr.io/matserix/cubeherd:0.2.2

Full Changelog: v0.2.1...v0.2.2

v0.2.1

Choose a tag to compare

@github-actions github-actions released this 19 Oct 19:49
191e8dc

Fixes

  • Servers showed "Not created" on Docker 29 and newer. Cubeherd talked to the Docker API as version 1.41, but Docker 29 raised the minimum supported API version to 1.44. Every request was rejected, so running servers appeared as not created and could not be managed from the dashboard. Cubeherd now uses API version 1.44, which Docker 25 and newer accept.

Upgrade

Docker 25 or newer is required.

docker pull ghcr.io/matserix/cubeherd:0.2.1

Full Changelog: v0.2.0...v0.2.1

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 23:10
v0.2.0
ef7e863

Highlights

  • External backup storage (S3-compatible). Upload backups to AWS S3, Backblaze B2, Hetzner, Wasabi, Cloudflare R2, MinIO or any other S3-compatible service.
    • Configure one bucket under Settings, with a connection test. Turn the upload on per server in the Backups tab.
    • Every backup is uploaded after it is created. Large archives are streamed in parts, so Cubeherd's memory use stays low.
    • The retention rule applies to the bucket too: automatic archives beyond the limit are deleted there, manual ones never.
    • The Backups tab lists local and external archives together. Archives that only exist externally can be downloaded, restored (fetched first) and deleted.
    • An upload failure keeps the local archive and is reported as a failed operation.
  • README header and screenshots.

Fixes

  • Scheduled backups now actually run. In v0.1.0 an overdue or due schedule was pushed back every time the scheduler looked at it, so scheduled backups never started. Manual backups, backups before updates and restores were not affected. Runs missed while Cubeherd was down are caught up two minutes after the start.
  • Corrected the English label of the CurseForge key check button.

Upgrade

docker pull ghcr.io/matserix/cubeherd:0.2.0

Existing data and settings are kept. Your backup schedules start working without any change. Credentials for the external storage are stored in cubeherd.json (readable by its owner only), so ideally use a key that may only write to that bucket.

Full Changelog: v0.1.0...v0.2.0

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 22:22
v0.1.0
0decff6

First public release of Cubeherd, a lean web dashboard for itzg/docker-minecraft-server. One Go binary, around 10 MB of RAM when idle, no database.

Highlights

  • Create servers from Vanilla, Paper, Purpur, Folia, Fabric, Quilt, Forge, NeoForge, or a modpack from Modrinth or CurseForge. The Java image is derived from Mojang's version data.
  • Run them: start, stop, restart, live console with RCON, CPU and RAM, online players, crash cause, autopause.
  • Manage: settings, whitelist, operators, bans, updates (Minecraft version, modpack version, image), uninstall, and adopting existing itzg containers.
  • Backups: manual, scheduled, automatic before updates, restore and download.
  • Mods and plugins: search Modrinth, CurseForge and Spigot, add and remove entries, upload your own JARs.
  • Files and worlds: file browser with editor, world export and import as ZIP.
  • Idle and limits: pause or stop servers when nobody plays, per-server CPU limit.
  • Language and time zone: German and English UI, configurable time zone.

Known issue

Scheduled backups never start in this release. Manual backups, backups before updates and restores work. Fixed in v0.2.0, so please use that version instead.

Install

docker pull ghcr.io/matserix/cubeherd:0.1.0

See the README for the compose setup. Cubeherd controls Docker on the host, so only expose it on your LAN or via VPN.

Full Changelog: https://github.com/matserix/cubeherd/commits/v0.1.0