Aller au contenu principal
logoYvan Kerdanet
Tous les projets
KerdanetYvan /

the-foundry

Full-stack platform for a modded Minecraft server — player onboarding, real-time monitoring dashboard, and server management. Built with Next.js, Docker, and deployed on a self-hosted VPS.

Créé le 18 juin 2026 · Dernière mise à jour 25 juin 2026

// langages

TypeScript96.2%CSS1.5%JavaScript1.3%Dockerfile1.0%

// README

The Foundry

Portail d'administration pour serveur Minecraft Forge. Interface web permettant de gérer les joueurs, les mods, les annonces et de surveiller les métriques du serveur en temps réel.

Fonctionnalités

  • Monitoring — CPU, RAM, disque, TPS, uptime (Hetzner + Minecraft), graphes sur 1h
  • Modération — whitelist, kick, ban des joueurs
  • Mods — liste, upload et suppression de .jar avec redémarrage guidé du serveur
  • Invitations — liens avec limite d'utilisation et expiration
  • Annonces — éditeur Markdown avec prévisualisation
  • Terminal RCON — console live avec commandes rapides et stream des logs

Stack

  • Next.js 16 (App Router) · TypeScript · Tailwind CSS 4
  • PostgreSQL 16 · Drizzle ORM
  • RCON (protocole Minecraft) pour les commandes serveur

Variables d'environnement

Copier .env.example en .env et renseigner les valeurs :

VariableDescriptionDéfaut
DATABASE_URLURL PostgreSQL
SESSION_SECRETSecret HMAC pour les sessions
APP_URLURL publique de l'app
SERVER_ADDRESSAdresse de connexion Minecraft
RCON_HOSTHôte RCON du serveur Minecraftlocalhost
RCON_PORTPort RCON25575
RCON_PASSWORDMot de passe RCON
MC_LOG_PATHChemin du fichier latest.log/host/root/opt/minecraft/minecraft/data/logs/latest.log
MC_MODS_PATHChemin du dossier mods//host/root/opt/minecraft/minecraft/data/mods

Déploiement (production)

docker compose up -d

Le docker-compose.override.yml (non versionné) doit monter le système de fichiers hôte pour les métriques, logs et mods :

services: web: volumes: - /:/host/root:ro - /opt/minecraft/minecraft/data/mods:/host/root/opt/minecraft/minecraft/data/mods

Le premier mount en :ro couvre les métriques et les logs. Le second, sans :ro, permet à l'app d'écrire dans le dossier mods (upload / suppression).

Développement local

Prérequis : Node.js 20+, Docker Desktop

npm install

Copier .env.example en .env et configurer :

DATABASE_URL=postgresql://foundry:foundry@localhost:5433/foundry RCON_HOST=localhost RCON_PASSWORD=devrcon MC_MODS_HOST_PATH="C:/chemin/vers/ton/dossier/mods" MC_MODS_PATH="C:\\chemin\\vers\\ton\\dossier\\mods" MC_LOG_PATH="C:/chemin/vers/le/projet/dev-logs/latest.log"

Lancer la base de données et le serveur Minecraft de dev :

# Base de données uniquement docker compose up db -d # Serveur Minecraft Forge 1.20.1 (premier démarrage ~3 min) docker compose -f docker-compose.dev.yml up

Lancer l'app :

npm run dev

Note : MC_MODS_HOST_PATH (forward slashes) est lu par Docker Compose pour le bind-mount.
MC_MODS_PATH (backslashes sur Windows) est lu par Next.js pour accéder aux fichiers.
Les deux doivent pointer vers le même dossier.