Introducción en inglés |中文介绍
Weblink es una aplicación de transferencia de archivos puro basada en la web y aplicación de texto/voz/video chat construida en WEBRTC. No requiere descargas y funciona directamente en su navegador. Utilizando una arquitectura P2P sin servidor, admite múltiples backends, incluidos Firebase y WebSocket, para conexiones eficientes entre pares. Además, Weblink garantiza la privacidad y la seguridad de los mensajes de señalización a través del cifrado de extremo a extremo.
El proyecto se implementa en las páginas de CloudFlare y usa Firebase ya que se puede acceder al backend en https://v.webl.ink.
Alternativamente, puede usar la versión utilizando WebSocket autohostado como backend en https://webl.ink.
Weblink actualmente admite las siguientes funciones:
| Característica | Descripción |
|---|---|
| Sincronización de archivos | Recupere archivos en caché de la otra parte sin problemas. |
| ⏯️ Transferencia de currículum | Reanudar la transferencia de archivos sin esfuerzo si la conexión se interrumpe. |
| Almacenamiento en caché de archivos | Los archivos transferidos se almacenan de forma segura en IndexedDB. |
| Intercambio de pantalla | Comparta pantallas, cámaras y audio (incluya altavoz y micrófono) con múltiples clientes. |
| ? Búsqueda de archivos | Busque rápidamente archivos en caché de usted y de la otra parte. |
| ? Transferencia de portapapeles | Pegue el contenido del portapapeles directamente en el chat con Ctrl + V o acciones de pasta móvil. |
| ? Transferencia de carpetas | Envíe carpetas sin esfuerzo con compresión automática. |
| ? Transferencia comprimida | Elija comprimir archivos durante la transferencia para un manejo eficiente de datos. |
| ⚡ Transferencia multicanal | Aumentar el rendimiento de la transferencia con transferencias de datos paralelas a través de múltiples canales. |
| ? Compartir y avanzar | Comparta texto o archivos a través del intercambio de sistemas después de instalar como PWA. |
| Chat de texto | Intercambiar mensajes de texto para una comunicación suave. |
Se puede encontrar más información en ChangeLog.
git clone https://github.com/99percentpeople/weblink.git
cd weblink
pnpm installAsegúrese de configurar las teclas Firebase en el proyecto (como se muestra a continuación), luego ejecute el siguiente comando:
# Development
pnpm dev
# Build
pnpm build Puede implementar este proyecto en Docker usando docker-compose.yaml , y automáticamente construirá el servidor WEBLINK-WS como backend.
Modifique el archivo docker-compose.yaml para establecer las variables de entorno correctas. Luego ejecute el siguiente comando:
docker-compose up -d Para habilitar SSL, debe proporcionar el certificado SSL cert.pem y los archivos key.pem clave. PEM en el directorio docker/ssl . Y ejecute el siguiente comando:
ENABLE_SSL=true docker-compose up -dAlternativamente, también puede usar DockerFile para implementar este proyecto en Docker.
Para implementar este proyecto en VERCEL, siga estos pasos:
Vaya al sitio web de Vercel e inicie sesión (o cree una cuenta).
Conecte su repositorio de GitHub y seleccione el repositorio clonado.
En la configuración de su proyecto Vercel, encuentre "variables de entorno" y agregue la clave de la API de Firebase y otras variables de entorno (como se muestra a continuación).
Haga clic en el botón "Implementar", y Vercel construirá e implementará automáticamente su proyecto.
Deberá configurar las claves de Firebase para el desarrollo local y la implementación en Vercel. Agregue las siguientes variables de entorno Firebase:
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
Para la implementación de Vercel, establezca las variables de entorno siguiendo estos pasos:
Abra su proyecto Vercel y vaya a "Configuración".
Encuentra "Variables de entorno".
Agregue los elementos de configuración de Firebase arriba e ingrese los valores correspondientes.
Esta aplicación puede implementar su propio servidor WebSocket, y se proporciona un servidor WebSocket. Puede elegir usarlo o no. Para más detalles, consulte Weblink-WS-Server.
Para el desarrollo local, cree un archivo .env.local y agregue las teclas 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 está utilizando conexiones P2P fuera de una red de área local (en un entorno NAT), es posible que deba configurar un servidor de giro para garantizar que se establezcan conexiones. En la página de configuración, puede configurar el servidor Turn con el siguiente formato, admitir Coturn y CloudFlare Turn Server, y separar múltiples configuraciones con caracteres Newline:
Formato de configuración de giro:
# 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
Aquí hay algunos métodos para obtener servidores públicos de aturdimiento y girar:
Esta aplicación predetermina el uso del servidor STUN de Google. Si no puede conectarse, configure su propio servidor de aturdimiento. Puede consultar https://gist.github.com/mondain/B0EC1CF5F60AE726202E para obtener una lista de servidores de aturdimiento público. Luego agregue el servidor de Stun en formato stun:xxxx:xxxx a la lista de servidores de Stun en la página de configuración como stun:stun.l.google.com:19302 .
Puede usar el servidor Turn proporcionado por CloudFlare, visite https://developers.cloudflare.com/calls/turn. Luego agregue el servidor Turn en name|TURN_TOKEN_ID|API_TOKEN|cloudflare a la lista de servidores Turn en la página Configuración.
Puede consultar https://github.com/coturn/coturn para configurar su propio servidor Turn.
La aplicación actualmente admite el uso de LAN en entornos no seguros. Asegúrese de que sus dispositivos estén en la misma LAN y que el firewall no bloquee las conexiones P2P.
Y al mismo tiempo, ejecute Weblink-WS-server para admitir las conexiones WebSocket.
¡Las contribuciones son bienvenidas! No dude en enviar problemas o extraer solicitudes.
Este proyecto es de código abierto bajo la licencia MIT.