Ir al contenido

Installation

Esta página aún no está disponible en tu idioma.

This guide will show you how to install and run Steel.
There are multiple ways to do that:

You should choose the installation method that matches where Steel will run.

  • If you want to run Steel directly on the host system, use the pre-built binaries.

  • If you already use Kubernetes, Docker Swarm, or a standard Docker host, the Docker container is the recommended option.

  • If your target platform is Pelican, Pterodactyl, or another egg-based panel, use the provided Steel egg in JSON or YAML format.

  • If you want native processor speeds or your platform / architecture is not currently supported, build Steel from source for your target system.

Method Linux x64 Linux arm64 Linux armv7 Linux armv6 Windows x64 Windows arm Mac arm Mac x64
Binary
Docker
Egg
Self-built ⚠️ ⚠️

✅: Supported. ❌: Not currently supported. ⚠️: Needs small adjustments.

The sections below describe each option in more detail.

Pre-built binaries are available on our downloads page for the following platforms:

  • Linux (x86_64)
  • Windows (x86_64)
  • MacOS (ARM)

Alternatively our GitHub releases page has the exact same files available.

Once downloaded, to run the server you just need to open your prefered terminal (e.g. PowerShell, Ghostty, Kitty, etc…) in your downloaded executable directory and run the following command:

Terminal window
# Windows
./steel.exe
# MacOS / Linux
./steel

Steel does not publish a latest Docker tag. Use a specific version tag instead, this way upgrades are always planned and no container updates unexpectedly.

The nightly tag is available for plugin testing and early testing of upcoming changes. It follows the latest commit on the master branch and may contain bugs that have not been fixed for a release yet. Do not use nightly in production.

Run the Steel container with the server port exposed and local folders mounted for configuration and saves:

Terminal window
docker run -d -it -p 25565:25565 -v ./config:/config -v ./saves:/saves -v ./logs:/logs --name steel-mc ghcr.io/steel-foundation/steelmc:<version>

::tip

To access the console of steel in the docker container the command is:

Terminal window
docker attach <steel-mc|container name>

:::

For those without any idea of how to configure docker, here’s a small cheatsheet of the configurable parameters:

  • -p (--port, ports): The first number represents the host port, which can be changed. The second one is the port inside the Docker container and should only be changed to match the one in the Steel config. For example, -p 1111:25565 makes the Minecraft server reachable on port 1111 on the Linux server.
  • -v (--volume, volumes): The route before the colon is the path on your host system, which can be relative to the compose file. The path after the colon is inside the Docker container and should not be changed.

For Pelican and Pterodactyl, Steel provides an egg that can be imported directly from the panel’s egg store.

For other egg-based platforms, use the JSON or YAML egg files from our repository, or download the matching egg from one of the supported stores when available.

Pelican: [Coming Soon]

Pterodactyl: [Coming Soon]

  • Rust nightly toolchain - Steel uses Rust 2024 edition features
  • 64-bit operating system - Linux, MacOS, or Windows
  • Git - To clone the repository

If you don’t have Rust installed, use rustup.

Terminal window
# For Unix systems only (e.g. MacOS, Linux)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Steel requires the nightly toolchain. The repository includes a rust-toolchain.toml that automatically selects the correct version.

Terminal window
# Clone the repository
git clone https://github.com/Steel-Foundation/SteelMC.git
cd SteelMC
# Build in release mode (recommended for running)
cargo build-native --release
Command Purpose
cargo build-native Debug build (faster compile, slower runtime) (with architecture-specific optimizations)
cargo build-native --release Release build (slower compile, optimized) (with architecture-specific optimizations)
cargo build Debug build (faster compile, slower runtime)
cargo build --release Release build (slower compile, optimized)
cargo check Fast syntax and type checking
cargo test Run the test suite
cargo clippy Run the linter

Steel supports optional build features that can be enabled with --features:

Terminal window
# Enable deadlock detection (debug only)
cargo build-native --features deadlock_detection
# Enable heap profiling with dhat
cargo build-native --features dhat-heap
# Disable the default mimalloc allocator
cargo build-native --no-default-features

Available features:

Feature Description
mimalloc Use mimalloc allocator (enabled by default)
deadlock_detection Enable parking_lot deadlock detection for debugging lock issues
dhat-heap Enable heap profiling with dhat

Deadlock Detection is particularly useful during development if you’re experiencing hangs or suspect lock-related issues. When enabled, parking_lot will detect potential deadlocks and panic with diagnostic information.

Terminal window
# Run directly with cargo (debug mode)
cargo run-native
# Run with release optimizations
cargo run-native --release
# Or run the built binary directly
./target/release/steel

Now that you have Steel running, proceed to Configuration to customize your server.

SteelMC logo by colonthreeing.