MCPSERV.CLUB
Crafty Controller

Crafty Controller

Self-Hosted

Self‑hosted Minecraft server launcher and manager

Stale(40)
0stars
0views
Crafty Controller screenshot 1
1 / 2

Overview

Discover what makes Crafty Controller powerful

Crafty Controller is a self‑hosted web application that acts as a comprehensive launcher and management console for Minecraft servers. From a developer’s viewpoint, it abstracts the intricacies of server lifecycle—download, configuration, start/stop, and backup—into a REST‑like API exposed through its web interface. The application is built to run on any machine that can host a lightweight HTTP server, making it ideal for local or edge deployments where privacy and control are paramount. The core logic is written in **Node.js**, with the front‑end rendered using a modern JavaScript framework (React/Vue) that communicates via WebSocket for real‑time updates on server status and logs.

Multi‑version support

Player & permission management

Command execution & console streaming

File editor & backup system

Overview

Crafty Controller is a self‑hosted web application that acts as a comprehensive launcher and management console for Minecraft servers. From a developer’s viewpoint, it abstracts the intricacies of server lifecycle—download, configuration, start/stop, and backup—into a REST‑like API exposed through its web interface. The application is built to run on any machine that can host a lightweight HTTP server, making it ideal for local or edge deployments where privacy and control are paramount. The core logic is written in Node.js, with the front‑end rendered using a modern JavaScript framework (React/Vue) that communicates via WebSocket for real‑time updates on server status and logs.

Key Features

  • Multi‑version support – Automatically downloads the correct Java Runtime and server JAR for any Minecraft release, allowing simultaneous hosting of 1.12 through the latest snapshot.
  • Player & permission management – Exposes API endpoints to query, add or remove operators, whitelist entries, and ban lists without touching server.properties manually.
  • Command execution & console streaming – WebSocket streams the server console in real time, while POST endpoints allow scripted command injection.
  • File editor & backup system – Provides a web‑based file viewer/editor and a configurable snapshot/backup routine that can be triggered via API or scheduled cron jobs.
  • Metrics & health checks – Offers built‑in Prometheus metrics and a lightweight /health endpoint for monitoring in Kubernetes or Docker Compose setups.

Technical Stack

LayerTechnology
BackendNode.js (v18+), Express-like framework, WebSocket (ws)
FrontendReact/Vue with Tailwind CSS for a responsive UI
StorageSQLite (or optional PostgreSQL) for configuration, player lists, and logs
SecurityArgon2 password hashing, TLS via self‑signed or Let’s Encrypt certificates, CSRF protection
PackagingDocker image available on Docker Hub; also supports native binaries for Linux, Windows, macOS

Architecture

The application follows a micro‑service‑like architecture within a single process. The core server module handles lifecycle operations, delegating heavy I/O (file downloads, Java execution) to child processes. A lightweight EventEmitter bus propagates state changes (e.g., server start/stop, backup completion) to the WebSocket layer, ensuring that UI clients remain in sync. Persistence is handled by a small SQLite database; all configuration files (e.g., server.properties, ops.json) are stored under a dedicated data directory, making backups trivial.

Deployment & Infrastructure

Crafty Controller is designed for zero‑config deployments. A single binary or Docker container exposes a web port (default 8080) and optionally an HTTPS endpoint. For production, the Docker image can be run behind a reverse proxy (NGINX/Traefik) with automatic TLS. The application scales horizontally by running multiple instances, each managing its own isolated server directory; a simple Redis or file‑based lock can prevent race conditions when sharing the same volume. On resource‑constrained devices (Raspberry Pi, NAS), the lightweight Node.js runtime keeps memory usage under 200 MB.

Integration & Extensibility

  • Plugin SDK – Developers can write plugins in JavaScript that hook into lifecycle events (onServerStart, onCommand) and expose new API routes. The plugin manifest is JSON‑based, allowing auto‑discovery.
  • Webhooks – Outgoing HTTP callbacks can be configured for events such as player join/leave, crash reports, or backup completion, enabling integration with Discord bots, monitoring dashboards, or CI pipelines.
  • API – A JSON‑based RESTful API (authenticated via JWT) lets external systems start/stop servers, fetch logs, or modify server.properties. The API is versioned (v1) and documented via OpenAPI spec available at /docs.

Developer Experience

Crafty Controller ships with comprehensive documentation: a quick‑start guide, API reference, and plugin tutorial. The community is active on Discord (14k+ members) where developers can request features or report bugs. The open‑source nature allows contributors to review the code on GitHub, where issues are triaged quickly. The configuration is declarative; a single config.json or environment variables control everything from server paths to SSL settings, making it straightforward to integrate into CI/CD pipelines.

Use Cases

  • Game Server Hosting Provider – Spin up dozens of Minecraft servers per client, expose a unified API for billing and automation.
  • Educational Labs – Deploy isolated Minecraft worlds per class, manage permissions programmatically, and archive sessions automatically.
  • Mod Development – Test multiple Minecraft versions concurrently, script server restarts after each build, and collect logs via the API.
  • Home Automation – Integrate with Home Assistant to start a server when a household member arrives, or stop it during off‑peak hours.

Advantages

  • Performance – Node.js’ event loop handles concurrent server processes with minimal overhead; child processes isolate CPU‑intensive tasks.
  • Flexibility – Full control over Java runtime, server JARs, and configuration files; no proprietary lock‑in.
  • Licensing – Completely free under an open‑source license; no SaaS fees or data exfiltration concerns.
  • Security – Argon2 hashing, TLS by default, and local data storage eliminate many of the risks associated with third‑party hosting platforms.

Crafty Controller thus

Open SourceReady to get started?

Join the community and start self-hosting Crafty Controller today