# 🚀 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`: ```yaml 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: ```bash docker-compose -f docker-compose.minecraft.yml up -d ``` ### Step 2: Start the Dashboard Make the start script executable and run it: ```bash chmod +x start-dashboard.sh ./start-dashboard.sh ``` Or manually: ```bash 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: 1. **Server Status** - Real-time online/offline indicator 2. **Control Buttons** - Start and Stop your server 3. **Player Count** - Current players vs max capacity 4. **Server Version** - Minecraft version running 5. **Latency** - Server response time 6. **TPS** - Server performance (if available) 7. **Online Players List** - Names of all connected players 8. **MOTD** - Server message of the day ## 🛠️ Troubleshooting ### Dashboard shows "Server Offline" but server is running 1. Check if both containers are on the same network: ```bash docker network inspect mcnet ``` 2. Verify RCON is enabled on the Minecraft server: ```bash docker exec mc-java cat /data/server.properties | grep rcon ``` 3. Check backend logs: ```bash docker logs mc-dashboard-backend ``` ### Start/Stop buttons don't work The backend needs access to the Docker socket. Verify the volume mount: ```bash docker inspect mc-dashboard-backend | grep docker.sock ``` Should show: `/var/run/docker.sock:/var/run/docker.sock` ### Dashboard won't load 1. Check if frontend is running: ```bash docker ps | grep mc-dashboard-frontend ``` 2. Check frontend logs: ```bash docker logs mc-dashboard-frontend ``` 3. Verify port 8080 is not in use: ```bash lsof -i :8080 ``` ## 🔄 Updates and Maintenance ### Rebuild the Dashboard ```bash docker-compose -f docker-compose.dashboard.yml up -d --build ``` ### View Logs ```bash # 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 ```bash ./stop-dashboard.sh ``` Or manually: ```bash docker-compose -f docker-compose.dashboard.yml down ``` ## 🔐 Security Considerations 1. **Change RCON Password**: Update `RCON_PASSWORD` in both your Minecraft and dashboard configurations 2. **Firewall**: Only expose port 8080 to trusted networks 3. **Reverse Proxy**: Consider using nginx/traefik with authentication for production 4. **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`: ```yaml mc-dashboard-frontend: ports: - "3000:80" # Change 8080 to your preferred port ``` ### Update Refresh Interval Edit `frontend/src/App.jsx`, line with `setInterval`: ```javascript const interval = setInterval(fetchStatus, 10000) // 10 seconds instead of 5 ``` ## 🐳 Docker Commands Reference ```bash # 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 `mcnet` network - [ ] 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: 1. Check logs: `docker-compose -f docker-compose.dashboard.yml logs` 2. Verify network: `docker network inspect mcnet` 3. Test RCON: `docker exec mc-java rcon-cli -p bethureddy1 list` 4. Restart everything: `./stop-dashboard.sh && ./start-dashboard.sh` --- Happy Minecrafting! 🎮⛏️