55 lines
1.5 KiB
Markdown
55 lines
1.5 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.
|
|
- `*_SSH_KEY_FILE`: chemin optionnel vers une cle SSH privee.
|
|
- `*_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_SSH_KEY_FILE=/home/app/.ssh/game-server-key
|
|
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.
|