Application web de partage d'écran et audio en temps réel avec WebRTC.
- 📺 Partage d'écran en haute qualité (1080p @ 30fps)
- 🎤 Microphone avec réduction de bruit
- 🔊 Partage audio système (son de l'ordinateur)
- 👥 Multi-utilisateurs - plusieurs participants par salle
- 🔄 Reconnexion automatique - reste dans la salle après F5
- 🌐 WebRTC P2P - connexion directe entre pairs
- 🔒 Salles privées - code unique pour chaque salle
- 📱 Responsive - fonctionne sur tous les navigateurs modernes
# Lancer l'application avec Docker
./start.shL'application sera disponible sur http://localhost
# Terminal 1 - Serveur de signalisation
cd signaling-server
npm install
npm run dev
# Terminal 2 - Frontend
npm install
npm run devFrontend : http://localhost:3000
- Docker >= 20.10
- Docker Compose >= 1.29
- Node.js >= 20
- npm >= 9
-
Créer une salle
- Entrez votre nom
- Cliquez sur "Créer une salle"
- Partagez le code de salle avec les autres
-
Rejoindre une salle
- Entrez votre nom
- Entrez le code de salle
- Cliquez sur "Rejoindre"
-
Partager votre écran
- Cliquez sur "Démarrer"
- Sélectionnez l'écran/fenêtre à partager
- Les autres participants verront votre écran
-
Utiliser le microphone
- Le micro démarre automatiquement
- Cliquez sur le bouton micro pour mute/unmute
- Indicateur vert "🎤 En direct" quand actif
Technologies :
- Frontend : React 18 + TypeScript + Tailwind CSS + Vite
- Backend : Node.js + Socket.io (signaling)
- WebRTC : Connexions peer-to-peer
- State : Zustand (avec persistance)
screen-share-app/
├── src/
│ ├── frontend/ # Code React
│ │ ├── components/ # Composants UI
│ │ ├── hooks/ # Hooks React (WebRTC)
│ │ ├── stores/ # Zustand stores
│ │ └── utils/ # Utilitaires
│ └── shared/ # Types partagés
├── signaling-server/ # Serveur WebSocket
├── Dockerfile.frontend # Docker frontend
├── Dockerfile.signaling # Docker signaling
├── docker-compose.yml # Configuration Docker
└── DEPLOYMENT.md # Guide de déploiement
Créer .env à la racine :
VITE_SIGNALING_SERVER_URL=http://localhost:3001Voir le guide détaillé dans DEPLOYMENT.md
Un panneau de debug est disponible en cliquant sur le bouton Bug 🐛 en bas à droite.
| Navigateur | Version | Support |
|---|---|---|
| Chrome | >= 74 | ✅ Complet |
| Firefox | >= 66 | ✅ Complet |
| Safari | >= 12 | ✅ Complet (avec HTTPS) |
| Edge | >= 79 | ✅ Complet |
Note : HTTPS est requis pour getDisplayMedia en production.
# Sur votre serveur
git clone <votre-repo>
cd screen-share-app
./start.shVoir DEPLOYMENT.md pour les instructions complètes.
MIT License
⭐ N'oubliez pas de star le repo si vous l'aimez !