Skip to content

About

Client desktop Tauri 2 + SvelteKit pour gerer des serveurs Minecraft MineStrator (console live, SFTP, Copilote IA, MCP).

Resources

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

Minestrator Terminal

Client desktop léger, rapide et cross-platform pour piloter ses serveurs de jeu (Minecraft, Satisfactory, Factorio, Valheim, Rust…) via l'API MineStrator — console temps réel, SFTP natif complet, inspecteur NBT, marketplace de mods multi-jeux, sauvegardes, et un Copilote IA capable de diagnostiquer et réparer. L'app détecte le jeu de chaque serveur et adapte vues, console et outils en conséquence.

Tauri Svelte Rust Platforms Mobile License

Desktop (Windows · macOS · Linux) + app mobile Android, sur le même cœur Rust. La clé API vit dans le stockage sécurisé de l'OS ; mise à jour automatique intégrée (desktop signée, mobile via l'API GitHub Releases).


📸 Aperçu

🖥️ Desktop — Windows · macOS · Linux

Vue d'ensemble
Vue d'ensemble — jauges & graphes
Console
Console temps réel
SFTP
SFTP & éditeur
Marketplace
Marketplace de mods

📱 Mobile — Android

Connexion  Serveurs (groupés par MyBox)  Aperçu — jauges live  Console  Fichiers & éditeur  Réglages

Les cases grises sont des placeholders — dépose tes captures dans docs/screenshots/ (garde les mêmes noms). Guide : docs/screenshots/README.md.


✨ Fonctionnalités

🎮 Pilotage & console

  • Console temps réel (xterm.js) via WebSocket (protocole Pterodactyl Wings) : logs live, filtres par niveau (ERROR/WARN/INFO), autocomplétion des commandes, envoi avec historique, copie de la sélection.
  • Envoi multi-ligne : colle une liste de commandes → chaque ligne est envoyée comme commande séparée, dans l'ordre (au lieu d'être aplatie en une seule).
  • Export du log en un clic droit vers un service de paste : mclo.gs, l'instance MineStrator, ou pastes.dev (contenu anonymisé avant envoi).
  • Alimentation : démarrer · redémarrer · arrêter · kill.
  • Joueurs : kick, ban/unban, op, whitelist — y compris sur des pseudos hors-ligne.
  • Vue d'ensemble : statut d'exécution live, CPU/RAM/disque, graphique d'historique avec survol des valeurs. Pastille d'état d'exécution sur chaque onglet.

📁 SFTP natif intégré (russh) — un vrai gestionnaire de fichiers

  • Explorateur avec colonnes triables, glisser-déposer pour l'upload, sélection multiple.
  • Éditeur intégré (CodeMirror) : coloration JSON/YAML/TOML/Java/Properties/Shell/…, recherche dans le fichier (Ctrl+F), formatage/minification JSON.
  • Téléchargement d'un fichier, ou d'un dossier / d'une sélection en .zip (récursif côté client).
  • Gestionnaire de transferts façon navigateur : progression, upload/download suivis en parallèle.
  • Ouverture d'archives en lecture seule (.zip/.tar/.tar.gz/.gz) : parcourir, lire une entrée, en extraire une.
  • Aperçu d'images (.png/.jpg/.gif/.webp/.svg…), suppression multiple.
  • Export des fichiers texte vers un service de paste.

🧊 Inspecteur NBT & mondes (façon NBTExplorer)

  • .dat / .nbt / .schem → arbre typé repliable qui préserve le type NBT exact, recherche dans l'arbre, hints parlants (UUID, dates, coordonnées, booléens), vue et copie en SNBT (/data).
  • .mca → carte 32×32 des chunks (présence / taille / corruption en heatmap), aller à une coordonnée, ouverture de l'arbre NBT d'un chunk, rapport de corruption + réparation.

