90 lines
2.6 KiB
Markdown
90 lines
2.6 KiB
Markdown
# 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
|
|
|