Skip to content

v2.0.2

Choose a tag to compare

@github-actions github-actions released this 08 Sep 10:15
· 23 commits to main since this release
v2.0.2
4543032

Luminesk CLI 2.0.0

Luminesk 2.0 is a complete rewrite of the project. The 2.0 codebase, recipes,
lockfiles, instance state, cache, and runtime model cannot be combined with
Luminesk 1.1. There is no safe in-place upgrade: keep a backup, create a fresh
2.0 instance, and move only the server data you actually need. See the
migration guide.

Compared with 1.1, the MCBE-specific imperative create workflow and optional
local runtimes are gone. doctor, catalog discovery, recipe-based install,
and Docker-backed instances replace them. The old configuration, registry,
cache, and instance metadata are not read or converted by 2.0.

What is new

One workflow for Java and Bedrock

  • Install Java and Bedrock server cores through the same nesk interface.
  • Discover verified recipes with nesk search and inspect requirements with
    nesk info RECIPE before installing anything.
  • Install from the official catalog, a GitHub repository, or a local recipe.
  • Git is no longer required for normal installation or operation.

Reproducible recipes instead of opaque setup logic

  • A strict luminesk.toml describes sources, inputs, ownership, Docker runtime,
    ports, mounts, checks, and update policy.
  • luminesk.lock records exact artifact hashes, recipe revisions, platforms,
    and immutable Docker image digests.
  • Deterministic, independently verified .lumineskpkg packages form the
    installation boundary.
  • Image-only recipes are supported when the complete server already lives in
    the runtime image.

Safer installs and updates

  • Every install and update has a preview; --dry-run performs the complete
    planning path without applying it.
  • Ownership-aware transactions distinguish Luminesk-managed files, rendered
    files, editable configuration, and server data.
  • Local changes are never silently overwritten. Conflicts stop the operation.
  • Failed apply or readiness checks roll back the filesystem and, for a
    previously running server, attempt to restore and restart the old runtime.
  • nesk outdated, nesk diff, and nesk recover make update and recovery
    state explicit.

A CLI that explains what it needs

  • nesk info shows every recipe input, default, constraint, and the correct
    --set or --set-file option.
  • Interactive installs include an input wizard, including explicit Minecraft
    EULA acceptance where a recipe requires it.
  • Long downloads, image resolution, builds, transactions, and readiness waits
    show progress in a terminal.
  • Docker failures include a bounded, useful error tail instead of looking like
    a silent crash.
  • Human output is readable and colored; --json --non-interactive remains
    stable for automation.

Better day-to-day server operation

  • nesk list discovers locally registered instances; nesk import --scan can
    rebuild that index from valid instance state.
  • nesk logs loads recent history by default and supports --tail, --since,
    timestamps, and follow mode with bounded capture.
  • nesk attach is a full-screen console TUI with recent log history, live
    output, command input, scrolling, detach, graceful stop, and kill shortcuts.
  • Runtime state is reconciled with Docker instead of trusting stale metadata.

Security and distribution

  • Downloads, redirects, archives, recipe trees, logs, and package extraction
    are explicitly bounded.
  • Remote bytes are verified with SHA-256; OCI images and Dockerfile base images
    are locked to repository digests.
  • Recipes cannot execute host shell commands. Runtime and check commands are
    explicit argument arrays.
  • Secret inputs come from files, are never persisted, and cannot leak into
    runtime arguments or normal JSON output.
  • Releases include PyPI packages, Linux/macOS/Windows bundles for AMD64 and
    ARM64, checksums, an SBOM, and build provenance.

Install and try it

Linux or macOS:

curl -fsSL https://luminesk.taskov1ch.xyz/sh | sh -s -- --yes

Windows PowerShell:

irm https://luminesk.taskov1ch.xyz/ps1 | iex

Alternatively, install the Python package:

uv tool install luminesk-cli

Then:

nesk doctor
nesk catalog update
nesk search --type core
nesk info paper
nesk install paper --dir ./servers/example
nesk start --dir ./servers/example
nesk attach --dir ./servers/example

For automation, inspect a dry-run first and then provide both inputs and trust
approval explicitly:

nesk install paper --dir ./servers/example \
  --set eula=true --dry-run --json --non-interactive
nesk install paper --dir ./servers/example \
  --set eula=true --yes --json --non-interactive

Documentation: https://luminesk.taskov1ch.xyz