Comment ça marche
Toffee met deux navigateurs en relation directe. Le fichier ou le bloc-note n'est jamais stocké côté serveur.
1. Signalisation
Le serveur Node.js crée une room temporaire et relaie les messages WebRTC SDP/ICE via WebSocket. Ces messages servent à négocier la connexion entre les navigateurs.
2. Transfert
Le contenu transite ensuite via un WebRTC DataChannel. Quand une connexion directe est impossible, le serveur TURN coturn peut relayer le flux.
3. Chiffrement
WebRTC chiffre déjà le transport. Si vous ajoutez un mot de passe, Toffee chiffre aussi les chunks côté navigateur avec AES-GCM. Le mot de passe n'est jamais envoyé au serveur.
4. VM publique
En installation recommandée, Caddy expose l'application en HTTPS sur le port 443 et relaie vers Toffee en local sur 127.0.0.1:8080. coturn reste accessible directement sur les ports TURN.
5. Éphémère
Les rooms sont en mémoire, expirent automatiquement et peuvent être marquées comme one-shot après transfert. Fermer l'onglet de l'expéditeur interrompt tous les partages en cours.
6. Multi-partages
Un expéditeur peut ouvrir plusieurs partages en parallèle. Chaque partage possède son propre lien, son PeerConnection et sa progression. La liste des partages actifs reste visible tant que l'onglet reste ouvert.