Full-stack application to manage multiple Minecraft Bedrock servers using itzg/docker-minecraft-bedrock-server.
The aplication will deploy a minecraft bedrock server using docker itzg/docker-minecraft-bedrock-server latest image, assign port, persistent volume. The aplication then act as UI to manage this container.
- ✅ Real-time WebSocket Updates
- ✅ Multiple server management
- ✅ Imprt current itzg container server
- ✅ Select server version (Latest, Latest Preview or custom)
- ✅ Start/Stop/Restart containers
- ✅ Server renaming
- ✅ Console command
- ✅ Allocate container memory/ram
- ✅ Advanced File Manager
- Upload multiple files
- Download files
- Delete files/folders
- Rename files/folders
- Edit files inline (text editor)
- Create new folders
- Navigate folder structure
- Context menu (right-click)
- Zip/Unzip files and folders
- Keyboard shortcuts
- ✅ Addon Management
- Upload .mcaddon, .mcpack, .mcworld, .mctemplate files
- Enable/disable addon
- Automatic manifest parsing
- View installed worlds
- Switch between worlds
- Delete worlds
- ✅ Backup & restore worlds
- ✅ Server configuration editor
- ✅ Player management (kick, ban, op, deop)
- ✅ Dynamic port allocation
- ✅ Web-based UI
- ✅ Password-protected login
- ✅ Session-based authentication
- ✅ Mobile responsive design
Combined Addon List System
- Addons are now displayed as a unified list instead of separate behavior and resource pack tabs
- Each addon shows type indicators:
BP(Behavior Pack),RP(Resource Pack), orBP + RP(both types) - Enable/disable and delete operations work on both pack types simultaneously
This application uses WebSocket for real-time updates, providing instant UI synchronization across multiple browser tabs without manual refresh.
-
Automatic Fallback: If WebSocket connection fails, the app automatically falls back to HTTP polling (30-second intervals)
-
Cross-tab Sync: Changes made in one browser tab instantly appear in all other open tabs
-
Network Requirements: WebSocket uses the same port as the HTTP server (default: 3001)
-
Firewall: Ensure port 3001 is open for both HTTP and WebSocket connections
- Docker installed
- Node.js 18+
Download the source code
# Install backend dependencies (includes WebSocket support)
npm install
Create a .env file in the root directory:
# Server Configuration
PORT=3001
DATA_DIR=/opt/minecraft-servers #change this to your data directory
# Authentication
LOGIN_PASSWORD=your_secure_password_here
MAX_LOGIN_ATTEMPTS=5
LOGIN_LOCKOUT_MINUTES=5# Create directory for server data
sudo mkdir -p /opt/minecraft-servers #change this to your data directory
sudo chown $USER:$USER /opt/minecraft-servers #change this to your data directory# Run WebSocket setup
npm run setup# Start the app (run on PM2)
npm startAccess the application at: http://localhost:3001
- Docker installed
- Docker Compose installed
- Open Docker Desktop
- Go to Settings → General
- Enable "Expose daemon on tcp://localhost:2375 without TLS"
- Restart Docker Desktop
Image : https://hub.docker.com/r/mugh/bdsmanagerforitzg
services:
server-manager:
image: mugh/bdsmanagerforitzg:latest
ports:
- "3001:3001"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- minecraft-data:/app/minecraft-data
environment:
- PORT=3001
- LOGIN_PASSWORD=minecraft123
- MAX_LOGIN_ATTEMPTS=5
- LOGIN_LOCKOUT_MINUTES=5
#- DOCKER_HOST=tcp://host.docker.internal:2375 #for system with restricted direct mounting to /var/run/docker.sock (windows or NAS)
networks:
- minecraft-network
volumes:
minecraft-data:
networks:
minecraft-network:
driver: bridgeThe application will be available at http://localhost:3001
Default login password: minecraft123 (change in environtment variables)
You can customize the deployment by editing the docker-compose.yml file:
LOGIN_PASSWORD: Set your desired passwordPORT: Change the port if needed (default: 3001)MAX_LOGIN_ATTEMPTS: Maximum failed login attemptLOGIN_LOCKOUT_MINUTES: duration of lockout in case or reaching MAX_LOGIN_ATTEMPTS
minecraft-data: Persistent storage for Minecraft server data/var/run/docker.sock: Allows the app to manage Docker containers



