Initial vault setup
This commit is contained in:
@@ -0,0 +1,144 @@
|
||||
---
|
||||
title: Crafty Controller
|
||||
created: 2026-06-07
|
||||
updated: 2026-06-07
|
||||
type: app
|
||||
tags: [catalogue, gaming, minecraft, server-management, python]
|
||||
confidence: high
|
||||
contested: false
|
||||
sources: [https://selfh.st/apps/?search=Crafty+Controller]
|
||||
---
|
||||
|
||||
# Crafty Controller ⛏️
|
||||
> Panneau de gestion web pour serveurs Minecraft, Java et Bedrock — création, supervision, sauvegardes et contrôle à distance.
|
||||
|
||||
| Métadonnée | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | https://craftycontrol.com |
|
||||
| **GitHub** | https://github.com/alphariver/crafty-3 |
|
||||
| **License** | GPL-3.0 |
|
||||
| **Langage** | Python |
|
||||
| **Étoiles** | 137 |
|
||||
| **Dernière MAJ** | 2025 |
|
||||
| **Catégorie** | [[cat-gaming]] |
|
||||
|
||||
## Description
|
||||
|
||||
Crafty Controller est un panneau d'administration open source dédié à l'orchestration de serveurs de jeux, Minecraft en tête, mais aussi d'autres titres Java/Bedrock. Il encapsule la complexité de gestion des binaires Java, des arguments JVM, des fichiers de configuration `server.properties` et de la surveillance temps réel dans une interface web unique. L'objectif affiché est de permettre à un administrateur de déployer un nouveau serveur, le démarrer, le surveiller, le sauvegarder et l'arrêter sans jamais toucher à un terminal.
|
||||
|
||||
Le cœur de Crafty est un daemon Python (Flask + Socket.IO) qui communique avec les processus Java enfants via des flux stdout/stderr capturés, des fichiers PID et des signaux système. Une base de données MariaDB ou SQLite stocke les métadonnées, les comptes utilisateurs, les plannings de tâches Cron et l'historique des exécutions. Une interface React modernisée expose tableaux de bord, consoles live, explorateurs de fichiers, gestion des mondes et modules complémentaires. Des statistiques RAM/CPU, des graphiques joueurs connectés et des événements sont historisés pour audit.
|
||||
|
||||
Crafty se distingue par sa capacité à gérer simultanément plusieurs instances sur une même machine (avec allocation de ports et de RAM dédiée), à empaqueter des JAR custom, à créer des serveurs Bedrock cross-play et à déclencher des sauvegardes incrémentielles locales ou distantes (S3, SFTP). Il supporte les mods Forge, Fabric, Paper, Purpur et les packs de ressources, ce qui en fait une solution de référence pour les hébergeurs communautaires comme pour les particuliers.
|
||||
|
||||
## Installation
|
||||
|
||||
### Docker Compose
|
||||
|
||||
```yaml
|
||||
version: "3.8"
|
||||
services:
|
||||
crafty:
|
||||
image: registry.gitlab.com/crafty-controller/crafty-3:latest
|
||||
container_name: crafty-controller
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8000:8000" # Web UI
|
||||
- "25565:25565" # Minecraft par défaut
|
||||
- "19132:19132/udp" # Bedrock par défaut
|
||||
environment:
|
||||
- CRAFTY_DB_HOST=mariadb
|
||||
- CRAFTY_DB_USER=crafty
|
||||
- CRAFTY_DB_PASS=changeme
|
||||
- CRAFTY_DB_NAME=crafty
|
||||
- CRAFTY_WEB_HOST=0.0.0.0
|
||||
- CRAFTY_WEB_PORT=8000
|
||||
volumes:
|
||||
- ./data:/crafty/data
|
||||
- ./servers:/crafty/servers
|
||||
- ./backups:/crafty/backups
|
||||
- ./logs:/crafty/logs
|
||||
depends_on:
|
||||
- mariadb
|
||||
|
||||
mariadb:
|
||||
image: mariadb:11
|
||||
container_name: crafty-db
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
MARIADB_ROOT_PASSWORD: rootpw
|
||||
MARIADB_DATABASE: crafty
|
||||
MARIADB_USER: crafty
|
||||
MARIADB_PASSWORD: changeme
|
||||
volumes:
|
||||
- ./db:/var/lib/mysql
|
||||
```
|
||||
|
||||
### Installation manuelle
|
||||
|
||||
Prérequis : Python 3.9+, Java 17+ (selon version MC), MariaDB/MySQL, Node optionnel pour build UI.
|
||||
|
||||
```bash
|
||||
git clone https://github.com/alphariver/crafty-3.git
|
||||
cd crafty-3
|
||||
python3 -m venv venv && source venv/bin/activate
|
||||
pip install -r requirements.txt
|
||||
python main.py -config config/default.json
|
||||
```
|
||||
|
||||
L'interface est alors accessible sur `http://localhost:8000`. Le compte admin par défaut est `admin/admin` et doit être changé immédiatement.
|
||||
|
||||
## Configuration
|
||||
|
||||
Le fichier `config/default.json` (ou `config.yaml` en v4) regroupe les paramètres critiques :
|
||||
|
||||
- **Identifiants BD** : `db_host`, `db_user`, `db_pass`, `db_name`, `db_port` (3306 par défaut).
|
||||
- **Serveur web** : `web_host`, `web_port`, secret key, activation HTTPS/TLS, CORS.
|
||||
- **Chemins** : répertoire des serveurs, dossier de backups, dossier de logs, dossier des mods.
|
||||
- **Sauvegardes** : fréquence Cron, rétention, destinations distantes (S3, SFTP, Rclone).
|
||||
- **Limites** : RAM par défaut des serveurs, mémoire JVM heap min/max, nombre max d'instances concurrentes.
|
||||
- **Sécurité** : 2FA TOTP, OAuth2 (Google, Discord, GitHub), rate limiting, IP whitelist.
|
||||
|
||||
L'interface permet ensuite de créer des serveurs Minecraft en assistant : choix de la version (snapshot, release, modded), type de JAR (Vanilla, Paper, Spigot, Forge, Fabric, Purpur), monde initial, seed, gamemode, difficulté, motd, max-players, whitelist, ops, view-distance et RCON. Chaque serveur a sa propre console live, son explorateur de fichiers (`server.properties`, `whitelist.json`, `ops.json`, `banned-players.json`, mods, configs), ses statistiques graphiques et son planificateur de redémarrage.
|
||||
|
||||
## Alternatives
|
||||
|
||||
### Open Source auto-hébergées
|
||||
- [[app-minecraft-server]] — vanilla brut, sans panneau.
|
||||
- **Pterodactyl Panel** + wings — gestion multi-jeux (Minecraft, CS2, Valheim, etc.), très utilisé par les hébergeurs communautaires.
|
||||
- **AMP (Application Management Panel) de CubeCoders** — multi-jeux propriétaire, support étendu (Palworld, Satisfactory, ARK).
|
||||
- **MCSManager** — panel web léger Minecraft écrit en Node.js, support Docker.
|
||||
- **rcon-cli** + cron — méthode minimaliste par scripts.
|
||||
- **Hetzner Cloud + Docker** — déploiement d'instances MC jetables.
|
||||
|
||||
### Propriétaires
|
||||
- **Aternos** — gratuit avec files d'attente, limitations sévères.
|
||||
- **BisectHosting** — location de serveurs managés payants.
|
||||
- **Shockbyte**, **Apex Hosting**, **Hostinger MC** — concurrents directs.
|
||||
|
||||
## Sécurité
|
||||
|
||||
- Changer immédiatement le mot de passe admin et activer le **2FA TOTP** dans `User Settings`.
|
||||
- Mettre Crafty derrière un reverse proxy (Traefik, Nginx, Caddy) avec TLS valide (Let's Encrypt) ; ne jamais exposer le port 8000 en clair sur Internet.
|
||||
- Activer l'**authentification OAuth2** (Google/Discord) pour limiter les mots de passe stockés.
|
||||
- Restreindre l'accès par **IP whitelist** ou VPN (WireGuard, Tailscale).
|
||||
- Sauvegardes chiffrées côté destination (S3 SSE, SFTP clé SSH).
|
||||
- Isoler les serveurs Minecraft dans des conteneurs Docker séparés avec limites CPU/RAM (`deploy.resources.limits`).
|
||||
- Surveiller les logs de console : alertes sur crashloop, OOM, plugins malveillants, scans RCON.
|
||||
- Mettre à jour régulièrement — Crafty a connu des CVEs sur son API Flask et son upload de JAR.
|
||||
|
||||
## Ressources
|
||||
|
||||
- Documentation officielle : https://docs.craftycontrol.com
|
||||
- Wiki communautaire : https://wiki.craftycontrol.com
|
||||
- Discord Crafty : https://discord.gg/crafty
|
||||
- Suivi des versions Minecraft : https://minecraft.wiki
|
||||
- PaperMC (JAR optimisé) : https://papermc.io
|
||||
- Forge : https://files.minecraftforge.net
|
||||
- Fabric : https://fabricmc.net
|
||||
|
||||
## Pages Liées
|
||||
- [[cat-gaming]]
|
||||
- [[recettes-docker-compose]]
|
||||
- [[app-minecraft-server]]
|
||||
- [[app-traefik]]
|
||||
- [[app-authentik]]
|
||||
Reference in New Issue
Block a user