# palico-bot

## Configuration

La configuration sensible est stockée dans un fichier `.env` exclu de Git.
Chaque environnement (poste local ou VM de production) possède son propre
fichier `.env` avec les valeurs appropriées.

Le fichier `.env.example` documente les variables attendues sans contenir de
secret. Les fichiers réels doivent rester hors du dépôt.

Générer une clé d'API robuste avec :

```bash
openssl rand -hex 32
```

```bash
# Lancer le bot
npm start

# Déployer les commandes Discord
npm run deploy
```

Node.js 22.12 ou supérieur est nécessaire pour la prise en charge du protocole
vocal DAVE de Discord.

## Prérequis

- Node.js 24 LTS ;
- FFmpeg et FFprobe disponibles dans le `PATH` ;
- accès UDP sortant vers les serveurs vocaux Discord.

Sur Debian ou Ubuntu :

```bash
sudo apt install ffmpeg
npm ci
npm run check
```

## Données persistantes

Le dossier `storage/` est une donnée applicative et ne doit pas être remplacé
pendant un déploiement. Sauvegarder régulièrement :

- `storage/runtime/library.json` ;
- `storage/permanent/`.

Les fichiers placés dans `storage/temp/` sont temporaires et nettoyés après
24 heures.

La liste des serveurs de jeux est locale. La créer à partir du modèle :

```bash
cp src/static/gameservers-list.example.json src/static/gameservers-list.json
```

## Déploiement

Un push sur `main` exécute les contrôles syntaxiques, les tests et l'audit npm
avant d'appeler `/usr/local/bin/deploy-palico-bot` sur le serveur. Le workflow
vérifie ensuite la route publique `/healthz`.
