You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Netzwerk: Bridged NIC (vmbr0), Ports 25565/TCP, 19132/UDP
33
+
- Network: Bridged NIC (vmbr0), ports 25565/TCP and 19132/UDP
34
+
35
+
Java 21 is required. If OpenJDK 21 is missing in your repositories, the installers automatically fall back to Amazon Corretto 21 (APT with signed-by keyring).
32
36
33
37
---
34
38
35
-
## 📝 Introduction
36
-
Dieses Repo stellt in Minuten einen performanten Minecraft-Server (Java & Bedrock) auf Proxmox bereit. VM und LXC werden unterstützt. CLI-First Setup, Update-Skript, Backup-Beispiele.
39
+
## Introduction
40
+
41
+
This repository provisions a performant Minecraft server (Java & Bedrock) on Proxmox in minutes. VM and LXC are supported. CLI-first setup, updater, and backup examples are provided.
42
+
43
+
> Simulation only: Do not execute commands in this workspace. See SIMULATION.md.
37
44
38
-
> Simulation only: Keine Ausführung hier. Siehe **SIMULATION.md**.
- Java: attempts OpenJDK 21; if unavailable, falls back to OpenJDK 17 (headless).
38
+
- Java: attempts OpenJDK 21; if unavailable, falls back to Amazon Corretto 21 via APT keyring.
39
39
- Filesystem: creates /opt/minecraft owned by the invoking user; changes into that directory.
40
-
- Download: queries PaperMC API via curl+jq to get LATEST_VERSION and LATEST_BUILD; downloads server.jar accordingly.
40
+
- Download: queries PaperMC API via curl+jq to get LATEST_VERSION and LATEST_BUILD; downloads server.jar accordingly with SHA256 verification and minimum size >5MB.
41
41
- EULA: writes eula.txt with eula=true.
42
-
- Start script: creates start.sh (java -Xms2G -Xmx4G -jar server.jar nogui) and marks it executable.
42
+
- Start script: creates start.sh with auto-sized memory (Xms≈RAM/4, Xmx≈RAM/2; floors 256M/448M; cap ≤16G) and marks it executable.
43
43
- Update script: writes update.sh to refresh server.jar to latest build; marks it executable.
44
44
- Runtime: starts the server in a detached GNU screen session named minecraft.
45
45
@@ -64,8 +64,8 @@ Idempotency:
64
64
Similar to the VM installer but uses apt without sudo (typical for privileged containers) and does not write an update.sh. It:
- Filesystem: creates /opt/minecraft-bedrock and assigns to invoking user.
87
-
- Download: parses Mojang download page for the latest linux ZIP (azureedge) and downloads it.
88
-
- Validation: tests the ZIP with unzip -tq before extracting; extracts contents and removes ZIP.
87
+
- Download: parses Mojang download page for the latest linux ZIP and downloads it after validating Content-Type via HTTP HEAD.
88
+
- Validation: prints archive SHA256, enforces REQUIRED_BEDROCK_SHA256 by default (override with REQUIRE_BEDROCK_SHA=0), tests the ZIP with unzip -tq before extracting; extracts contents and removes ZIP.
89
89
- Start script: creates start.sh to run LD_LIBRARY_PATH=. ./bedrock_server.
90
90
- Runtime: starts a screen session bedrock running start.sh.
91
91
@@ -104,22 +104,22 @@ Failure points:
104
104
Updates PaperMC server.jar to the latest available build.
105
105
106
106
- Assumes /opt/minecraft as working dir.
107
-
- Uses curl+jq to resolve latest version/build; downloads new server.jar.
107
+
- Uses curl+jq to resolve latest version/build; downloads new server.jar with SHA256 verification and minimum size >5MB.
108
108
- Does not stop the server; best practice is to stop the server, back up, then update.
109
109
110
110
Safe update flow (suggested): stop server (screen -S minecraft -X stuff 'stop\n'), back up /opt/minecraft, run update.sh, then start start.sh again.
111
111
112
112
### minecraft.service (Optional systemd unit – Java)
113
113
114
-
Defines a simple systemd service to run /opt/minecraft/start.sh as root at boot.
114
+
Defines a hardened systemd service to run /opt/minecraft/start.sh as the minecraft user at boot.
0 commit comments