docker.recipes

Crafty Controller Minecraft Manager

intermediate

Web-based Minecraft server management with multiple server support and monitoring.

Overview

Crafty Controller is an open-source, web-based management platform specifically designed for hosting and administering multiple Minecraft servers from a single interface. Originally developed to address the complexity of managing numerous Minecraft instances across different versions and editions, Crafty Controller provides administrators with centralized control over Java Edition and Bedrock Edition servers, complete with user management, automated backups, and real-time monitoring capabilities. This stack combines Crafty Controller with NGINX as a reverse proxy to provide SSL termination, load balancing, and enhanced security for the web management interface. NGINX acts as the front-end gateway, handling HTTPS connections and proxying requests to Crafty Controller's internal web server, while also providing protection against common web attacks and enabling custom domain configurations. This combination is particularly valuable for gaming communities, educational institutions, and hobbyist server administrators who need to manage multiple Minecraft servers efficiently while maintaining professional-grade security and accessibility through custom domains and SSL certificates.

Key Features

  • Multi-server Minecraft management supporting both Java Edition and Bedrock Edition servers
  • Automated backup scheduling with configurable retention policies and compression
  • Real-time server monitoring with CPU, RAM, and player count tracking
  • Web-based console access with command history and tab completion
  • User role management with granular permissions for different administrative levels
  • Server template system for rapid deployment of pre-configured Minecraft instances
  • Plugin and mod management with automatic dependency resolution
  • NGINX reverse proxy with SSL/TLS termination and custom domain support

Common Use Cases

  • 1Gaming communities running multiple themed Minecraft servers (survival, creative, modded)
  • 2Educational institutions managing classroom Minecraft servers for different courses
  • 3Minecraft hosting providers offering managed server services to customers
  • 4Large friend groups maintaining persistent worlds with different game modes
  • 5Content creators managing separate servers for different streaming projects
  • 6Minecraft server networks requiring centralized administration and monitoring
  • 7Family servers where parents need controlled access to manage children's gaming time

Prerequisites

  • Minimum 4GB RAM recommended for running multiple Minecraft server instances
  • Available ports 8443 (Crafty web UI), 25500-25600 (Minecraft servers), and 19132/UDP (Bedrock)
  • Basic understanding of Minecraft server configuration and Java/Bedrock edition differences
  • SSL certificates if using NGINX for HTTPS termination with custom domains
  • Sufficient disk space for server worlds, backups, and logs (recommend 50GB+ initial allocation)
  • Network configuration knowledge for port forwarding if exposing servers to internet

For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms

docker-compose.yml

docker-compose.yml
1services:
2 crafty:
3 image: registry.gitlab.com/crafty-controller/crafty-4:latest
4 environment:
5 TZ: ${TZ}
6 ports:
7 - "8443:8443"
8 - "8123:8123"
9 - "19132:19132/udp"
10 - "25500-25600:25500-25600"
11 volumes:
12 - crafty_backups:/crafty/backups
13 - crafty_logs:/crafty/logs
14 - crafty_servers:/crafty/servers
15 - crafty_config:/crafty/app/config
16 - crafty_import:/crafty/import
17 networks:
18 - crafty-net
19 restart: unless-stopped
20
21 nginx:
22 image: nginx:alpine
23 ports:
24 - "80:80"
25 - "443:443"
26 volumes:
27 - ./nginx.conf:/etc/nginx/nginx.conf:ro
28 depends_on:
29 - crafty
30 networks:
31 - crafty-net
32 restart: unless-stopped
33
34volumes:
35 crafty_backups:
36 crafty_logs:
37 crafty_servers:
38 crafty_config:
39 crafty_import:
40
41networks:
42 crafty-net:
43 driver: bridge

.env Template

.env
1# Timezone
2TZ=UTC
3
4# Default credentials (change after first login)
5# Username: admin
6# Password: crafty

Usage Notes

  1. 1Web UI at https://localhost:8443
  2. 2Default login: admin / crafty
  3. 3Create and manage multiple Minecraft servers
  4. 4Supports Java and Bedrock editions

Individual Services(2 services)

Copy individual services to mix and match with your existing compose files.

crafty
crafty:
  image: registry.gitlab.com/crafty-controller/crafty-4:latest
  environment:
    TZ: ${TZ}
  ports:
    - "8443:8443"
    - "8123:8123"
    - 19132:19132/udp
    - 25500-25600:25500-25600
  volumes:
    - crafty_backups:/crafty/backups
    - crafty_logs:/crafty/logs
    - crafty_servers:/crafty/servers
    - crafty_config:/crafty/app/config
    - crafty_import:/crafty/import
  networks:
    - crafty-net
  restart: unless-stopped
nginx
nginx:
  image: nginx:alpine
  ports:
    - "80:80"
    - "443:443"
  volumes:
    - ./nginx.conf:/etc/nginx/nginx.conf:ro
  depends_on:
    - crafty
  networks:
    - crafty-net
  restart: unless-stopped

Quick Start

terminal
1# 1. Create the compose file
2cat > docker-compose.yml << 'EOF'
3services:
4 crafty:
5 image: registry.gitlab.com/crafty-controller/crafty-4:latest
6 environment:
7 TZ: ${TZ}
8 ports:
9 - "8443:8443"
10 - "8123:8123"
11 - "19132:19132/udp"
12 - "25500-25600:25500-25600"
13 volumes:
14 - crafty_backups:/crafty/backups
15 - crafty_logs:/crafty/logs
16 - crafty_servers:/crafty/servers
17 - crafty_config:/crafty/app/config
18 - crafty_import:/crafty/import
19 networks:
20 - crafty-net
21 restart: unless-stopped
22
23 nginx:
24 image: nginx:alpine
25 ports:
26 - "80:80"
27 - "443:443"
28 volumes:
29 - ./nginx.conf:/etc/nginx/nginx.conf:ro
30 depends_on:
31 - crafty
32 networks:
33 - crafty-net
34 restart: unless-stopped
35
36volumes:
37 crafty_backups:
38 crafty_logs:
39 crafty_servers:
40 crafty_config:
41 crafty_import:
42
43networks:
44 crafty-net:
45 driver: bridge
46EOF
47
48# 2. Create the .env file
49cat > .env << 'EOF'
50# Timezone
51TZ=UTC
52
53# Default credentials (change after first login)
54# Username: admin
55# Password: crafty
56EOF
57
58# 3. Start the services
59docker compose up -d
60
61# 4. View logs
62docker compose logs -f

One-Liner

Run this command to download and set up the recipe in one step:

terminal
1curl -fsSL https://docker.recipes/api/recipes/crafty-controller/run | bash

Troubleshooting

  • Crafty Controller shows 'Server Failed to Start' error: Check Java installation and verify server.jar file permissions in the crafty_servers volume
  • Players cannot connect to Minecraft servers: Verify port range 25500-25600 is properly forwarded and not blocked by firewall
  • Bedrock Edition server not accepting connections: Ensure UDP port 19132 is open and the server is bound to 0.0.0.0 not localhost
  • NGINX returns 502 Bad Gateway: Confirm Crafty Controller is running on port 8443 and accessible within the Docker network
  • Web interface loads but shows connection timeouts: Increase NGINX proxy timeout values and check Docker network connectivity between containers
  • Server backups failing with permission errors: Verify the crafty_backups volume has correct write permissions and sufficient disk space

Community Notes

Loading...
Loading notes...

Download Recipe Kit

Get all files in a ready-to-deploy package

Includes docker-compose.yml, .env template, README, and license

Ad Space