gameservers-control/README.md
2026-06-12 14:34:44 +02:00

53 lines
1.4 KiB
Markdown

# gameservers-control
Interface web locale pour consulter et lancer des serveurs de jeux.
## Demarrage
```bash
npm install
cp .env.example .env
npm run dev
```
Variables utiles:
- `PORT`: port HTTP, defaut `3000`.
- `GAMESERVERS_STATUS_FILE`: chemin du JSON de statut monte en NFS.
- `STORAGE_DIR`: dossier de stockage local, defaut `storage`.
- `SESSION_TTL_HOURS`: duree des sessions, defaut `12`.
- `*_SSH_TARGET`: cible SSH du profil de lancement, alias SSH ou `user@host`.
- `*_SSH_PORT`: port SSH optionnel. Vide par defaut.
- `*_START_COMMAND`: commande distante executee sur la cible SSH.
Pour changer le port, modifier `.env`:
```env
PORT=8080
```
Exemple de lancement distant via SSH:
```env
GAME_1_SSH_TARGET=user@192.0.2.10
GAME_1_SSH_PORT=2222
GAME_1_START_COMMAND="bash /opt/game-server-1/start.sh"
```
Le serveur local doit reference ce profil dans `storage/servers.json`:
```json
{
"id": "game-1",
"startProfile": "GAME_1"
}
```
Au premier demarrage, si aucun groupe n'existe, un groupe `admin` est cree et son mot de passe temporaire est affiche dans les logs serveur.
## Stockage
- `storage/servers.json`: configuration locale des serveurs, profils de lancement, secrets.
- `storage/groups.json`: groupes et permissions.
- `storage/launch-logs.json`: lancements conserves 7 jours.
- `mocked/dev-gameservers-status.json`: statut mock de developpement.