📦 Mods & sauvegardes

  • Marketplace de mods multi-jeux, adaptée automatiquement au jeu du serveur :
    • Minecraft — Modrinth / CurseForge / SpigotMC : choix de version, installation en un clic.
    • Satisfactory — ficsit.app (SMR), façon SatisfactoryModManager : résout SML + dépendances, dépose via SFTP, gère activer / désactiver / supprimer.
    • Factorio — Mod Portal officiel : installation authentifiée (compte factorio.com), résolution des dépendances requises, mise à jour de mod-list.json, redémarrage.
    • Valheim / V Rising (Thunderstore) & Rust (uMod) — parcours du catalogue + inspection des versions (installation à venir).
    • Panier & file d'attente : sélectionne plusieurs mods, installe en un seul lot (un seul redémarrage commun), avec suivi global de la progression dans le bandeau.
  • Sauvegardes : backups quotidiens automatiques (restaurables) + snapshots à la demande — le filet avant une intervention risquée.

🩺 Supervision & IA

  • Superviseur en tâche de fond : historique CPU/RAM/disque (SQLite), alertes (crash, seuils, expiration de MyBox) → notifications natives.
  • Copilote IA :
    • Diagnostic automatique (crash, surcharge prolongée) et assistant conversationnel.
    • Multi-fournisseur : Anthropic (Claude) et tout service compatible OpenAI (GPT, Gemini, Mistral, Groq, DeepSeek, OpenRouter, Ollama / LM Studio locaux…).
    • Agents CLI : Claude Code, OpenCode, Gemini CLI (utilisent l'abonnement déjà configuré sur la machine, sans clé API), avec détection automatique de leur présence.
    • Outils de réparation : docteur démarrage (crash-loop), maps corrompues (.mca), analyse de performance (Spark).
  • Serveur MCP intégré (39 outils) : expose la gestion via le Model Context Protocol → utilisable par n'importe quel client MCP (Claude Desktop, Claude Code, Cline…). Console, fichiers/SFTP, transfert binaire local ↔ serveur (upload_file/download_file : déployer jars & configs sans passer par le panel), édition find/replace sûre (edit_file — n'expose jamais les secrets au modèle), file_stat (sha256), métriques, mods, sauvegardes, diagnostic. Gating par jeu + deny-by-default sur les écritures. Intégration du MCP officiel MineStrator. Voir MCP.md.

