diff --git a/README.md b/README.md index 25b5821..63e5737 100644 --- a/README.md +++ b/README.md @@ -1,75 +1,88 @@ -# Nuxt Minimal Starter +# ๐ŸŒ Minecraft Server Panel -Look at the [Nuxt documentation](https://nuxt.com/docs/getting-started/introduction) to learn more. +A sleek and modern Minecraft server manager built with [Nuxt](https://nuxt.com) for ease of use. Features include live console output via log polling, full server configuration, and intuitive control โ€” all from your browser. -## Setup +

+ Dashboard View + Edit Server View +

-Make sure to install dependencies: +## ๐Ÿš€ Features + +- ๐Ÿ–ฅ๏ธ **Manage Multiple Servers** + Add, edit, start, and stop Minecraft servers through a modern web interface. + +- ๐ŸŽฎ **Server Configuration** + Configure difficulty, game mode, max players, render/simulation distance, PVP toggle, command blocks, and more. + +- ๐Ÿ“ก **Live Console Output** + Real-time output is streamed by polling the `logs/latest.log` file โ€” no need for RCON or WebSockets. + +- ๐Ÿ” **Password-Protected Admin Access** + Protect access to the panel using a configurable admin password. + +- ๐Ÿงญ **Modern UI/UX** + Fully responsive dark interface designed with Tailwind CSS and Nuxt 3. + +- ๐Ÿ’พ **Persistent Settings** + All server configurations are saved and restored between sessions. + +## โš™๏ธ Server Configuration Options + +- **Difficulty**: `peaceful`, `easy`, `normal`, `hard` +- **Game Mode**: `survival`, `creative`, `adventure`, `spectator` +- **Slots**: Max player count +- **Render Distance** & **Simulation Distance**: In chunks +- **Booleans**: Enable/disable PVP, command blocks, etc. +- **Extras**: Upload a custom server banner image + +## ๐Ÿงช Tech Stack + +- **Frontend**: [Nuxt 3](https://nuxt.com) + [Tailwind CSS](https://tailwindcss.com) +- **Backend**: Node.js via Nuxt server routes (for serving the panel and handling server commands) +- **Real-Time Console**: Filesystem polling of `logs/latest.log` (no need for RCON or WebSockets) +- **Minecraft Integration**: Designed for [PaperMC](https://papermc.io/) or compatible server JARs (like Spigot or Bukkit) + +## ๐Ÿ“ฆ Getting Started + +### Prerequisites + +- **Node.js** โ‰ฅ 16 +- **Java 17+** (for running Minecraft) +- **Minecraft server JAR** (e.g. `paper-1.20.6.jar`) +- **PM2** for process management (optional but recommended) + + +### Installation ```bash -# npm +git clone https://git.weexnes.dev/WeeXnes/minecraft_server_manager.git +cd minecraft_server_manager npm install - -# pnpm -pnpm install - -# yarn -yarn install - -# bun -bun install ``` - -## Development Server - -Start the development server on `http://localhost:3000`: - +#### Development Mode ```bash -# npm npm run dev - -# pnpm -pnpm dev - -# yarn -yarn dev - -# bun -bun run dev ``` +#### ๐Ÿ” Admin Password Setup +By default, the admin password is: `admin` -## Production - -Build the application for production: - +You can set a custom admin password using the following command: +```bash +npm run password_gen +``` +This securely stores the hashed password in `panel.config.ts` so it can be used for login. + +### ๐Ÿš€ Production Mode (PM2) +1. Build the app: ```bash -# npm npm run build - -# pnpm -pnpm build - -# yarn -yarn build - -# bun -bun run build ``` - -Locally preview production build: - +2. Start it with PM2: ```bash -# npm -npm run preview - -# pnpm -pnpm preview - -# yarn -yarn preview - -# bun -bun run preview +pm2 start ``` - -Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information. +This uses the configuration in `ecosystem.config.js` to launch the Nuxt server from the build output. +### ๐Ÿ”’ Security +This panel is intended for local or LAN use If hosting publicly: +- Use HTTPS with a reverse proxy (e.g. Nginx or Caddy) \ No newline at end of file diff --git a/img/screen1.png b/img/screen1.png new file mode 100644 index 0000000..2a6bbe2 Binary files /dev/null and b/img/screen1.png differ diff --git a/img/screen2.png b/img/screen2.png new file mode 100644 index 0000000..a9583ed Binary files /dev/null and b/img/screen2.png differ diff --git a/img/screen3.png b/img/screen3.png new file mode 100644 index 0000000..11968bd Binary files /dev/null and b/img/screen3.png differ diff --git a/package.json b/package.json index 6a4a0e6..ace0f3a 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "nuxt-app", + "name": "minecraft-server-manager", "private": true, "type": "module", "scripts": { diff --git a/panel.config.ts b/panel.config.ts index 21ee369..690dd0d 100644 --- a/panel.config.ts +++ b/panel.config.ts @@ -1,5 +1,5 @@ import { reactive } from "vue"; export const settings = reactive({ - password_hash: "" + password_hash: "$2a$12$E2uo9jptR/68BxMBx3HuzO18Cf8GWpzB9XBki98Dq8Xo.YPpOFCje" }); \ No newline at end of file