Files
NationsGlory_ServeurBuild_Red/TECHNICAL_NOTES.md

274 lines
7.0 KiB
Markdown

# 📋 Notes Techniques - Serveur NationsGlory
## Configuration système
### Docker Container
```bash
Image: anapsix/alpine-java:7
Base: Alpine Linux
Java: OpenJDK 1.7.0_80
Architecture: amd64
```
### Commande de lancement
```bash
docker run -it --rm \
--ulimit nofile=65535:65535 \
-p 25565:25565 \
-v "$PWD":/server \
anapsix/alpine-java:7 \
sh -c 'cd /server && java -Xmx2G -Xms1G -XX:+UseG1GC -jar mcpc.jar nogui'
```
### Paramètres JVM
- `-Xmx2G` : RAM maximale 2 GB
- `-Xms1G` : RAM initiale 1 GB
- `-XX:+UseG1GC` : Garbage Collector G1 (optimisé pour serveurs)
- `--ulimit nofile=65535:65535` : Limite de fichiers ouverts (évite erreur ENOMEM)
## Structure Maven (libraries/)
```
libraries/
├── net/minecraft/launchwrapper/1.8/launchwrapper-1.8.jar
├── org/ow2/asm/asm-all/4.1/asm-all-4.1.jar
├── org/scala-lang/
│ ├── scala-library/2.10.2/scala-library-2.10.2.jar
│ └── scala-compiler/2.10.2/scala-compiler-2.10.2.jar
├── lzma/lzma/0.0.1/lzma-0.0.1.jar
└── net/sf/jopt-simple/jopt-simple/4.5/jopt-simple-4.5.jar
```
## Mods chargés (21)
1. **mcp** - Minecraft Coder Pack
2. **FML** - Forge Mod Loader
3. **Forge** - Minecraft Forge 9.11.1.965
4. **AquaTweaks** - Modifications aquatiques
5. **etfuturum** - Fonctionnalités futures
6. **bspkrsCore** - Bibliothèque de base
7. **CalclaviaCore** - Core pour mods électriques
8. **Autoutils** - Outils automatiques
9. **Chisel** - Blocs décoratifs variés
10. **customnpcs** - PNJs personnalisables
11. **FlansMod** - Véhicules, avions, armes
12. **MattCore** - Core de base
13. **model-api** - API de modèles
14. **nabot** - Mod NationsGlory
15. **netherrocks** - Minerais du Nether
16. **BiblioCraft** - Meubles et décorations
17. **ParachuteMod** - Parachutes
18. **TLSpecialArmor** - Armures spéciales
19. **UniversalElectricity** - Système électrique
20. **weaponmod** - Armes avancées
21. **WesterosBlocks** - Blocs Game of Thrones
## Plugins Bukkit (2)
### WorldEdit
- Version: Compatible Bukkit 1.6.4
- Taille: 8.8 KB
- Source: dev.bukkit.org/projects/worldedit/files/562101
### Essentials
- Version: Compatible Bukkit 1.6.4
- Taille: 8.8 KB
- Source: dev.bukkit.org/projects/essentials/files/862412
## Fichiers de configuration
### server.properties (principaux paramètres)
```properties
server-port=25565
max-players=20
gamemode=1
difficulty=0
spawn-monsters=false
spawn-npcs=true
spawn-animals=true
pvp=false
level-type=FLAT
level-name=world
online-mode=false
allow-flight=true
view-distance=10
```
### bukkit.yml
Configuration Bukkit par défaut générée automatiquement.
### spigot.yml
Configuration Spigot (intégré dans MCPC+).
### forge.cfg
Configuration Forge pour le chargement des mods.
## Permissions système
### Propriétaire des fichiers
```bash
innotex:innotex - Fichiers utilisateur
root:root - Fichiers générés par Docker (world, config, etc.)
```
### Correction des permissions si nécessaire
```bash
sudo chown -R innotex:innotex /home/innotex/Documents/Projet/Serveur\ NationsGlory/server-final/
```
## Ports réseau
- **25565/TCP** : Port Minecraft principal
- Mappé avec `-p 25565:25565` dans Docker
## Logs et monitoring
### Fichiers de logs
```
server.log - Log principal temps réel
ForgeModLoader-server-0.log - Logs Forge
*.log.lck - Fichiers de verrouillage (ne pas supprimer pendant exécution)
crash-reports/ - Rapports de crash
```
### Rotation des logs
Les logs sont automatiquement archivés :
- `server.log.1`, `server.log.2`, etc.
- `ForgeModLoader-server-0.log.1`, etc.
## Performances
### Métriques observées
- Démarrage: ~0.8 secondes
- RAM utilisée: ~1.2 GB en fonctionnement
- CPU: Variable selon nombre de joueurs
### Optimisations appliquées
- G1GC pour réduction des pauses GC
- ulimit nofile élevé (65535)
- view-distance modéré (10 chunks)
## Problèmes connus et solutions
### SEVERE: Anonymous items
**Problème**: Messages "anonymous item will NOT survive a 1.7 upgrade"
**Impact**: Aucun sur Minecraft 1.6.4
**Solution**: Ignorer, avertissements pour migration future
### Item discrepancies (IDs 2054, 4095)
**Problème**: Items manquants de mods
**Impact**: Avertissements au démarrage, pas de crash
**Solution**: Monde généré avec config différente, supprimable si besoin
### Invalid material warnings (WesterosBlocks)
**Problème**: Material 'stone' et step sound 'dirt' invalides
**Impact**: Minimal, blocs fonctionnels
**Solution**: Problème de mod, ignorer
### MattparksCore update check failed
**Problème**: Échec de vérification de mise à jour
**Impact**: Aucun, fonctionnalité cosmétique
**Solution**: Ignorer ou désactiver dans config
## Compatibilité
### Client Minecraft
- Version requise: **1.6.4**
- Launcher: NationsGlory, MultiMC, ou launcher officiel avec profile 1.6.4
- Mods client: Même liste que serveur recommandée
### Système d'exploitation
- ✅ Linux (testé sur Debian 13)
- ✅ Windows (via Docker Desktop)
- ✅ macOS (via Docker Desktop)
### Dépendances
- Docker 20.10+
- 4 GB RAM système minimum
- 1 GB espace disque
## Backup et restauration
### Fichiers critiques à sauvegarder
```
server-final/world/ # Monde principal
server-final/DIM1/ # Nether (si existe)
server-final/DIM-1/ # End (si existe)
server-final/ops.txt # Opérateurs
server-final/white-list.txt # Liste blanche
server-final/banned-*.txt # Bans
```
### Script de backup automatique
```bash
#!/bin/bash
cd /home/innotex/Documents/Projet/Serveur\ NationsGlory/server-final
DATE=$(date +%Y%m%d-%H%M)
tar -czf ../backups/world-$DATE.tar.gz world/ DIM*/
echo "Backup créé: world-$DATE.tar.gz"
```
## Commandes utiles
### Monitoring
```bash
# Voir les processus Docker
docker ps
# Logs en temps réel
docker logs -f <container_id>
# Utilisation ressources
docker stats
# Joueurs connectés
grep "logged in" server-final/server.log | tail -10
```
### Maintenance
```bash
# Arrêt propre
docker stop <container_id>
# Forcer l'arrêt (déconseillé)
docker kill <container_id>
# Nettoyer les conteneurs arrêtés
docker container prune
```
## Sécurité
### Points d'attention
- ⚠️ **online-mode=false** : Pas d'authentification Mojang
- ⚠️ **Aucun firewall** : Port 25565 exposé
- ⚠️ **Pas de whitelist** : Serveur public par défaut
### Recommandations
1. Activer whitelist pour serveur privé
2. Utiliser iptables pour filtrer IPs
3. Configurer les permissions via OP
4. Sauvegardes régulières
## Version Control (.gitignore)
### Fichiers exclus
- `*.log` - Logs
- `world/` - Monde (optionnel)
- `crash-reports/` - Rapports de crash
- `cache/`, `debug/` - Fichiers temporaires
- `ops.txt`, `banned-*.txt` - Fichiers sensibles
### Fichiers versionnés
- `server-final/mcpc.jar` - Exécutable serveur
- `server-final/start-docker.sh` - Script de démarrage
- `server-final/server.properties` - Configuration
- `server-final/mods/` - Mods
- `server-final/plugins/` - Plugins
- Documentation (README, etc.)
---
**Dernière mise à jour**: 3 février 2026
**Mainteneur**: Configuration automatique GitHub Copilot