Introduction en anglais |中文介绍
WebBlink est un pur transfert de fichiers Web et une application de chat textuelle / vocale / vidéo construite sur WebBrTC. Il ne nécessite aucun téléchargement et fonctionne directement dans votre navigateur. En utilisant une architecture P2P sans serveur, il prend en charge plusieurs backends, notamment Firebase et WebSocket pour des connexions entre les pairs efficaces. De plus, WebBink assure la confidentialité et la sécurité des messages de signalisation via un cryptage de bout en bout.
Le projet est déployé sur les pages CloudFlare et l'utilisation de Firebase car backend est accessible sur https://v.webl.ink.
Alternativement, vous pouvez utiliser la version à l'aide de WebSocket auto-hébergé comme backend sur https://webl.ink.
WebBlink prend actuellement en charge les fonctionnalités suivantes:
| Fonctionnalité | Description |
|---|---|
| Synchronisation des fichiers | Récupérez les fichiers mis en cache de l'autre partie de manière transparente. |
| ⏯️ Transfert de CV | Reprendre le transfert de fichiers sans effort si la connexion est interrompue. |
| Cache de fichiers | Les fichiers transférés sont en toute sécurité mis en cache dans IndededDB. |
| Partage d'écran | Partagez les écrans, les caméras et l'audio (incluez le haut-parleur et le microphone) avec plusieurs clients. |
| ? Recherche de fichiers | Recherchez rapidement des fichiers mis en cache de votre part et de l'autre partie. |
| ? Transfert de presse-papiers | Collez le contenu du presse-papiers directement dans le chat avec les actions Ctrl + V ou Mobile Coller. |
| ? Transfert de dossier | Envoyez des dossiers sans effort avec une compression automatique. |
| ? Transfert comprimé | Choisissez de compresser des fichiers pendant le transfert pour une gestion efficace des données. |
| ⚡ Transfert multicanal | Boostez les performances de transfert avec des transferts de données parallèles sur plusieurs canaux. |
| ? Partager et transmettre | Partagez du texte ou des fichiers via le partage du système après l'installation en tant que PWA. |
| Chat texte | Échangez des messages texte pour une communication fluide. |
Plus d'informations peuvent être trouvées dans Changelog.
git clone https://github.com/99percentpeople/weblink.git
cd weblink
pnpm installAssurez-vous de configurer les touches Firebase dans le projet (comme indiqué ci-dessous), puis exécutez la commande suivante:
# Development
pnpm dev
# Build
pnpm build Vous pouvez déployer ce projet sur Docker à l'aide de docker-compose.yaml , et il créera automatiquement le serveur WebBink-WS en tant que backend.
Modifiez le fichier docker-compose.yaml pour définir les variables d'environnement correctes. Puis exécutez la commande suivante:
docker-compose up -d Pour activer SSL, vous devez fournir les fichiers SSL Certificate cert.pem et Key key.pem dans le répertoire docker/ssl . Et exécutez la commande suivante:
ENABLE_SSL=true docker-compose up -dAlternativement, vous pouvez également utiliser Dockerfile pour déployer ce projet sur Docker.
Pour déployer ce projet sur Vercel, suivez ces étapes:
Accédez au site Web de Vercel et connectez-vous (ou créez un compte).
Connectez votre référentiel GitHub et sélectionnez le référentiel cloné.
Dans vos paramètres de projet Vercel, trouvez des "variables d'environnement" et ajoutez la clé API Firebase et d'autres variables d'environnement (comme indiqué ci-dessous).
Cliquez sur le bouton "Déployer" et Vercel créera automatiquement et déploiera votre projet.
Vous devrez configurer les clés Firebase pour le développement local et le déploiement à Vercel. Ajouter les variables d'environnement de base de feu suivantes:
VITE_FIREBASE_API_KEY
VITE_FIREBASE_AUTH_DOMAIN
VITE_FIREBASE_PROJECT_ID
VITE_FIREBASE_STORAGE_BUCKET
VITE_FIREBASE_MESSAGING_SENDER_ID
VITE_FIREBASE_APP_ID
VITE_FIREBASE_DATABASE_URL
Pour le déploiement de Vercel, définissez les variables d'environnement en suivant ces étapes:
Ouvrez votre projet Vercel et accédez à des «paramètres».
Trouvez des «variables d'environnement».
Ajoutez les éléments de configuration de la base de feu ci-dessus et saisissez les valeurs correspondantes.
Cette application peut déployer son propre serveur WebSocket et un serveur WebSocket est fourni. Vous pouvez choisir de l'utiliser ou non. Pour plus de détails, veuillez vous référer à WebLink-WS-Server.
Pour le développement local, créez un fichier .env.local et ajoutez les touches Firebase:
# backend choose FIREBASE or WEBSOCKET
# FIREBASE
VITE_BACKEND = FIREBASE
VITE_FIREBASE_API_KEY = your-firebase-api-key
VITE_FIREBASE_AUTH_DOMAIN = your-firebase-auth-domain
VITE_FIREBASE_PROJECT_ID = your-firebase-project-id
VITE_FIREBASE_STORAGE_BUCKET = your-firebase-storage-bucket
VITE_FIREBASE_MESSAGING_SENDER_ID = your-firebase-messaging-sender-id
VITE_FIREBASE_APP_ID = your-firebase-app-id
VITE_FIREBASE_DATABASE_URL = your-database-url
# WEBSOCKET
VITE_BACKEND = WEBSOCKET
VITE_WEBSOCKET_URL = your-websocket-url Si vous utilisez des connexions P2P en dehors d'un réseau local (dans un environnement NAT), vous devrez peut-être configurer un serveur de virage pour vous assurer que les connexions sont établies. Dans la page des paramètres, vous pouvez configurer le serveur de virage avec le format suivant, prendre en charge le serveur de virage COTURN et Cloudflare et séparer plusieurs configurations avec les caractères de Newline:
Format de configuration de tournage:
# use coturn with account and password
turn:turn1.example.com:3478|user1|pass1|longterm
# use coturn with timestamp
turns:turn2.example.com:5349|user2|pass2|hmac
# use cloudflare turn server
name|TURN_TOKEN_ID|API_TOKEN|cloudflare
Voici quelques méthodes pour obtenir des serveurs publics et de transformation:
Cette application est par défaut à l'aide du serveur STOM de Google. Si vous ne pouvez pas vous connecter, veuillez configurer votre propre serveur Stun. Vous pouvez vous référer à https://gist.github.com/mondain/b0ec1cf5f60ae726202e pour une liste de serveurs publiques. Ensuite, ajoutez le serveur Stun dans le format stun:xxxx:xxxx à la liste des serveurs Stun dans la page Paramètres tels que stun:stun.l.google.com:19302 .
Vous pouvez utiliser le serveur Turn fourni par les appels CloudFlare, veuillez visiter https://developers.cloudflare.com/calls/turn. Ajoutez ensuite le serveur de virage dans name|TURN_TOKEN_ID|API_TOKEN|cloudflare à la liste de serveur de virage dans la page Paramètres.
Vous pouvez vous référer à https://github.com/coturn/coturn pour configurer votre propre serveur de tour.
L'application prend actuellement en charge l'utilisation de LAN dans des environnements non sécurisés. Assurez-vous que vos appareils sont dans le même LAN et que le pare-feu ne bloque pas les connexions P2P.
Et en même temps, exécutez weblink-ws-server pour prendre en charge les connexions WebSocket.
Les contributions sont les bienvenues! N'hésitez pas à soumettre des problèmes ou à tirer des demandes.
Ce projet est open source sous la licence du MIT.