https://luuxcraft.frDocumentation de l'API LuuxCraft Panel
Cette documentation décrit les routes publiques du panel : celles que le launcher appelle au démarrage et celle qui sert son téléchargement. Elles s'ouvrent sans jeton, mais restent liées à un tenant — un abonnement inactif les fait toutes répondre 403. Les routes du dashboard et de l'administration sont privées et ne sont pas documentées ici.
Launcher
Routes publiques utilisées par le launcher Minecraft
https://luuxcraft.fr/api/user/:userId/configConfiguration publique du launcher : maintenance, mode d'authentification, réseaux sociaux et identité visuelle.
Paramètres URL
| Nom | Type | Description |
|---|---|---|
| userId | uuid | Identifiant du tenant (users.id) |
Réponse(application/json)
{
"maintenance": false,
"maintenance_message": "…",
"dataDirectory": "minecraft",
"online": true,
"socialLinks": [],
"brand": {
"name": "Mon Serveur",
"iconUrl": "https://luuxcraft.fr/api/user/<uuid>/icon"
}
}https://luuxcraft.fr/api/user/:userId/articlesActualités publiées par le tenant, de la plus récente à la plus ancienne. La liste est retournée entière : il n'y a pas de pagination.
Paramètres URL
| Nom | Type | Description |
|---|---|---|
| userId | uuid | Identifiant du tenant (users.id) |
Réponse(application/json)
[
{
"id": "…",
"title": "Mise à jour",
"content": "<p>…</p>",
"author": "Luuxis",
"publish_date": "2026-09-16T10:00:00.000Z"
}
]Distribution
Première installation, mise à jour et configuration d'un launcher
https://luuxcraft.fr/api/v1/launchers/:tenantId/bootstrapInstalleur Windows de ce serveur. C'est le seul fichier dont les octets dépendent du tenant : son créneau d'identité porte l'UUID du serveur, ce qui lui permet de savoir quoi installer sans rien demander au joueur — et sans dépendre de son nom de fichier, que le joueur peut changer. Il est généré une fois par (serveur, version de bootstrap) puis servi tel quel.
Paramètres URL
| Nom | Type | Description |
|---|---|---|
| tenantId | uuid | Identifiant du tenant (users.id) |
Query Parameters
| Nom | Type | Description |
|---|---|---|
| os | windows | Seul Windows a un installeur ; Linux et macOS passent par install.sh |
Réponse(application/vnd.microsoft.portable-executable)
Content-Disposition: attachment; filename="mon-serveur-installer.exe"
<binaire>https://luuxcraft.fr/api/v1/launchers/:tenantId/install.shScript d'installation Linux et macOS, à passer à sh : « curl -fsSL <url> | sh ». Le même script couvre les deux systèmes et les deux architectures, qu'il détecte lui-même. Il installe sans droits administrateur, vérifie le SHA-256 de tout ce qu'il télécharge, et n'exécute jamais une valeur venue de l'API.
Paramètres URL
| Nom | Type | Description |
|---|---|---|
| tenantId | uuid | Identifiant du tenant (users.id) |
Réponse(text/plain)
#!/bin/sh
# Installation du launcher — Linux et macOS.
PANEL='https://luuxcraft.fr'
TENANT='…'https://luuxcraft.fr/api/v1/launchers/:tenantId/manifestCe qu'une installation doit contenir : la version du moteur, son URL et son SHA-256, puis les fichiers de configuration du serveur avec leur empreinte. Lu par l'installeur Windows, par le script POSIX, et par le moteur lui-même à chaque démarrage pour savoir s'il doit se mettre à jour.
Paramètres URL
| Nom | Type | Description |
|---|---|---|
| tenantId | uuid | Identifiant du tenant (users.id) |
Query Parameters
| Nom | Type | Description |
|---|---|---|
| os | windows | linux | macos | Système cible ; toute autre valeur est refusée |
| arch | x86_64 | aarch64 | universal | Sans elle, l'architecture la plus probable pour la cible |
| format | text | Rend le manifeste en lignes « clé valeur », pour le script POSIX qui ne peut pas supposer jq installé |
Réponse(application/json)
{
"schema": 1,
"slug": "mon-serveur",
"engine": { "version": "1.4.0", "url": "…", "sha256": "…", "format": "exe-zip" },
"client_pack": { "version": "…", "files": [ … ] }
}https://luuxcraft.fr/api/v1/launchers/:tenantId/downloadLe moteur seul, tel qu'il a été publié : les octets sont identiques pour tous les tenants et rien ne leur est ajouté. Réservé aux installations manuelles — un joueur passe par l'installeur Windows ou par install.sh, qui posent en plus la configuration du serveur sans laquelle le moteur ne démarre pas.
Paramètres URL
| Nom | Type | Description |
|---|---|---|
| tenantId | uuid | Identifiant du tenant (users.id) |
Query Parameters
| Nom | Type | Description |
|---|---|---|
| os | windows | linux | macos | Système cible ; toute autre valeur est refusée |
Réponse(application/octet-stream)
Content-Disposition: attachment; filename="mon-serveur-windows.zip"
<binaire>Codes d'erreur
Codes HTTP retournés par l'API
| Code | Description |
|---|---|
| 200 | Requête traitée avec succès |
| 400 | Paramètre manquant ou invalide (un os inconnu, par exemple) |
| 403 | Le tenant n'a pas d'abonnement actif |
| 404 | Tenant, instance ou fichier introuvable |
| 500 | Erreur interne du serveur |