Quick Start¶
Create your first Minecraft server in 5 minutes.
Prerequisites¶
Ensure you have completed the installation steps:
- [x] Docker installed and running
- [x] Node.js 18+ installed
- [x] mcctl installed (
npm install -g @minecraft-docker/mcctl) - [x] Platform initialized (
mcctl init)
Step 1: Create Your First Server¶
Interactive Mode (Recommended for Beginners)¶
Run the create command without arguments for guided setup:
You will be prompted for:
- Server name - A unique name (e.g.,
survival,creative) - Server type - Paper, Vanilla, Forge, Fabric, etc.
- Minecraft version - e.g., 1.21.1, 1.20.4
- Memory allocation - Default is 4GB
CLI Mode (For Automation)¶
Create a server with a single command:
Options:
| Option | Description | Default |
|---|---|---|
-t, --type |
Server type (PAPER, VANILLA, FORGE, NEOFORGE, FABRIC) | PAPER |
-v, --version |
Minecraft version | Latest |
-s, --seed |
World seed | Random |
--no-start |
Create without starting | Start automatically |
Step 2: Wait for Server to Start¶
The server will download and start automatically. Watch the logs:
Wait until you see:
First Start Takes Longer
The first start downloads Minecraft server files and generates the world. Subsequent starts are much faster.
Step 3: Connect to Your Server¶
Find Your Server Address¶
Check the output from the create command or run:
You will see connection information:
Connect from Minecraft¶
- Open Minecraft Java Edition
- Click Multiplayer > Add Server
- Enter the server address:
myserver.192.168.1.100.nip.io:25565 - Click Done and join!
Connection Methods
Step 4: Manage Your Server¶
View Server Status¶
Output:
Platform Status
===============
Router: mc-router (running)
Servers:
mc-myserver
Status: running
Type: PAPER 1.21.1
Memory: 4G
Players: 0/20
Connect: myserver.192.168.1.100.nip.io:25565
View Server Logs¶
Stop the Server¶
Start the Server¶
Auto-Start on Connect
With mc-router, stopped servers automatically start when a player attempts to connect.
Access Server Console (RCON)¶
This opens an interactive RCON session:
Press Ctrl+C to exit.
Example: Create Multiple Servers¶
Create additional servers for different game modes:
# Creative server with specific seed
mcctl create creative -t VANILLA -v 1.21.1 -s 12345
# Modded server with Forge
mcctl create modded -t FORGE -v 1.20.4
# Check all servers
mcctl status
Each server gets its own hostname:
creative.192.168.1.100.nip.io:25565modded.192.168.1.100.nip.io:25565
Keeping mcctl Updated¶
mcctl can update itself and all installed services from npm.
Check for Updates¶
Update mcctl¶
# Interactive (prompts for confirmation)
mcctl update
# Auto-confirm (useful for CI/CD)
mcctl update --yes
Update CLI and All Services¶
Update mcctl along with mcctl-api, mcctl-console, and shared library:
Automatic Update Checks
mcctl automatically checks for updates in the background every 24 hours. You will see a notification when a new version is available.
For the full update command reference, see mcctl update.
What's Next?¶
-
:material-cog:{ .lg .middle } Customize Your Server
Configure server.properties, plugins, and mods
-
:material-earth:{ .lg .middle } Manage Worlds
Share and lock worlds across servers
-
:material-backup-restore:{ .lg .middle } Set Up Backups
Automatic GitHub backups for world data
-
:material-network:{ .lg .middle } Advanced Networking
Configure nip.io, mDNS, and custom domains
-
:material-earth:{ .lg .middle } External Access (playit.gg)
Let friends join from the internet without port forwarding
Quick Reference¶
Server Management¶
| Task | Command |
|---|---|
| Create server | mcctl create <name> [-t TYPE] [-v VERSION] |
| List servers | mcctl status |
| Detailed status | mcctl status --detail |
| Real-time monitoring | mcctl status --watch |
| Start server | mcctl start <name> |
| Stop server | mcctl stop <name> |
| View logs | mcctl logs <name> [-f] |
| RCON console | mcctl console <name> |
| Execute RCON command | mcctl exec <name> <command> |
| Delete server | mcctl delete <name> |
Player Management¶
| Task | Command |
|---|---|
| Add operator | mcctl op <server> add <player> |
| Remove operator | mcctl op <server> remove <player> |
| List operators | mcctl op <server> list |
| Add to whitelist | mcctl whitelist <server> add <player> |
| Enable whitelist | mcctl whitelist <server> on |
| Ban player | mcctl ban <server> add <player> [reason] |
| Kick player | mcctl kick <server> <player> [reason] |
| Show online players | mcctl player online <server> |
Configuration¶
| Task | Command |
|---|---|
| View config | mcctl config <server> |
| Set config | mcctl config <server> KEY value |
| Enable cheats | mcctl config <server> --cheats |
| Disable PvP | mcctl config <server> --no-pvp |
Backup¶
| Task | Command |
|---|---|
| Backup server config | mcctl server-backup <server> |
| Restore server config | mcctl server-restore <server> |
| Backup worlds to GitHub | mcctl backup push -m "message" |
| Restore from GitHub | mcctl backup restore <commit> |
Maintenance¶
| Task | Command |
|---|---|
| Check for updates | mcctl update --check |
| Update mcctl | mcctl update |
| Update all services | mcctl update --all |
| Auto-confirm update | mcctl update --yes |
Troubleshooting¶
Server Won't Start¶
-
Check logs for errors:
-
Verify EULA is accepted:
-
Check Java version compatibility:
- Minecraft 1.21+ requires Java 21
- Minecraft 1.18-1.20.4 requires Java 17+
- Forge 1.16.5 and below requires Java 8
Can't Connect to Server¶
-
Verify mc-router is running:
-
Check server hostname:
-
Ensure server is running:
Server Crashes¶
-
Check memory allocation:
-
Check for mod conflicts:
Permission Denied Errors¶
For more detailed troubleshooting, see the itzg/minecraft-server documentation.