Microservice de gestion des appels audio/vidéo pour AlfyChat.
Ce service gère les appels 1:1 et de groupe via le protocole WebRTC, avec LiveKit comme SFU (Selective Forwarding Unit). Il génère les tokens d'accès LiveKit et gère l'état des sessions d'appel.
| Catégorie | Technologies |
|---|---|
| Runtime | Bun |
| Langage | TypeScript |
| API | Express |
| Appels temps réel | LiveKit (SFU) |
| Auth | JWT |
| Cache | Redis |
| Base de données | MySQL 8 |
Frontend (:4000) → Gateway (:3000) → Microservices
├── users (:3001)
├── messages (:3002)
├── friends (:3003)
├── calls (:3004) ← ce service
├── servers (:3005)
├── bots (:3006)
└── media (:3007)
- Bun ≥ 1.2
- MySQL 8
- Redis 7
- Serveur LiveKit
PORT=3004
DB_HOST=localhost
DB_PORT=3306
DB_USER=alfychat
DB_PASSWORD=
DB_NAME=alfychat_calls
REDIS_URL=redis://localhost:6379
JWT_SECRET=
LIVEKIT_URL=wss://livekit.example.com
LIVEKIT_API_KEY=
LIVEKIT_API_SECRET=
SERVICE_REGISTRY_URL=http://gateway:3000bun installbun run devbun run build
bun run startdocker compose up callssrc/
├── index.ts # Point d'entrée
├── controllers/ # Logique métier (appels, rooms LiveKit)
├── routes/ # Définition des routes Express
├── services/ # Services (LiveKit, DB, cache)
├── middleware/ # Auth JWT, rate limiting
├── types/ # Types TypeScript
└── utils/ # Utilitaires
Voir CONTRIBUTING.md.