v0.1.0 — Initial Release
redoxide v0.1.0
On-demand Minecraft server proxy written in Rust. Starts your container when a player connects, shuts it down after everyone leaves.
Features
- Transparent boot wait — player connections are held open while the server starts. No manual retry needed — the client sits on "Logging in..." and joins seamlessly once the server is ready.
- Ping never wakes the server — only an actual login attempt triggers a container start. Server list refreshes are answered immediately with the MOTD, without spinning up the server.
- Login Plugin Request keepalives — sent every 10s during the boot wait to prevent the Minecraft client from timing out (standard protocol, works with all 1.13+ clients).
- Auto-detected protocol version — redoxide pings the real server after it starts and caches the detected protocol version and version name in
.redoxide-version-cache.json. The correct version is shown in the server list even when the server is stopped. - server.properties integration — optionally mount your
server.propertiesfile and redoxide will readmax-playersandmotddirectly from it, keeping your config DRY. - Idle shutdown — configurable timer stops the container automatically after the last player disconnects.
- Concurrent logins handled correctly — if multiple players connect while the server is starting, only one
docker startis issued. All waiting connections receive keepalives independently.
Docker
ghcr.io/samuelloranger/redoxide:v0.1.0
ghcr.io/samuelloranger/redoxide:latest
Multi-platform: linux/amd64, linux/arm64
Quick start
services:
minecraft:
restart: "no"
image: eclipse-temurin:25-jre-jammy
# ...
redoxide:
image: ghcr.io/samuelloranger/redoxide:v0.1.0
restart: unless-stopped
ports:
- "25565:25565"
volumes:
- ./config.toml:/config.toml:ro
- ./server.properties:/server.properties:ro
- ./.redoxide-version-cache.json:/.redoxide-version-cache.json
- /var/run/docker.sock:/var/run/docker.sockSee the README for full configuration reference.