|
1 | 1 | <div align="center"> |
2 | | - <img src="assets/logo.png" alt="Logo" width="150"> |
3 | | - <h1>Minecraft Local Server GUI</h1> |
| 2 | + <img src="electron-app/public/images/logo2.png" alt="Logo" width="200"> |
4 | 3 |
|
5 | | - <p><strong>🎮 The definitive tool for managing local Minecraft servers</strong></p> |
| 4 | + <h1>🎮 Minecraft Local Server GUI</h1> |
6 | 5 |
|
7 | | - <p>An intuitive desktop application that completely automates the installation, configuration, and management of Minecraft servers. Featuring automatic Java management, a modern graphical interface, and full support for all server types.</p> |
| 6 | + <p><strong>The ultimate tool for managing Minecraft servers — beautiful, modern, and effortless.</strong></p> |
8 | 7 |
|
9 | 8 | <p> |
10 | | - <img src="https://img.shields.io/badge/Python-3.7+-blue.svg" alt="Python Version"> |
11 | | - <img src="https://img.shields.io/badge/Java-Auto--Managed-green.svg" alt="Java Auto-Managed"> |
12 | | - <img src="https://img.shields.io/badge/Minecraft-All%20Versions-orange.svg" alt="Minecraft Support"> |
13 | | - <img src="https://img.shields.io/badge/Platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey.svg" alt="Platform Support"> |
| 9 | + <a href="https://github.com/CalaKuad1/Minecraft-Local-Server-GUI/releases/latest"> |
| 10 | + <img src="https://img.shields.io/badge/⬇️_Download-Windows_Installer-00d26a?style=for-the-badge&logo=windows" alt="Download"> |
| 11 | + </a> |
14 | 12 | </p> |
| 13 | + |
| 14 | + <p> |
| 15 | + <img src="https://img.shields.io/badge/Electron-28.3.3-47848F?logo=electron" alt="Electron"> |
| 16 | + <img src="https://img.shields.io/badge/React-18-61DAFB?logo=react" alt="React"> |
| 17 | + <img src="https://img.shields.io/badge/FastAPI-Python-009688?logo=fastapi" alt="FastAPI"> |
| 18 | + <img src="https://img.shields.io/badge/Java-Auto--Managed-ED8B00?logo=openjdk" alt="Java"> |
| 19 | + </p> |
| 20 | + |
| 21 | + <br> |
| 22 | + |
| 23 | + <img src="assets/screenshot-dashboard.png" alt="Dashboard Screenshot" width="800"> |
15 | 24 | </div> |
16 | 25 |
|
17 | 26 | --- |
18 | 27 |
|
19 | | -### 🚀 Key Features |
| 28 | +## ⬇️ Download & Install |
| 29 | + |
| 30 | +**One-click installation** — No Python or Java required! |
20 | 31 |
|
21 | | -**NEW: Automatic Java Management** |
22 | | -* **Smart Detection**: Automatically detects the required Java version for each Minecraft version. |
23 | | -* **Automatic Download**: Downloads and installs Java 8, 17, or 21 as required. |
24 | | -* **Per-Server Configuration**: Each server is automatically configured to use its correct Java version. |
25 | | -* **Error Elimination**: Completely eliminates "UnsupportedClassVersionError" issues. |
| 32 | +| Platform | Download | |
| 33 | +|:--------:|:---------| |
| 34 | +| **Windows** | [📦 Download Installer (.exe)](https://github.com/CalaKuad1/Minecraft-Local-Server-GUI/releases/latest/download/Minecraft.Local.Server.GUI.Setup.1.0.0.exe) | |
26 | 35 |
|
27 | | -**Effortless Installation and Setup** |
28 | | -* **Installation Wizard**: Download and configure servers with just a few clicks. |
29 | | -* **Universal Support**: Compatible with Vanilla, Paper, Spigot, Forge, and Fabric. |
30 | | -* **Easy Import**: Automatically import and manage existing server installations. |
31 | | -* **Smart Configuration**: Automatically detects server versions and configures the appropriate Java environment. |
| 36 | +> **Note:** The app automatically downloads and manages Java for you. Just install and play! |
32 | 37 |
|
33 | 38 | --- |
34 | 39 |
|
35 | | -### ⚙️ Full Feature List |
36 | | - |
37 | | -**Complete Server Control** |
38 | | -* **One-Click Actions**: Start, stop, and restart servers directly from the interface. |
39 | | -* **Live Console**: View server logs in real-time with color-coded errors and warnings. |
40 | | -* **Command Input**: Send commands directly to the server from the application interface. |
41 | | -* **Resource Monitoring**: View real-time graphs of CPU and RAM usage. |
42 | | - |
43 | | -**Advanced Player Management** |
44 | | -* **Visual Player List**: See currently connected players with their Minecraft avatars. |
45 | | -* **Operator Management**: Grant or revoke administrator permissions with ease. |
46 | | -* **Ban System**: Ban players or IPs, with support for offline-mode servers. |
47 | | -* **Player Statistics**: View detailed statistics for each player. |
48 | | - |
49 | | -**Intuitive Configuration** |
50 | | -* **Properties Editor**: A graphical editor for `server.properties` with organized, easy-to-navigate sections. |
51 | | -* **World Management**: View all world folders and create backups with a single click. |
52 | | -* **Mod Management**: For Forge and Fabric, you can enable/disable mods and edit their configurations. |
53 | | -* **Persistent Settings**: All configurations and server paths are saved between sessions. |
54 | | - |
55 | | -**Advanced Functions** |
56 | | -* **Make Public (Experimental)**: Exposes your local server to the internet with one click. For better performance and stability, we recommend using a dedicated external service like `playit.gg`. |
57 | | -* **Automatic EULA Handling**: Automatically accepts the Minecraft EULA on the first launch of a new server. |
58 | | -* **Smart Start**: Automatically uses the correct startup scripts for modded servers like Forge. |
59 | | -* **Custom RAM Allocation**: Easily configure the minimum and maximum RAM for each server. |
60 | | - |
61 | | -**Security and Stability** |
62 | | -* **Automatic Validation**: Verifies server configurations before applying any changes. |
63 | | -* **Error Recovery**: Features intelligent error handling and automatic recovery mechanisms. |
64 | | -* **Detailed Logs**: A complete logging system is integrated for diagnosing application issues. |
| 40 | +## ✨ Features |
65 | 41 |
|
66 | | ---- |
| 42 | +<table> |
| 43 | +<tr> |
| 44 | +<td width="50%"> |
| 45 | + |
| 46 | +### 🚀 Server Management |
| 47 | +- **One-click server creation** — Vanilla, Paper, Spigot, Forge |
| 48 | +- **Multiple server profiles** — Switch between servers instantly |
| 49 | +- **Live console** with real-time logs and command input |
| 50 | +- **Start/Stop controls** with visual status indicators |
| 51 | + |
| 52 | +</td> |
| 53 | +<td width="50%"> |
| 54 | + |
| 55 | +### ☕ Automatic Java |
| 56 | +- **Zero configuration** — Java 8/17/21 downloaded automatically |
| 57 | +- **Smart detection** — Matches Java version to Minecraft version |
| 58 | +- **No more errors** — Eliminates `UnsupportedClassVersionError` |
| 59 | +- **Isolated installations** — Won't affect your system Java |
| 60 | + |
| 61 | +</td> |
| 62 | +</tr> |
| 63 | +<tr> |
| 64 | +<td width="50%"> |
| 65 | + |
| 66 | +### 📊 Dashboard |
| 67 | +- **Real-time stats** — CPU, RAM, and uptime monitoring |
| 68 | +- **Local IP display** — Easy LAN connection for friends |
| 69 | +- **Public server guide** — Tips for playit.gg, ngrok, etc. |
| 70 | +- **Quick command input** — Send commands from dashboard |
| 71 | + |
| 72 | +</td> |
| 73 | +<td width="50%"> |
| 74 | + |
| 75 | +### ⚙️ Configuration |
| 76 | +- **Visual settings editor** — No file editing required |
| 77 | +- **server.properties GUI** — All options organized by category |
| 78 | +- **RAM allocation** — Customize min/max memory per server |
| 79 | +- **Player management** — Op, ban, whitelist with one click |
67 | 80 |
|
68 | | -### 📋 System Requirements |
69 | | -* **Python 3.7+**: Must be installed and added to the system's PATH. |
70 | | -* **Java**: No longer required. The application automatically downloads and manages all necessary Java versions. |
71 | | -* **Internet Connection**: Required for the initial download of server files and Java runtimes. |
72 | | -* **Disk Space**: Approximately 500MB for Java installations, plus additional space for each server. |
| 81 | +</td> |
| 82 | +</tr> |
| 83 | +</table> |
73 | 84 |
|
74 | 85 | --- |
75 | 86 |
|
76 | | -### 🚀 Installation and Use |
77 | | - |
78 | | -**Quick Start (Recommended)** |
79 | | - |
80 | | -**For Windows:** |
81 | | -1. Download the project from GitHub (Code button → Download ZIP). |
82 | | -2. Extract the ZIP file to your preferred folder. |
83 | | -3. Execute `run.bat`. |
84 | | -4. The application will install dependencies and launch automatically. |
85 | | - |
86 | | -**For macOS/Linux:** |
87 | | -1. Clone or download the repository: |
88 | | - ```bash |
89 | | - git clone https://github.com/your-username/Minecraft-Local-Server-GUI.git |
90 | | - cd Minecraft-Local-Server-GUI |
91 | | - ``` |
92 | | -2. Install dependencies and run: |
93 | | - ```bash |
94 | | - python3 -m venv venv |
95 | | - source venv/bin/activate |
96 | | - pip install -r requirements.txt |
97 | | - python main.py |
98 | | - ``` |
99 | | - |
100 | | -**Manual Installation (Advanced)** |
101 | | - |
102 | | -If you prefer to install manually or encounter issues with the automated scripts: |
103 | | -1. **Clone the repository:** |
104 | | - ```bash |
105 | | - git clone https://github.com/CalaKuad1/Minecraft-Local-Server-GUI.git |
106 | | - cd Minecraft-Local-Server-GUI |
107 | | - ``` |
108 | | -2. **Create and activate a virtual environment:** |
109 | | - * **Windows:** |
110 | | - ```bash |
111 | | - python -m venv venv |
112 | | - .\venv\Scripts\activate |
113 | | - ``` |
114 | | - * **macOS/Linux:** |
115 | | - ```bash |
116 | | - python3 -m venv venv |
117 | | - source venv/bin/activate |
118 | | - ``` |
119 | | -3. **Install dependencies:** |
120 | | - ```bash |
121 | | - pip install -r requirements.txt |
122 | | - ``` |
123 | | -4. **Run the application:** |
124 | | - ```bash |
125 | | - python main.py |
126 | | - ``` |
| 87 | +## 🎨 Modern UI |
| 88 | + |
| 89 | +Built with **React** and **Tailwind CSS**, featuring: |
| 90 | +- 🌙 **Dark theme** — Easy on the eyes |
| 91 | +- ✨ **Glassmorphism** — Blurred, translucent panels |
| 92 | +- 🎬 **Smooth animations** — Powered by Framer Motion |
| 93 | +- 📱 **Responsive layout** — Scales to any window size |
127 | 94 |
|
128 | 95 | --- |
129 | 96 |
|
130 | | -### 🎮 First Use |
| 97 | +## 🔧 Tech Stack |
131 | 98 |
|
132 | | -**Setup Wizard** |
133 | | -* On its first run, the application will launch an intuitive setup wizard. |
134 | | -* **Choose an option**: |
135 | | - * **Install New Server**: The application will download and configure everything automatically. |
136 | | - * **Use Existing Server**: Import a pre-existing server folder. |
137 | | -* **Automated Java Handling**: The application detects the Minecraft version and downloads the correct Java runtime automatically. |
138 | | -* Once completed, the main interface will open, and your settings will be saved for future sessions. |
| 99 | +| Layer | Technology | |
| 100 | +|-------|------------| |
| 101 | +| **Frontend** | Electron + React + Vite | |
| 102 | +| **Styling** | Tailwind CSS + Framer Motion | |
| 103 | +| **Backend** | Python + FastAPI + Uvicorn | |
| 104 | +| **Packaging** | electron-builder (NSIS installer) | |
139 | 105 |
|
140 | 106 | --- |
141 | 107 |
|
142 | | -### ☕ Java Management System |
| 108 | +## 🛠️ Development Setup |
143 | 109 |
|
144 | | -**The Problem It Solves** |
145 | | -* **Previously**: Users would encounter `UnsupportedClassVersionError` when running new Minecraft versions with outdated Java. |
146 | | -* **Currently**: The system functions automatically without these errors. |
| 110 | +Want to contribute or run from source? |
147 | 111 |
|
148 | | -**How It Works** |
149 | | -* **Automatic Detection**: Identifies the server's Minecraft version from its core files. |
150 | | -* **Smart Download**: Fetches the correct Java version from trusted sources like Eclipse Adoptium. |
151 | | -* **Automatic Linking**: Ensures each server instance uses the appropriate Java runtime. |
152 | | -* **Efficient Management**: Reuses existing Java installations for other compatible servers. |
| 112 | +```bash |
| 113 | +# Clone the repository |
| 114 | +git clone https://github.com/CalaKuad1/Minecraft-Local-Server-GUI.git |
| 115 | +cd Minecraft-Local-Server-GUI |
153 | 116 |
|
154 | | -**Version Compatibility** |
155 | | -| Minecraft Version | Required Java | Status | |
156 | | -|:--------------------|:--------------|:-----------------------| |
157 | | -| 1.21+ | Java 21 | ✅ Automatic Download | |
158 | | -| 1.20.5 - 1.20.6 | Java 21 | ✅ Automatic Download | |
159 | | -| 1.17 - 1.20.4 | Java 17 | ✅ System or Download | |
160 | | -| 1.16.5 and earlier | Java 8 | ✅ System or Download | |
| 117 | +# Backend setup |
| 118 | +cd backend |
| 119 | +python -m venv venv |
| 120 | +venv\Scripts\activate # Windows |
| 121 | +pip install -r requirements.txt |
161 | 122 |
|
| 123 | +# Frontend setup |
| 124 | +cd ../electron-app |
| 125 | +npm install |
162 | 126 |
|
163 | | -**Benefits** |
164 | | -* **Zero compatibility errors**: Each server runs on its correct Java version. |
165 | | -* **Automated installation**: No need to install or manage Java manually. |
166 | | -* **Multi-version support**: Maintains separate installations of Java 8, 17, and 21 simultaneously. |
167 | | -* **Intelligent detection**: Automatically recognizes Minecraft versions. |
| 127 | +# Run in development mode |
| 128 | +npm run dev |
| 129 | +``` |
168 | 130 |
|
169 | | ---- |
| 131 | +### Building the Installer |
170 | 132 |
|
171 | | -### ❓ Frequently Asked Questions |
| 133 | +```bash |
| 134 | +cd electron-app |
| 135 | +npm run electron:build |
| 136 | +# Output: electron-app/release/Minecraft Local Server GUI Setup 1.0.0.exe |
| 137 | +``` |
172 | 138 |
|
173 | | -**Installation Issues** |
174 | | -* **Q: What should I do if Python is not installed?** |
175 | | - A: Download Python from python.org. During installation, ensure the "Add Python to PATH" option is checked. |
176 | | -* **Q: The automatic installer is not working. What can I do?** |
177 | | - A: Follow the manual installation instructions. Ensure you have the necessary administrative permissions if required. |
| 139 | +--- |
178 | 140 |
|
179 | | -**Java Issues** |
180 | | -* **Q: I already have Java installed. Why is the application downloading another version?** |
181 | | - A: The application downloads specific, sandboxed versions of Java to guarantee compatibility and prevent conflicts with system-wide installations. This is intended behavior. |
182 | | -* **Q: Can I use my existing system Java installation?** |
183 | | - A: Yes. If a compatible system-wide Java version is detected, the application may use it. However, its internal manager is designed to prevent version conflicts. |
| 141 | +## 📋 Requirements |
184 | 142 |
|
185 | | -**Server Issues** |
186 | | -* **Q: My server fails to start. How can I diagnose the issue?** |
187 | | - A: Check the server logs in the console tab. The application will display specific errors and may provide suggestions. |
188 | | -* **Q: How can I import an existing server?** |
189 | | - A: In the initial setup wizard, select "Use Existing Server" and navigate to your server's root folder. |
| 143 | +### For Users (Installer) |
| 144 | +- **Windows 10/11** (64-bit) |
| 145 | +- **Internet connection** (for initial Java download) |
| 146 | +- ~500MB disk space |
190 | 147 |
|
191 | | -**"Make Public" Functionality** |
192 | | -* **Q: Is it safe to make my server public?** |
193 | | - A: This feature uses a public tunneling service. It should only be used with trusted individuals. We strongly recommend configuring a whitelist for your server. |
194 | | -* **Q: Why does the public address change with each session?** |
195 | | - A: This is standard for free tunneling services, which generate dynamic addresses upon connection. |
| 148 | +### For Developers |
| 149 | +- Node.js 18+ |
| 150 | +- Python 3.8+ |
| 151 | +- npm or yarn |
196 | 152 |
|
197 | 153 | --- |
198 | 154 |
|
199 | | -### 🛠️ Troubleshooting |
| 155 | +## ❓ FAQ |
| 156 | + |
| 157 | +<details> |
| 158 | +<summary><strong>Why is it downloading Java?</strong></summary> |
| 159 | + |
| 160 | +The app automatically downloads the correct Java version for your Minecraft server. This is sandboxed and won't affect your system Java installation. |
| 161 | +</details> |
| 162 | + |
| 163 | +<details> |
| 164 | +<summary><strong>Can my friends connect to my server?</strong></summary> |
| 165 | + |
| 166 | +For **LAN**: Share the Local IP shown in the dashboard. |
| 167 | +For **Internet**: Use a tunneling service like [playit.gg](https://playit.gg) (recommended) or configure port forwarding on your router. |
| 168 | +</details> |
200 | 169 |
|
201 | | -**Quick Diagnostics** |
202 | | -* **Verify Python**: Open a terminal and run `python --version`. It should return version 3.7 or higher. |
203 | | -* **Check Permissions**: If you encounter file access errors, try running the application as an administrator. |
204 | | -* **Review Logs**: The application's console provides detailed error messages for diagnostics. |
205 | | -* **Restart the Application**: A simple restart can resolve many temporary issues. |
| 170 | +<details> |
| 171 | +<summary><strong>Where are my servers stored?</strong></summary> |
206 | 172 |
|
207 | | -**Getting Help** |
208 | | -* **GitHub Issues**: Report bugs or request new features on the project's GitHub page. |
209 | | -* **Provide Detailed Logs**: When reporting an issue, always include the relevant logs from the console. |
210 | | -* **Include System Information**: Mention your operating system, Python version, and Java version. |
| 173 | +Server files are stored in the location you choose during setup. App configuration is saved in `%APPDATA%/MinecraftServerGUI`. |
| 174 | +</details> |
| 175 | + |
| 176 | +<details> |
| 177 | +<summary><strong>How do I import an existing server?</strong></summary> |
| 178 | + |
| 179 | +Click "Add Server" → "Use Existing" → Select your server folder. The app will auto-detect the server type and version. |
| 180 | +</details> |
211 | 181 |
|
212 | 182 | --- |
213 | 183 |
|
214 | | -### 📄 License |
215 | | -This project is licensed under the MIT License. See the LICENSE file for more details. |
| 184 | +## 📄 License |
| 185 | + |
| 186 | +This project is licensed under the **MIT License** — see the [LICENSE](LICENSE) file for details. |
216 | 187 |
|
217 | 188 | --- |
218 | 189 |
|
219 | | -### ⭐ Support the Project |
220 | | -If this project has been useful to you, please consider giving it a star on GitHub! This helps other users discover the tool and motivates continued development. |
| 190 | +## ⭐ Support |
| 191 | + |
| 192 | +If this project helped you, please **star the repository** ⭐ |
| 193 | +It helps others discover the tool and motivates development! |
| 194 | + |
| 195 | +<div align="center"> |
| 196 | + <br> |
| 197 | + <p>Made with ❤️ by <a href="https://github.com/CalaKuad1">CalaKuad1</a></p> |
| 198 | +</div> |
0 commit comments