Introdução em inglês |中文介绍
O WebLink é um aplicativo puro de transferência de arquivos baseado na Web e texto/bate-papo por texto/vídeo criado no WebRTC. Não requer downloads e funciona diretamente no seu navegador. Utilizando uma arquitetura P2P sem servidor, ele suporta vários backnds, incluindo Firebase e WebSocket para conexões eficientes ponto a ponto. Além disso, o WebLink garante a privacidade e a segurança das mensagens de sinalização através da criptografia de ponta a ponta.
O projeto é implantado nas páginas do Cloudflare e o uso do FireBase como back -end pode ser acessado em https://v.webl.ink.
Como alternativa, você pode usar a versão usando o WebSocket auto-hospedado como back-end em https://webl.ink.
Atualmente, o WebLink suporta os seguintes recursos:
| Recurso | Descrição |
|---|---|
| Sincronização de arquivos | Recupere arquivos em cache da outra parte sem problemas. |
| ⏯️ Transferência de currículo | Retomar a transferência de arquivos sem esforço se a conexão for interrompida. |
| Cache de arquivos | Os arquivos transferidos são armazenados em cache no indexedDB. |
| Compartilhamento de tela | Compartilhe telas, câmeras e áudio (inclua alto -falante e microfone) com vários clientes. |
| ? Pesquisa de arquivo | Procure rapidamente por arquivos em cache de você e da outra parte. |
| ? Transferência da área de transferência | Cole o conteúdo da área de transferência diretamente no bate -papo com ações Ctrl + V ou Pasta Móvel. |
| ? Transferência de pastas | Envie pastas sem esforço com compactação automática. |
| ? Transferência comprimida | Escolha comprimir arquivos durante a transferência para manuseio de dados eficientes. |
| ⚡ Transferência multicanal | Aumente o desempenho da transferência com transferências de dados paralelas em vários canais. |
| ? Compartilhe e adiante | Compartilhe texto ou arquivos via compartilhamento de sistema após a instalação como um PWA. |
| Chat de texto | Troca mensagens de texto para comunicação suave. |
Mais informações podem ser encontradas no Changelog.
git clone https://github.com/99percentpeople/weblink.git
cd weblink
pnpm installCertifique -se de configurar as chaves do Firebase no projeto (como mostrado abaixo) e execute o seguinte comando:
# Development
pnpm dev
# Build
pnpm build Você pode implantar este projeto para o Docker usando docker-compose.yaml , e ele criará automaticamente o back-end do WebLink-WS-Server.
Modifique o arquivo docker-compose.yaml para definir as variáveis de ambiente corretas. Em seguida, execute o seguinte comando:
docker-compose up -d Para ativar o SSL, você precisa fornecer os arquivos SSL Certificate cert.pem e Key key.pem no diretório docker/ssl . E execute o seguinte comando:
ENABLE_SSL=true docker-compose up -dComo alternativa, você também pode usar o Dockerfile para implantar este projeto no Docker.
Para implantar este projeto para a Vercel, siga estas etapas:
Vá para o site da Vercel e faça login (ou crie uma conta).
Conecte o repositório do seu GitHub e selecione o repositório clonado.
Nas configurações do projeto Vercel, encontre "variáveis de ambiente" e adicione a chave da API do Firebase e outras variáveis de ambiente (como mostrado abaixo).
Clique no botão "Implantar" e o Vercel criará e implantará automaticamente seu projeto.
Você precisará configurar as chaves do Firebase para desenvolvimento local e implantação para o Vercel. Adicione as seguintes variáveis de ambiente do 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 a implantação da Vercel, defina as variáveis do ambiente seguindo estas etapas:
Abra seu projeto Vercel e vá para "Configurações".
Encontre "variáveis de ambiente".
Adicione os itens de configuração do Firebase acima e insira os valores correspondentes.
Este aplicativo pode implantar seu próprio servidor WebSocket e um servidor WebSocket é fornecido. Você pode optar por usá -lo ou não. Para detalhes, consulte o WebLink-WS-Server.
Para o desenvolvimento local, crie um arquivo .env.local e adicione as 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 Se você estiver usando conexões P2P fora de uma rede local (em um ambiente NAT), pode ser necessário configurar um servidor de turno para garantir que as conexões sejam estabelecidas. Na página Configurações, você pode configurar o servidor Turn com o seguinte formato, suportar o Coturn e o CloudFlare Turn Server e separar várias configurações com os caracteres da Newline:
Virar formato de configuração:
# 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
Aqui estão alguns métodos para obter servidores públicos de atordoamento e virar:
Este aplicativo é o padrão de usar o servidor de atordoamento do Google. Se você não pode se conectar, configure seu próprio servidor de atordoamento. Você pode consultar https://gist.github.com/mondain/b0ec1cf5f60e726202e para uma lista de servidores de atordoamento público. Em seguida, adicione o servidor de atordoamento no Format stun:xxxx:xxxx à lista de servidores de atordoamento na página Configurações, como stun:stun.l.google.com:19302 .
Você pode usar o servidor Turn fornecido pelo Cloudflare, visite https://developers.cloudflare.com/calls/turn. Em seguida, adicione o servidor Turn no name|TURN_TOKEN_ID|API_TOKEN|cloudflare à lista de servidores Turn na página Configurações.
Você pode se referir a https://github.com/coturn/Coturn para configurar seu próprio servidor de turno.
Atualmente, o aplicativo suporta o uso da LAN em ambientes não seguros. Certifique -se de que seus dispositivos estejam na mesma LAN e o firewall não bloqueie as conexões P2P.
E, ao mesmo tempo, execute o WebLink-WS-Server para oferecer suporte ao WebSocket Connections.
As contribuições são bem -vindas! Sinta -se à vontade para enviar questões ou puxar solicitações.
Este projeto é de código aberto sob a licença do MIT.