diff --git a/proxmox/README.md b/proxmox/README.md index c0b2a08..30a637a 100644 --- a/proxmox/README.md +++ b/proxmox/README.md @@ -17,6 +17,9 @@ proxmox/ │ ├── scripts/ │ └── config/ │ +├── lxc101-minecraft/ # LXC 101 - Minecraft (Crafty Controller 4) +│ └── README.md # Servere Minecraft, gestionare Java, cum actualizezi versiunea +│ ├── lxc103-dokploy/ # LXC 103 - Dokploy + Traefik (Deployment Platform) │ ├── README.md # Configurare, arhitectură, workflow deploy │ └── docs/ @@ -375,6 +378,7 @@ ssh root@10.0.20.201 "qm snapshot 302 pre-test --description 'Before ROA test'" | VMID | Nume | IP | Serviciu | Documentație | |------|------|-----|----------|--------------| | 100 | portainer | 10.0.20.170 | Docker Management (Remote Node) | `cluster/README.md` | +| **101** | **minecraft** | **10.0.20.162** | **Minecraft (Crafty Controller 4)** | **`lxc101-minecraft/`** | | **103** | **dokploy** | **10.0.20.167** | **Dokploy + Traefik (App Deployment)** | **`lxc103-dokploy/`** | | **104** | **flowise** | **10.0.20.161** | **Flowise AI (Chatbot Maria)** | **`lxc104-flowise/`** | | **106** | **gitea** | **10.0.20.165** | **Git Server** | **`lxc106-gitea/`** | diff --git a/proxmox/lxc101-minecraft/README.md b/proxmox/lxc101-minecraft/README.md new file mode 100644 index 0000000..e2ea4c2 --- /dev/null +++ b/proxmox/lxc101-minecraft/README.md @@ -0,0 +1,121 @@ +# LXC 101 - Minecraft (Crafty Controller) + +**Director:** `proxmox/lxc101-minecraft/` +**VMID:** 101 +**IP:** 10.0.20.162 (intern) +**Host Proxmox:** pve1 (10.0.20.200) +**Rol:** Servere Minecraft (Java + Bedrock) gestionate prin Crafty Controller 4 + +--- + +## Informații Container + +| Parametru | Valoare | +|-----------|---------| +| VMID | 101 | +| Hostname | minecraft | +| IP intern | 10.0.20.162 | +| Host Proxmox | pve1 (10.0.20.200) | +| Storage | local-zfs (100GB) | +| RAM | 8GB | +| CPU | 4 cores | +| OS | Debian 12 (bookworm) | +| onboot | da | + +## Componente Instalate + +- **Crafty Controller 4.5.5** — panou web de management Minecraft (`crafty.service`) + - WorkingDir: `/var/opt/minecraft/crafty` + - User serviciu: `crafty` + - Web UI: `https://10.0.20.162:8443` +- **Java (Eclipse Temurin)**, instalat din repo Adoptium: + | Versiune | Cale | Folosit pentru | + |----------|------|----------------| + | OpenJDK 17 | `/usr/lib/jvm/java-17-openjdk-amd64` | legacy | + | Temurin 21 | `/usr/lib/jvm/temurin-21-jdk-amd64` | Minecraft 1.21.x clasic | + | Temurin 25 (LTS) | `/usr/lib/jvm/temurin-25-jdk-amd64` | **Minecraft nou (necesită Java 25+)** | +- **playit** — tunel pentru expunere publică (`/opt/playit`) + +## Servere Configurate (în Crafty) + +| Server | Tip | Java | Director | +|--------|-----|------|----------| +| **Marius** | Paper (Java Edition) | Temurin 25 | `crafty-4/servers/b1dcdf7f-...` | +| **Mihai Bedrock** | Bedrock | n/a (`./bedrock_server`) | `crafty-4/servers/56c76527-...` | + +> Crafty își ține serverele în `/var/opt/minecraft/crafty/crafty-4/servers//`. +> Directoarele `/opt/fabric` și `/opt/paper` sunt instalări vechi/manuale, **nu** sunt cele gestionate de Crafty. + +--- + +## Cum actualizezi versiunea de Minecraft + +Minecraft urcă periodic cerința minimă de Java (ex. versiunile noi „Copper Age" cer **Java 25+**). +Procesul are două părți: (1) ai Java necesară instalată, (2) actualizezi jar-ul și pui serverul pe Java corectă. + +### Pas 1 — Verifică / instalează versiunea de Java necesară + +Repo-ul Adoptium e deja configurat. Lista versiunilor disponibile: + +```bash +ssh root@10.0.20.200 "pct exec 101 -- bash -c 'apt-get update -qq; apt-cache search temurin | grep jdk'" +``` + +Instalează versiunea cerută (exemplu Java 25 LTS — recomandat față de non-LTS 26): + +```bash +ssh root@10.0.20.200 "pct exec 101 -- bash -c 'DEBIAN_FRONTEND=noninteractive apt-get install -y temurin-25-jdk'" +# Verificare +ssh root@10.0.20.200 "pct exec 101 -- /usr/lib/jvm/temurin-25-jdk-amd64/bin/java -version" +``` + +> ⚠️ La instalare, `update-alternatives` poate muta `java` default pe versiunea nouă. +> Nu e o problemă: fiecare server din Crafty pornește cu **calea completă** spre Java (vezi mai jos), +> deci serverele existente NU sunt afectate de schimbarea default-ului. + +### Pas 2 — Actualizează serverul în Crafty (`https://10.0.20.162:8443`) + +1. **Oprește** serverul. +2. **Înlocuiește jar-ul** cu build-ul nou (ex. Paper pentru versiunea dorită) — prin upload sau funcția de update din Crafty. Numele rămâne `paper.jar`. +3. Deschide serverul → tab **Config** → câmpul **Server Execution Command** și schimbă **doar calea de Java** spre versiunea nouă: + ``` + "/usr/lib/jvm/temurin-25-jdk-amd64/bin/java" -Xms4096M -Xmx8192M -jar paper.jar nogui + ``` + (păstrezi restul argumentelor; modifici doar `temurin-21` → `temurin-25`) +4. **Salvează** și **pornește** serverul. + +### Verificare din linia de comandă (opțional) + +Comenzile de execuție per server sunt în baza de date Crafty: + +```bash +ssh root@10.0.20.200 "pct exec 101 -- bash -c ' +PY=/var/opt/minecraft/crafty/crafty-4/.venv/bin/python +\$PY -c \"import sqlite3; c=sqlite3.connect(\\\"/var/opt/minecraft/crafty/crafty-4/app/config/db/crafty.sqlite\\\"); [print(n,\\\"=>\\\",e) for n,e in c.execute(\\\"SELECT server_name, execution_command FROM servers\\\")]\" +'" +``` + +> Editarea comenzii se face din interfața Crafty, NU direct în SQLite (baza rulează cu WAL; +> modificările manuale necesită oprirea serviciului `crafty` și pot fi suprascrise). + +--- + +## Comenzi utile + +```bash +# Status / restart Crafty +ssh root@10.0.20.200 "pct exec 101 -- systemctl status crafty" +ssh root@10.0.20.200 "pct exec 101 -- systemctl restart crafty" + +# Versiunile de Java instalate +ssh root@10.0.20.200 "pct exec 101 -- ls /usr/lib/jvm/" + +# Versiunea de Crafty +ssh root@10.0.20.200 "pct exec 101 -- cat /var/opt/minecraft/crafty/crafty-4/app/config/version.json" +``` + +--- + +## Istoric + +- **2026-06-29** — Instalat Temurin 25 JDK (LTS) pentru a rula versiunea nouă de Minecraft pe serverul „Marius" (cerea Java 25+). Comanda de execuție mutată de pe Temurin 21 pe Temurin 25.