# Serveur Web pour les Transcripts

Serveur web pour héberger les transcripts avec authentification Discord OAuth2.

## Installation

1. Installer les dépendances:
```bash
npm install express express-session passport passport-discord
```

2. Configurer les variables d'environnement dans `.env`:
```env
# Discord OAuth
DISCORD_CLIENT_ID=ton_client_id
DISCORD_CLIENT_SECRET=ton_client_secret
DISCORD_CALLBACK_URL=http://localhost:3000/auth/discord/callback

# Serveur
TRANSCRIPT_PORT=3000
TRANSCRIPT_WEB_URL=transcript.syxpi.fr
SESSION_SECRET=change-me-in-production

# Modérateurs (IDs Discord séparés par des virgules)
MODERATOR_IDS=361526553940721684,autre_id_moderateur

# Base de données (déjà configurée pour le bot)
DB_HOST=192.168.1.6
DB_USER=bot
DB_PASSWORD=ton_password
DB_NAME=bot
```

## Configuration Discord OAuth

**📖 Guide détaillé :** Voir [OAUTH_SETUP.md](./OAUTH_SETUP.md) pour un guide complet étape par étape.

**Résumé rapide :**
1. Aller sur https://discord.com/developers/applications
2. Créer une nouvelle application ou utiliser l'existante
3. Aller dans "OAuth2" → "Redirects"
4. Ajouter: `http://localhost:3000/auth/discord/callback` (pour le dev)
5. Ajouter: `https://transcript.syxpi.fr/auth/discord/callback` (pour la prod)
6. Copier le Client ID et le Client Secret dans `.env`
7. Configurer les scopes : `identify` et `guilds`

## Lancement

```bash
npm run server
# ou
node server/transcript-server.js
```

Le serveur sera accessible sur `http://localhost:3000`

## Routes

- `GET /login` - Page de connexion Discord
- `GET /auth/discord` - Démarre l'authentification Discord
- `GET /auth/discord/callback` - Callback OAuth Discord
- `GET /auth/logout` - Déconnexion
- `GET /` - Page d'accueil (liste des transcripts)
- `GET /tickets/:type/:date/:file` - Accès à un transcript (avec auth)

## Sécurité

- Seuls les utilisateurs authentifiés peuvent accéder aux transcripts
- Vérification que l'utilisateur est le créateur du ticket OU modérateur
- Sessions sécurisées avec cookies httpOnly
- HTTPS requis en production

## Déploiement

Pour déployer sur `transcript.syxpi.fr`:

1. Configurer un reverse proxy (Nginx/Apache) pointant vers le port 3000
2. Configurer SSL/HTTPS (Let's Encrypt)
3. Mettre à jour `DISCORD_CALLBACK_URL` dans `.env`
4. Lancer le serveur avec PM2 ou systemd

## Améliorations futures

- [ ] Vérification réelle des permissions Discord (rôles modérateur)
- [ ] Interface de recherche/filtrage des transcripts
- [ ] Statistiques et analytics
- [ ] Export PDF des transcripts
- [ ] API REST pour accéder aux transcripts

