server: installation auto du runtime Fabric (setup.sh/.bat)

Le runtime (jars vanilla/Fabric, libraries/, versions/) n'est pas versionne.
- setup.sh / setup.bat : telecharge fabric-installer 1.1.2 et installe
  le serveur Fabric (MC 26.3 / Loader 0.20.0) + server.jar vanilla
- start.sh / start.bat : lance setup automatiquement si le runtime manque
- README : premier lancement mis a jour
- teste en dossier vierge : installation OK
This commit is contained in:
Anaïs Saraiva
2026-10-19 20:03:37 +02:00
parent 20330310fe
commit 37fcdfb277
5 changed files with 94 additions and 14 deletions
+17 -7
View File
@@ -12,11 +12,20 @@ Serveur **Minecraft 26.3 + Fabric Loader 0.20.0**, pré-configuré en « défaut
```bash
cd server
echo "eula=true" > eula.txt
./start.sh
echo "eula=true" > eula.txt # déjà présent (eula=false) : à passer à true
./start.sh # installe le runtime automatiquement si absent, puis démarre
```
(Sous Windows : `start.bat`.)
(Sous Windows : `start.bat`, même comportement.)
Le runtime Fabric (jars vanilla/Fabric, `libraries/`, `versions/`, `.fabric/`) n'est **pas
versionné** (voir `.gitignore`) : il est (re)généré par `setup.sh`, appelé automatiquement par
`start.sh` s'il manque, ou manuellement :
```bash
cd server
nix-shell .. --run 'bash server/setup.sh' # ou : ./setup.sh (avec Java dans le PATH)
```
Au premier démarrage, le serveur génère `world/`, `config/`, `logs/`, etc.
Pour régénérer le monde (ex. changer de `level-type`), stoppe le serveur et supprime `world/`.
@@ -25,11 +34,12 @@ Pour régénérer le monde (ex. changer de `level-type`), stoppe le serveur et s
| Fichier | Rôle |
| --- | --- |
| `fabric-server-launch.jar` | Lanceur Fabric (généré par fabric-installer 1.1.2) |
| `server.jar` | Serveur Minecraft 26.3 vanilla (téléchargé par l'installeur) |
| `fabric-installer.jar` | Installeur (pour réinstaller/réparer) |
| `setup.sh` / `setup.bat` | Installe/repare le runtime Fabric (télécharge vanilla + lanceur Fabric) |
| `fabric-server-launch.jar` | Lanceur Fabric (généré par fabric-installer 1.1.2 — non versionné) |
| `server.jar` | Serveur Minecraft 26.3 vanilla (téléchargé par l'installeur — non versionné) |
| `fabric-installer.jar` | Installeur (pour réinstaller/réparer — non versionné) |
| `mods/` | 46 mods serveur (copie physique) — voir `mods/SOURCE.md` |
| `config/` | Configs générées au premier lancement (+ customs à déposer ici) |
| `config/` | Configs générées au premier lancement (non versionnées) |
| `server.properties` | Config plug-and-play (survie, normal, 20 joueurs) |
| `eula.txt` | Passer à `eula=true` avant de lancer |
| `start.sh` / `start.bat` | Scripts de lancement (4 Go RAM, `nogui`) |
+20
View File
@@ -0,0 +1,20 @@
@echo off
REM SurviePote — installe/repare le runtime serveur Fabric (MC 26.3 / Loader 0.20.0)
REM Les jars vanilla/Fabric, libraries/ et versions/ ne sont PAS versionnes (.gitignore).
setlocal
cd /d "%~dp0"
set MC_VERSION=26.3
set LOADER_VERSION=0.20.0
set INSTALLER_VERSION=1.1.2
if exist fabric-server-launch.jar (
echo Runtime deja installe ^(fabric-server-launch.jar present^) — rien a faire.
exit /b 0
)
if not exist fabric-installer.jar (
echo == Telechargement de fabric-installer %INSTALLER_VERSION% ==
curl -fSL -o fabric-installer.jar "https://maven.fabricmc.net/net/fabricmc/fabric-installer/%INSTALLER_VERSION%/fabric-installer-%INSTALLER_VERSION%.jar"
)
echo == Installation du serveur Fabric ^(MC %MC_VERSION% / Loader %LOADER_VERSION%^) ==
java -jar fabric-installer.jar server -dir . -mcversion %MC_VERSION% -loader %LOADER_VERSION% -downloadMinecraft
echo OK — lance le serveur avec start.bat
+40
View File
@@ -0,0 +1,40 @@
#!/bin/bash
# SurviePote — installe/repare le runtime serveur Fabric (MC 26.3 / Loader 0.20.0).
# Les jars vanilla/Fabric, libraries/ et versions/ ne sont PAS versionnes (voir .gitignore) :
# ce script les (re)genere dans le dossier courant. A lancer une fois sur le serveur, avant ./start.sh.
# Requiert Java (idealement Java 25, ex. via nix-shell à la racine du repo).
set -e
cd "$(dirname "$0")"
MC_VERSION=26.3
LOADER_VERSION=0.20.0
INSTALLER_VERSION=1.1.2
INSTALLER_JAR=fabric-installer.jar
LAUNCH_JAR=fabric-server-launch.jar
if [ -f "$LAUNCH_JAR" ]; then
echo "Runtime deja installe ($LAUNCH_JAR present) — rien a faire."
exit 0
fi
command -v java >/dev/null 2>&1 || {
echo "ERREUR: java introuvable."
echo "Depuis la racine du repo : nix-shell . --run 'bash server/setup.sh'"
exit 1
}
if [ ! -f "$INSTALLER_JAR" ]; then
echo "== Telechargement de fabric-installer $INSTALLER_VERSION =="
curl -fSL -o "$INSTALLER_JAR" \
"https://maven.fabricmc.net/net/fabricmc/fabric-installer/${INSTALLER_VERSION}/fabric-installer-${INSTALLER_VERSION}.jar"
fi
echo "== Installation du serveur Fabric (MC $MC_VERSION / Loader $LOADER_VERSION) =="
java -jar "$INSTALLER_JAR" server \
-dir . \
-mcversion "$MC_VERSION" \
-loader "$LOADER_VERSION" \
-downloadMinecraft
echo
echo "OK — runtime installe. Lance le serveur avec : ./start.sh"
+4
View File
@@ -1,6 +1,10 @@
@echo off
REM SurviePote — lancement serveur Fabric MC 26.3 / Loader 0.20.0
cd /d "%~dp0"
if not exist fabric-server-launch.jar if not exist server.jar (
echo Runtime serveur absent -^> installation automatique...
call setup.bat
)
if exist fabric-server-launch.jar (
set JAR=fabric-server-launch.jar
) else if exist server.jar (
+13 -7
View File
@@ -3,6 +3,19 @@
# Recommandé : nix-shell (voir ../shell.nix + ../.envrc) pour avoir Java 25 + Node 22.
cd "$(dirname "$0")"
# MC 26.3 exige Java 25 (class file version 69.0).
if ! java -version 2>&1 | grep -q 'version "25'; then
echo "ERREUR: Java 25 requis (java actuel : $(java -version 2>&1 | head -1))."
echo "Lance via nix-shell : nix-shell .. --run './start.sh' (ou direnv allow à la racine)."
exit 1
fi
# Runtime absent (clone neuf) -> installation automatique.
if [ ! -f fabric-server-launch.jar ] && [ ! -f server.jar ]; then
echo "Runtime serveur absent -> installation automatique (setup.sh)..."
bash setup.sh
fi
if [ -f fabric-server-launch.jar ]; then
JAR=fabric-server-launch.jar
elif [ -f server.jar ]; then
@@ -12,11 +25,4 @@ else
exit 1
fi
# MC 26.3 exige Java 25 (class file version 69.0).
if ! java -version 2>&1 | grep -q 'version "25'; then
echo "ERREUR: Java 25 requis (java actuel : $(java -version 2>&1 | head -1))."
echo "Lance via nix-shell : nix-shell .. --run './start.sh' (ou direnv allow à la racine)."
exit 1
fi
java -Xms4G -Xmx4G -jar "$JAR" nogui