# Déploiement du Bot Engine sous Windows

## Prérequis

- Windows 10/11 ou Windows Server maintenu ;
- Node.js 22 ou supérieur ;
- accès HTTPS au panel FilyX ;
- une application créée dans Kick Developers ;
- NSSM pour le mode service.

Playwright, un profil de navigateur et les cookies Kick ne sont plus utilisés.

## Application Kick

Créer l’application **FilyX** dans les paramètres développeur Kick :

- URL de redirection : `http://localhost:47831/oauth/callback`
- Webhooks : activés
- URL du webhook : `https://filyx.hom3r-off.fr/api/kick/webhook`

Conserver le Client ID et le Client Secret hors de Git.

## Installation

Dans `apps/bot-engine` :

```powershell
npm install
```

Copier `.env.example` vers `.env` à la racine et définir :

- `FILYX_PANEL_URL`
- `FILYX_WORKER_ID`
- `FILYX_WORKER_SECRET`
- `FILYX_OAUTH_MASTER_KEY`
- `FILYX_KICK_CLIENT_ID`
- `FILYX_KICK_CLIENT_SECRET`
- `FILYX_KICK_REDIRECT_URI`

La clé OAuth doit contenir exactement 32 octets, en hex ou base64.

## Autoriser FiIyx

Lancer :

```powershell
.\scripts\session-manager.ps1
```

La page officielle `id.kick.com` s’ouvre. Se connecter au compte exact `fiIyx`
et approuver les permissions. L’assistant vérifie l’identité avec l’API publique,
puis chiffre le jeton d’accès et le jeton de renouvellement dans
`runtime/secure/fiIyx-oauth.enc`.

## Événements et messages

- Les messages sortants utilisent `POST /public/v1/chat` avec `type=user`.
- Le moteur obtient un jeton d’application pour abonner les chaînes connues.
- Kick envoie les événements au webhook IONOS signé.
- Le site les place dans `kick_webhook_inbox`.
- Le moteur les récupère via l’API worker HMAC.

## Test en console

```powershell
npm test
npm start
```

Vérifier dans l’administration :

- heartbeat du worker ;
- autorisation OAuth valide ;
- transport `official-api-webhooks` ;
- chaînes surveillées ;
- profondeur de file.

## Installation comme service

Le raccourci `FINIR-INSTALLATION-FILYX.cmd` guide la configuration, l’autorisation
OAuth et l’installation. Pour une installation manuelle :

```powershell
$env:FILYX_NSSM_PATH = 'C:\outils\nssm\nssm.exe'
.\service\install-service.ps1
.\service\start-service.ps1
.\service\status-service.ps1
```

NSSM redémarre automatiquement le moteur. Les scripts `stop-service.ps1` et
`restart-service.ps1` sont également fournis.

## Journaux

Ne jamais journaliser Client Secret, jeton d’accès, jeton de renouvellement ou
en-tête `Authorization`. Les fichiers stdout/stderr sont privés et soumis à
rotation.