⚙️ Confort & sécurité

  • Adaptation par jeu : détection du jeu (Minecraft Java/Bedrock, Satisfactory, Factorio, Valheim, Rust…) → vues, autocomplétion et coloration de la console, prompts/outils du Copilote ajustés. Réglages par jeu (ex. compte factorio.com, stocké au trousseau) et mode debug (données d'egg / capacités détectées).
  • Multi-onglets (dont fenêtres détachées), tray (fermer la fenêtre la masque, le superviseur reste actif), thème clair/sombre, i18n fr/en.
  • Mise à jour automatique signée : bandeau au démarrage, réglable (Réglages → Général).
  • Confidentialité : la clé API vit dans le trousseau natif ; anonymisation (mots de passe, IPv4, e-mails, secrets) avant tout envoi à une IA ou publication vers un paste ; serveur MCP en deny-by-default (les écritures se débloquent explicitement).

📦 Installation

Télécharge le dernier installeur depuis la page Releases :

OS Fichier
Windows .msi ou .exe (NSIS)
macOS .dmg (universel Intel + Apple Silicon)
Linux .AppImage, .deb ou .rpm

Au premier démarrage, saisis ta clé API MineStrator (Panel → Compte → Clés API) — elle est validée puis stockée dans le trousseau de l'OS.

Une fois installée, l'app se met à jour toute seule : elle propose les nouvelles versions au démarrage (désactivable dans les Réglages).

Les binaires ne sont pas signés au niveau OS : Windows SmartScreen / macOS Gatekeeper peuvent afficher un avertissement au premier lancement. Les artefacts de mise à jour, eux, sont signés et vérifiés (voir docs/AUTO-UPDATE.md).


🏗️ Architecture

Monorepo Cargo workspace qui sépare strictement la logique métier de l'UI : le cœur est portable vers un futur daemon Linux ou une CLI/TUI.

crates/
  minestrator-core/   Logique métier UI-agnostique : client API, WebSocket, SFTP,
                      NBT/.mca, superviseur, Copilote (LLM + agents CLI), serveur MCP.
  minestrator-mcp/    Serveur MCP autonome (headless), bâti sur le core.
  minestrator-daemon/ Daemon Linux : surveillance + push FCM (alertes mobile app fermée).
desktop/              App desktop Tauri (Windows/macOS/Linux) :
  src-tauri/          couche d'adaptation : commandes IPC, tray, pont d'events, notifications.
  src/                Frontend SvelteKit / Svelte 5 (runes) + TypeScript.
mobile/               App mobile Tauri (Android/iOS) — même core, UI tactile (à venir).
docs/                 Documentation additionnelle.
  • Stack : Tauri 2 · Rust · SvelteKit · Svelte 5 · TypeScript.
  • Desktop et mobile partagent crates/minestrator-core : chaque frontend n'est qu'une mince couche par-dessus le même cœur (le réseau vit en Rust, cf. contrainte Origin du WebSocket).
  • Tout le réseau (HTTP, WebSocket, SFTP, uploads paste) vit côté Rust ; le front ne parle qu'à une couche IPC typée (desktop/src/lib/ipc.ts).

🚀 Développement

Prérequis

  • Rust (stable) + les prérequis Tauri de ta plateforme (Windows : MSVC Build Tools + WebView2 ; Linux : webkit2gtk, librsvg, etc.).
  • Node.js 20+ et npm.

Lancer en développement

Les commandes frontend se lancent depuis desktop/ (le projet npm y vit désormais) ; les commandes Cargo depuis la racine (le workspace couvre tout le monorepo).

cd desktop
npm install          # dépendances frontend
npm run tauri dev    # app desktop en dev (hot-reload du front)

Autres commandes

# Depuis desktop/ :
npm run check                             # typecheck (svelte-check)
npm run build                             # build du frontend seul → desktop/build/
npm run tauri build                       # app packagée (installeurs)

# Depuis la racine (workspace) :
cargo test -p minestrator-core            # tests du cœur métier
cargo clippy --workspace --all-targets    # lint
cargo build -p minestrator-mcp --release  # binaire serveur MCP autonome

Publier une release

Incrémente la version (desktop : desktop/src-tauri/tauri.conf.json, desktop/package.json, Cargo.toml ; mobile : mobile/src-tauri/tauri.conf.json, mobile/package.json), puis pousse un tag :

git tag v0.3.0 && git push origin v0.3.0

GitHub Actions (release.yml) build les trois OS, signe les artefacts, génère latest.json et crée une release draft à publier. Détails : docs/AUTO-UPDATE.md.


📚 Documentation

Doc Contenu
ARCHITECTURE.md Architecture actuelle : workspace 3 crates, modules, IPC, events
DESIGN.md Charte graphique / design system
COPILOT.md Fonctionnement du Copilote IA
MCP.md Serveur MCP : catalogue d'outils, sécurité, connexion
docs/AUTO-UPDATE.md Mise à jour automatique : signature, endpoint, publication
ROADMAP.md Ce qui est livré, à finir, et le backlog
docs/history/ARCHITECTURE-V1.md Spec fondatrice V1 (historique)

📄 Licence

GNU GPL v3.0 ou ultérieure © Geoffrey Lecoq

Logiciel libre : vous pouvez l'utiliser, l'étudier, le modifier et le redistribuer, à condition que tout dérivé distribué reste sous licence GPL (copyleft).

Non affilié à MineStrator — client tiers utilisant leur API publique.

About

Client desktop Tauri 2 + SvelteKit pour gerer des serveurs Minecraft MineStrator (console live, SFTP, Copilote IA, MCP).

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages