Warning
Craftbox is not stable yet and is under active development. Do not migrate to Craftbox as your primary server management solution just yet! Beta updates may contain breaking changes or bugs that could cause corruption or data loss. If you find a bug, please submit a bug report in the issues tab.
Craftbox is a self-hosted web panel for creating, configuring, monitoring, and managing Minecraft servers β no command-line expertise or dodgy download pages required.
It ships as a single Node.js / Express application with a Bootstrap 5 dark-theme UI, WebSocket-powered live console, and SQLite for zero-config persistence. Deploy it with Docker or run it standalone.
Whether you're running a single Vanilla server or juggling multiple modded instances, Craftbox gives you full control from your browser.
- π₯οΈ Multi-Server Management β Run and manage multiple Minecraft servers from a single panel, each with its own console, watchdog, and configuration.
- π§© Multi-Server-Type Support β Vanilla, Paper, Purpur, Folia, Fabric, Forge, NeoForge, and custom JAR uploads.
- π Live Console β Real-time server log streaming and command input via WebSocket.
- βοΈ Server Configuration UI β Edit
server.properties, JVM flags, memory allocation, game mode, difficulty, and more β all from the browser. - πΎ Backups β One-click manual backups, scheduled backups with retention policies, and one-click restore.
- π Plugin & Mod Management β Upload and manage JAR files for plugins (Paper/Purpur/Folia) and mods (Fabric/Forge/NeoForge).
- π Server Duplication & Templates β Clone a server with or without world data, or save configurations as reusable templates.
- π Status & Monitoring β Public status pages, live player tracking, resource monitoring, and event history.
- π‘οΈ Crash Detection & Auto-Restart β Watchdog detects crashes/runtime errors and optionally auto-restarts.
- π± PWA Support β Installable as a Progressive Web App on desktop and mobile.
A common problem with Minecraft server setups is that they require a specific version of the Java runtime depending on your Minecraft version.
The Docker image contains all Java runtime versions required for each version of Minecraft. Craftbox will intelligently pick the correct one for you!
Pull the image from Docker Hub and run it:
docker run -d \
--name craftbox \
--restart unless-stopped \
-p 6464:6464 \
-p 25500-25600:25500-25600 \
-v /path/to/craftbox/data:/app/data \
willtda/craftbox:latest
β οΈ Important: The-vvolume mount is essential. It stores your database, server files, and backups. If you do not bind a host path, all data will be lost when the container is removed. Make sure the path you choose is backed up and persistent.
Note: The Docker image only exposes ports 25500β25600 for Minecraft servers, allowing up to 100 servers. When creating servers in Craftbox, make sure to assign ports within this range. If you only need a few servers, you can expose a smaller subset (e.g.
-p 25500-25510:25500-25510).
Alternatively, use docker-compose.yml:
services:
craftbox:
image: willtda/craftbox:latest
container_name: craftbox
restart: unless-stopped
ports:
- "6464:6464" # Web panel
- "25500-25600:25500-25600" # Minecraft server ports (up to 100 servers)
volumes:
- /path/to/craftbox/data:/app/data
stop_grace_period: 45s
β οΈ Double-check your volume mapping before starting. The/app/datadirectory inside the container holds everything β your SQLite database, server directories, and backup archives. If this is not correctly mapped to a host path, you will lose your configuration and servers when the container is recreated.
Craftbox will be available at http://localhost:6464. On first launch, you'll be prompted to create an admin account.
Requirements: Node.js 24+ and Java (8, 17, 21, or 25 depending on Minecraft version).
git clone https://github.com/diamonddigitaldev/Craftbox.git
cd Craftbox
npm install
npm startFor development with auto-reload:
npm run dev| Variable | Default | Description |
|---|---|---|
PORT |
6464 |
Port for the web panel |
NODE_ENV |
development |
Set to production for secure session cookies (required when serving over HTTPS) |
TRUST_PROXY |
false |
Set to true if running behind a reverse proxy (e.g. Nginx, Caddy, Cloudflare Tunnel) so that rate limiting and secure cookies work correctly |
Deployment note: When deploying behind HTTPS (directly or via a reverse proxy), you must set
NODE_ENV=productionso that session cookies are markedSecureand only transmitted over encrypted connections. Without this, browsers will reject session cookies over HTTPS withSameSite=Strict, and login will not persist.
This project is licensed under the GNU Affero General Public License v3.0.
- Logo designed by TheFuturisticIdiot
- Built with Node.js, Express, and Bootstrap
- Icons by Material Icons
- Java runtimes by Eclipse Temurin
- π¬ Need help or want to chat? Join our Discord Server
- π Found a bug? Open an issue
- π‘ Have a suggestion? Submit a feature request












