Cette procedure vise le flux suivant : pousser le code sur GitHub, laisser GitHub Actions publier l'image Docker sur GHCR, puis tirer la derniere image depuis le Synology.
Exemple :
/volume1/docker/minecraft/data/world-1-21
/volume1/docker/MCServer-panel/pb_data
/volume1/docker/MCServer-panel/docker-compose.yml
Le meme dossier monde doit etre monte :
- dans Minecraft sur
/data; - dans MCServer-panel sur
/mc-data.
Image de test continue :
ghcr.io/doosys/mcserver-panel:latest
Image versionnee :
ghcr.io/doosys/mcserver-panel:1.1.16
Si le package GHCR est prive :
docker login ghcr.ioUtiliser un token GitHub avec read:packages.
Le compose de ce projet ne gere que MCServer-panel. Le serveur Minecraft existant reste dans son conteneur actuel et ne sera pas redemarre par les commandes du panel.
Preparer le dossier du panel :
mkdir -p /volume1/docker/MCServer-panel/pb_data
cd /volume1/docker/MCServer-panel
cp docker-compose.example.yml docker-compose.yml
cp .env.example .envModifier .env avec SERVER, RCON_PASSWORD, MC_WORLD_PATH et PANEL_DATA_PATH.
Le panel doit joindre le conteneur Minecraft via un reseau Docker commun. Une fois seulement, sans reboot du serveur Minecraft :
docker network create MCServer-panel-net
docker network connect MCServer-panel-net minecraftDeploiement ou mise a jour du panel uniquement :
cd /volume1/docker/MCServer-panel
docker compose pull MCServer-panel
docker compose up -d MCServer-panelSuivi des logs :
docker logs -f MCServer-panelHealthcheck :
docker inspect --format='{{json .State.Health}}' MCServer-panelLe conteneur cree automatiquement :
- le superuser PocketBase avec
PB_SUPERUSER_EMAIL/PB_SUPERUSER_PASSWORD; - l'utilisateur panel avec
PANEL_ADMIN_EMAIL/PANEL_ADMIN_PASSWORD.
PocketBase admin :
http://IP_DU_SERVEUR:8088/_/
Panel :
http://IP_DU_SERVEUR:8088
Si le dashboard affiche RCON off, verifier d'abord que le panel utilise la bonne image et le bon env :
docker logs MCServer-panel | grep mcserver-panel@
docker exec MCServer-panel printenv SERVER RCON_PORT MC_RCON_HOST MC_RCON_PORT MC_DOCKER_NETWORKVerifier que le conteneur Minecraft est bien sur le reseau commun :
docker network inspect MCServer-panel-netVerifier la resolution DNS depuis le panel :
docker exec MCServer-panel getent hosts minecraftDepuis l'UI connectee, l'endpoint suivant renvoie le diagnostic TCP/RCON sans exposer le mot de passe :
http://IP_DU_SERVEUR:8088/panel-api/diagnostics/rcon
Interpretation rapide :
tcp.ok=falseavecENOTFOUND: nomSERVERincorrect ou reseau Docker absent.tcp.ok=falseavecECONNREFUSED: mauvais port ou RCON non actif cote Minecraft.tcp.ok=trueetcommand.ok=false: mot de passe RCON incorrect ou protocole RCON refuse.command.ok=true: RCON fonctionne, le dashboard doit remonter les joueurs.
Expose uniquement :
25565 -> Minecraft Java
8088 -> Panel web
Ne pas exposer RCON 25575.
Si le panel sort du LAN, placer un reverse proxy HTTPS devant 8088, idealement avec restriction IP, VPN ou authentification supplementaire.
La page Logs peut lire les logs du conteneur Minecraft et du conteneur MCServer-panel si le socket Docker est monte en lecture seule :
DOCKER_SOCKET_PATH=/var/run/docker.sock
MC_CONTAINER_NAME=minecraft
PANEL_CONTAINER_NAME=MCServer-panel
Sans ce montage, la source Minecraft latest.log reste disponible via le volume /mc-data, mais les sources docker logs afficheront une erreur Docker API indisponible.
Note auth navigateur : depuis 1.1.16, le panel et PocketBase admin utilisent deux stockages separes. Si une ancienne session reste bloquee, ouvrir d abord le panel une fois nettoie automatiquement l ancienne session panel stockee dans PocketBase admin.