diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 670d568..84f55eb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -54,18 +54,18 @@ jobs: - name: Build if: matrix.platform == 'windows-latest' - run: cd ./web && pnpm run build && cd ../ && cargo build --release + run: cd ./web && pnpm run build && cd .. && cargo build --release - name: Upload uses: actions/upload-artifact@v4 if: matrix.platform != 'windows-latest' with: name: omcp-${{ matrix.platform }} - path: backend/target/release/open_mc_panel + path: target/release/open_mc_panel - name: Upload (Windows) uses: actions/upload-artifact@v4 if: matrix.platform == 'windows-latest' with: name: omcp-${{ matrix.platform }} - path: backend/target/release/open_mc_panel.exe \ No newline at end of file + path: target/release/open_mc_panel.exe \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml index a45d1d8..d0d7792 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,6 +6,7 @@ edition = "2021" [profile.release] lto = true strip = "debuginfo" +opt-level = "s" # Linker options [target.x86_64-unknown-linux-gnu] diff --git a/README.md b/README.md index 3fedd41..5a857a9 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,114 @@

OpenMCPanel

- Deploy, manage, and monitor Minecraft servers using a web-based UI.
-# Get Started +
+ + + +
+
+ + + + +
+ +
+ Create, manage, and monitor one, few, or many Minecraft servers using a web-based UI. +
+ https://discord.gg/agQ9mRdHMZ +
-TODO: write docs on this +# Table of Contents + +- [Features](#features) +- [Get Started](#get-started) + - [Prerequisites](#prerequisites) + - [Steps](#steps) +- [Building](#building) +- [Recommendations](#recommendations) # Features * **One-Click Server Deployment** - Deploy a Minecraft server with a single click. -* **Simple Server Management** - Start and stop, manual and scheduled backups, manage operators, and more. +* **Multiple Server Type Support** - Vanilla, Spigot, Paper, Fabric, etc. are all supported. Modpacks and mod lists are also supported! +* **Simple Server Management** - Start and stop, manual and scheduled backups, on-the-fly command running, and more. * **Realtime Monitoring** - Keep track of player count, memory usage, and more. +# Get Started + +## Prerequisites + +* [Docker](https://docs.docker.com/get-docker/) (or an equivalent, such as [Podman](https://podman.io/)) +* Webserver (such as [NGINX](https://www.nginx.com/)) + +## Steps + +1. Download the latest release and extract it (you can also download [an Actions build](https://www.github.com/SpikeHD/OpenMCPanel/actions/workflows/build.yml)): +```bash +# Windows +curl -L "https://www.github.com/SpikeHD/OpenMCPanel/releases/latest/download/omcp_win64.zip" -o omcp.zip +unzip omcp.zip + +# Linux/MacOS +curl -L "https://www.github.com/SpikeHD/OpenMCPanel/releases/latest/download/omcp_linux64.tar.gz" -o omcp.tar.gz +tar -xzf omcp.tar.gz +``` + +2. Run the binary: +```bash +# Windows +./omcp.exe --help + +# Linux/MacOS +./omcp --help +``` + +3. After reviewing the options, start the server with a configuration of your liking: +```bash +# Windows +./omcp.exe --log omcp.log --port 8080 --username Tester + +# Linux/MacOS +./omcp --log omcp.log --port 8080 --username Tester +``` + +4. Open your web browser and navigate to `http://localhost:8080` (or the port you specified) to access the panel! You are ready to deploy! + +# Building + +## Prerequisites + +* [Node.js](https://nodejs.org/en/download/) (or your favorite runtime) +* [Rust and Cargo](https://www.rust-lang.org/tools/install) + +## Steps + +1. Clone the repository: +```bash +git clone https://github.com/SpikeHD/OpenMCPanel.git +cd OpenMCPanel +``` + +2. Install the dependencies: +```bash +cd web +npm install +``` + +3. Build the project: +```bash +# Build the frontend +npm run build + +# Build the backend +cd .. +cargo build --release +``` + +Your binary will be located at `target/release/omcp`. + # Recommendations * [fail2ban](https://github.com/fail2ban/fail2ban) - Protect from brute force attacks