5.2 KiB
5.2 KiB
🚀 Setup Guide for Minecraft Dashboard
Quick Setup (Recommended)
Step 1: Ensure Minecraft Server is Running
First, make sure your Minecraft server is running. Save this as docker-compose.minecraft.yml:
version: '3.8'
services:
minecraft:
image: itzg/minecraft-server:latest
container_name: mc-java
environment:
EULA: "TRUE"
ENABLE_RCON: "true"
RCON_PASSWORD: "bethureddy1"
RCON_PORT: "25575"
TZ: "America/Chicago"
TYPE: "PAPER"
VERSION: "1.21.10"
MEMORY: "20G"
volumes:
- ./data:/data
expose:
- "25565"
restart: unless-stopped
networks:
- mcnet
nginx-stream:
image: nginx:1.27-alpine
container_name: mc-proxy
depends_on:
- minecraft
ports:
- "25565:25565/tcp"
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
restart: unless-stopped
networks:
- mcnet
networks:
mcnet:
driver: bridge
Start the Minecraft server:
docker-compose -f docker-compose.minecraft.yml up -d
Step 2: Start the Dashboard
Make the start script executable and run it:
chmod +x start-dashboard.sh
./start-dashboard.sh
Or manually:
docker-compose -f docker-compose.dashboard.yml up -d --build
Step 3: Access the Dashboard
Open your browser and navigate to:
http://localhost:8080
🎯 What You'll See
The dashboard displays:
- Server Status - Real-time online/offline indicator
- Control Buttons - Start and Stop your server
- Player Count - Current players vs max capacity
- Server Version - Minecraft version running
- Latency - Server response time
- TPS - Server performance (if available)
- Online Players List - Names of all connected players
- MOTD - Server message of the day
🛠️ Troubleshooting
Dashboard shows "Server Offline" but server is running
-
Check if both containers are on the same network:
docker network inspect mcnet -
Verify RCON is enabled on the Minecraft server:
docker exec mc-java cat /data/server.properties | grep rcon -
Check backend logs:
docker logs mc-dashboard-backend
Start/Stop buttons don't work
The backend needs access to the Docker socket. Verify the volume mount:
docker inspect mc-dashboard-backend | grep docker.sock
Should show: /var/run/docker.sock:/var/run/docker.sock
Dashboard won't load
-
Check if frontend is running:
docker ps | grep mc-dashboard-frontend -
Check frontend logs:
docker logs mc-dashboard-frontend -
Verify port 8080 is not in use:
lsof -i :8080
🔄 Updates and Maintenance
Rebuild the Dashboard
docker-compose -f docker-compose.dashboard.yml up -d --build
View Logs
# All services
docker-compose -f docker-compose.dashboard.yml logs -f
# Backend only
docker logs -f mc-dashboard-backend
# Frontend only
docker logs -f mc-dashboard-frontend
Stop the Dashboard
./stop-dashboard.sh
Or manually:
docker-compose -f docker-compose.dashboard.yml down
🔐 Security Considerations
- Change RCON Password: Update
RCON_PASSWORDin both your Minecraft and dashboard configurations - Firewall: Only expose port 8080 to trusted networks
- Reverse Proxy: Consider using nginx/traefik with authentication for production
- Docker Socket: The backend needs Docker socket access - only run in trusted environments
📊 Port Usage
- 8080 - Dashboard web interface
- 3001 - Backend API (internal only)
- 25565 - Minecraft server
- 25575 - RCON (internal only)
🎨 Customization
Change Dashboard Port
Edit docker-compose.dashboard.yml:
mc-dashboard-frontend:
ports:
- "3000:80" # Change 8080 to your preferred port
Update Refresh Interval
Edit frontend/src/App.jsx, line with setInterval:
const interval = setInterval(fetchStatus, 10000) // 10 seconds instead of 5
🐳 Docker Commands Reference
# Start everything
docker-compose -f docker-compose.dashboard.yml up -d
# Stop everything
docker-compose -f docker-compose.dashboard.yml down
# Rebuild and restart
docker-compose -f docker-compose.dashboard.yml up -d --build
# View logs
docker-compose -f docker-compose.dashboard.yml logs -f
# Restart a specific service
docker-compose -f docker-compose.dashboard.yml restart mc-dashboard-backend
# Remove everything including volumes
docker-compose -f docker-compose.dashboard.yml down -v
✅ Verification Checklist
- Minecraft server is running
- RCON is enabled on Minecraft server
- Both services are on
mcnetnetwork - Backend has Docker socket access
- Port 8080 is available
- Dashboard shows "Server Online"
- Start/Stop buttons work
- Player count updates
🆘 Getting Help
If you encounter issues:
- Check logs:
docker-compose -f docker-compose.dashboard.yml logs - Verify network:
docker network inspect mcnet - Test RCON:
docker exec mc-java rcon-cli -p bethureddy1 list - Restart everything:
./stop-dashboard.sh && ./start-dashboard.sh
Happy Minecrafting! 🎮⛏️