Skip to main content
CLI

Minecraft servers. Java & Bedrock.

Compose recipes, lock inputs and manage your servers in Docker.

From recipe to running server
Java + BedrockLinux / macOS / WindowsAMD64 / ARM64*SHA-256 verifiedDocker runtime

From recipe to server.

Catalog installs handle these four steps for you.

  1. Recipeluminesk.toml

    Declare sources, settings, ownership and the Docker runtime.

  2. Lockluminesk.lock

    Resolve exact source hashes, recipe revisions and image digests.

  3. Package.lumineskpkg

    Build a deterministic package. Verify it before applying the plan.

  4. RunDocker runtime

    Start the locked image and wait for the declared readiness checks.

Review your configuration.

Sources, files, runtime and updates live in an explicit contract. Inspect it before it touches your instance.

Explore the format
Recipeluminesk.toml

Excerpt from the recipe authoring guide. The manifest is yours to review; Luminesk generates the lock.

[ownership]
preserve = ["settings.yml"]
data = [".tmp", "worlds", "plugins", "players", "behavior_packs", "resource_packs"]

[update]
strategy = "transactional"
backup = ["worlds", "plugins", "players", "behavior_packs", "resource_packs", "settings.yml"]
retain_backups = 3
rollback_on_failure = true
Read the complete recipe
LockResolve the recipe

Run in your recipe source directory. Resolution binds mutable inputs to exact content and the current platform.

nesk validate --dir ./my-lumi-core --static
nesk lock --dir ./my-lumi-core
nesk cache verify
Understand the lockfile
PlanPreview an update

For an installed instance, inspect local changes and preview the update before applying it.

nesk diff --dir ./servers/example
nesk update --dir ./servers/example --dry-run
Explore transactional updates
JSONAutomate without prompts

Use structured results and explicit non-interactive behavior in your scripts. Missing required inputs return an error.

nesk status --dir ./servers/example --json --non-interactive
Read the CLI contract

Updates and file ownership.

File ownership

Ownership rules separate recipe files from local configuration and player data. Updates stop at conflicts instead of overwriting local drift.

server.jar managedeula.txt generatedserver.properties preserveworld/ data
Understand file ownership

Transactional updates

Preview updates. Apply a transaction. If apply or readiness fails, restore the previous state when possible.

PreviewApplyCheck

Failed check → rollback

See how recovery works

JSON automation

Stable JSON, explicit inputs and non-interactive commands for repeatable automation.

nesk status --json --non-interactive

Java & Bedrock recipes.

Discover cores in the official catalog or compose a recipe of your own. Available versions and platforms depend on the recipe.

Java Edition

Choose a Java recipe and inspect its inputs, sources and platform requirements.

nesk search --edition javaBrowse catalog recipes

Bedrock Edition

Start with the Lumi walkthrough. Find other Bedrock cores in the catalog.

nesk search --edition bedrockTry the Lumi recipe

* Linux/macOS bundles target AMD64 and ARM64; Windows targets AMD64. Each server recipe and Docker image must support your target platform.

Verification and isolation.

Exact content

SHA-256 checks for remote bytes. Immutable OCI image digests. Deterministic packages verified before use.

Verification model

Bounded operations

Explicit download limits, revalidated redirects and safe archive paths keep external inputs within defined boundaries.

Source guarantees

Explicit isolation

Docker runs argument arrays with a read-only root by default. Recipes declare mounts, ports and resource limits.

Runtime boundary

Review release checksums, SBOM and build provenance in GitHub Releases. Transaction rollback complements independent world backups.

Install Luminesk

Install nesk, choose a recipe, review the plan. Then bring your world online.

Docker Engine or Docker Desktop is required for servers. Python 3.13+ is required only for Python tool installs. Windows AMD64 uses Linux containers.

Full installation guide
One-line installer No Python required

Linux / macOS

curl -fsSL https://nesk.farin.cc/sh | sh -s -- --yes

Windows PowerShell

irm https://nesk.farin.cc/ps1 | iex

The installer verifies the binary’s SHA-256 before installing. Review the Unix or PowerShell script before running it. Installer approval does not accept the Minecraft EULA.

Install with uv Python 3.13+

With uv and Python 3.13+ installed:

uv tool install luminesk-cli

Keep using the same installation method for upgrades.

Prebuilt bundles Choose OS + architecture

Includes Python. Choose the target machine, verify SHA256SUMS, then extract the complete ZIP.

Check your environmentnesk --version
nesk doctor
Continue to your first server