Installation
Pre-built binaries
Download the latest release from the GitHub Releases page. Binaries are available for Linux (x86_64 and aarch64).
After downloading, make the binary executable and move it somewhere in your PATH:
chmod +x infrarust
sudo mv infrarust /usr/local/bin/2
Verify the installation:
infrarust --helpDocker
Infrarust ships a minimal Docker image built from scratch with a statically linked binary. The image exposes port 25565 and expects your configuration at /app/config.
docker run -d \
--name infrarust \
-p 25565:25565 \
-v ./config:/app/config \
ghcr.io/shadowner/infrarust:latest2
3
4
5
Create a config/ directory with your infrarust.toml and a proxies/ subdirectory for server definitions before starting the container.
Docker Compose
services:
infrarust:
image: ghcr.io/shadowner/infrarust:latest
ports:
- "25565:25565"
volumes:
- ./config:/app/config
restart: unless-stopped2
3
4
5
6
7
8
Building the image yourself
The included Dockerfile uses a multi-stage build with Alpine and produces a statically linked binary. It supports x86_64, aarch64, and armv7:
docker build -t infrarust .Build from source
Requirements
- Rust 1.85 or later (edition 2024)
- A C linker (
gccorclang) - OpenSSL development headers (for TLS support)
On Debian/Ubuntu:
sudo apt install build-essential pkg-config libssl-devOn Alpine:
apk add musl-dev pkgconfig openssl-dev build-baseCompile
Clone the repository and build the infrarust-proxy crate, which produces the infrarust binary:
git clone https://github.com/Shadowner/Infrarust.git
cd Infrarust
cargo build --release -p infrarust-proxy2
3
The binary is at target/release/infrarust.
Optional features
Enable features at compile time with --features:
| Feature | What it adds |
|---|---|
telemetry | OpenTelemetry tracing export |
plugin-auth | Built-in authentication plugin |
plugin-hello | Example hello-world plugin |
plugin-server-wake | Wake-on-LAN / server start plugin |
cargo build --release -p infrarust-proxy --features telemetry,plugin-authStatic linking (musl)
For a fully static binary (no runtime dependencies), target musl. This is what the Docker image uses:
rustup target add x86_64-unknown-linux-musl
OPENSSL_STATIC=1 cargo build --release -p infrarust-proxy \
--target x86_64-unknown-linux-musl2
3
CLI usage
infrarust [OPTIONS]| Option | Default | Description |
|---|---|---|
-c, --config <PATH> | infrarust.toml | Path to the proxy configuration file |
-b, --bind <ADDR> | (from config) | Override the bind address, e.g. 0.0.0.0:25577 |
-l, --log-level <LEVEL> | info | Log level filter (trace, debug, info, warn, error) |
The RUST_LOG environment variable takes priority over --log-level when both are set.
Next steps
Once Infrarust is installed, head to Quick Start to set up your first proxy configuration.