LuuxCraftHome
Retour

API LuuxCraft Panel

v1.0.0
Base URL: https://luuxcraft.fr

Documentation 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.

GET

Launcher

Routes publiques utilisées par le launcher Minecraft

GEThttps://luuxcraft.fr/api/user/:userId/config

Configuration publique du launcher : maintenance, mode d'authentification, réseaux sociaux et identité visuelle.

Auth:Aucune — abonnement actif requis côté tenant (403 sinon)

Paramètres URL

NomTypeDescription
userIduuidIdentifiant 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"
  }
}
GEThttps://luuxcraft.fr/api/user/:userId/articles

Actualité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.

Auth:Aucune — abonnement actif requis côté tenant (403 sinon)

Paramètres URL

NomTypeDescription
userIduuidIdentifiant 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

GEThttps://luuxcraft.fr/api/v1/launchers/:tenantId/bootstrap

Installeur 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.

Auth:Aucune — abonnement actif requis côté tenant (403 sinon)

Paramètres URL

NomTypeDescription
tenantIduuidIdentifiant du tenant (users.id)

Query Parameters

NomTypeDescription
oswindowsSeul 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>
GEThttps://luuxcraft.fr/api/v1/launchers/:tenantId/install.sh

Script 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.

Auth:Aucune — abonnement actif requis côté tenant (403 sinon)

Paramètres URL

NomTypeDescription
tenantIduuidIdentifiant du tenant (users.id)

Réponse(text/plain)

#!/bin/sh
# Installation du launcher — Linux et macOS.
PANEL='https://luuxcraft.fr'
TENANT='…'
GEThttps://luuxcraft.fr/api/v1/launchers/:tenantId/manifest

Ce 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.

Auth:Aucune — abonnement actif requis côté tenant (403 sinon)

Paramètres URL

NomTypeDescription
tenantIduuidIdentifiant du tenant (users.id)

Query Parameters

NomTypeDescription
oswindows | linux | macosSystème cible ; toute autre valeur est refusée
archx86_64 | aarch64 | universalSans elle, l'architecture la plus probable pour la cible
formattextRend 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": [ … ] }
}
GEThttps://luuxcraft.fr/api/v1/launchers/:tenantId/download

Le 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.

Auth:Aucune — abonnement actif requis côté tenant (403 sinon)

Paramètres URL

NomTypeDescription
tenantIduuidIdentifiant du tenant (users.id)

Query Parameters

NomTypeDescription
oswindows | linux | macosSystè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

CodeDescription
200Requête traitée avec succès
400Paramètre manquant ou invalide (un os inconnu, par exemple)
403Le tenant n'a pas d'abonnement actif
404Tenant, instance ou fichier introuvable
500Erreur interne du serveur

LuuxCraft Panel API Documentation • Généré automatiquement