영어 소개 |中文介绍
Weblink는 순수한 웹 기반 파일 전송 및 WebRTC에 구축 된 텍스트/음성/비디오 채팅 애플리케이션입니다. 다운로드가 필요하지 않으며 브라우저에서 직접 작동합니다. 서버리스 P2P 아키텍처를 사용하여 효율적인 피어 투 피어 연결을 위해 FireBase 및 WebSocket을 포함한 여러 백엔드를 지원합니다. 또한 WebLink는 엔드 투 엔드 암호화를 통해 신호 메시지의 개인 정보 보호 및 보안을 보장합니다.
이 프로젝트는 CloudFlare 페이지에 배포되며 https://v.webl.ink에서 백엔드에 액세스 할 수있는 FireBase를 사용합니다.
또는 https://webl.ink에서 백엔드로 자체 호스팅 된 WebSocket을 사용하여 버전을 사용할 수 있습니다.
Weblink는 현재 다음과 같은 기능을 지원합니다.
| 특징 | 설명 |
|---|---|
| 파일 동기화 | 상대방의 캐시 파일을 원활하게 검색하십시오. |
| ⏯️ 이력서 이력서 | 연결이 중단되면 파일 전송을 쉽게 재개하십시오. |
| 파일 캐싱 | 전송 된 파일은 indexeddb에서 단단히 캐시됩니다. |
| 화면 공유 | 여러 클라이언트와 화면, 카메라 및 오디오 (스피커 및 마이크 포함)를 공유하십시오. |
| ? 파일 검색 | 귀하와 상대방의 캐시 파일을 빠르게 검색하십시오. |
| ? 클립 보드 전송 | 클립 보드 콘텐츠를 Ctrl + V 또는 모바일 페이스트 동작으로 채팅에 직접 붙여 넣습니다. |
| ? 폴더 전송 | 자동 압축으로 폴더를 쉽게 보내십시오. |
| ? 압축 전달 | 효율적인 데이터 처리를 위해 전송 중에 파일을 압축하도록 선택하십시오. |
| ⚡ 다중 채널 전송 | 여러 채널에서 병렬 데이터 전송으로 전송 성능을 향상시킵니다. |
| ? 공유 및 앞으로 | PWA로 설치 한 후 시스템 공유를 통해 텍스트 또는 파일을 공유하십시오. |
| 텍스트 채팅 | 원활한 커뮤니케이션을 위해 문자 메시지를 교환합니다. |
자세한 내용은 ChangeLog에서 확인할 수 있습니다.
git clone https://github.com/99percentpeople/weblink.git
cd weblink
pnpm install프로젝트에서 Firebase 키를 구성한 다음 (아래 그림과 같이) 다음 명령을 실행하십시오.
# Development
pnpm dev
# Build
pnpm build docker-compose.yaml 사용 하여이 프로젝트를 Docker에 배포 할 수 있으며 자동으로 Weblink-WS-Server를 백엔드로 빌드합니다.
docker-compose.yaml 파일을 수정하여 올바른 환경 변수를 설정하십시오. 그런 다음 다음 명령을 실행합니다.
docker-compose up -d SSL을 활성화하려면 docker/ssl 디렉토리에 SSL 인증서 cert.pem 및 key key.pem 파일을 제공해야합니다. 다음 명령을 실행합니다.
ENABLE_SSL=true docker-compose up -d또는 DockerFile을 사용 하여이 프로젝트를 Docker에 배포 할 수도 있습니다.
이 프로젝트를 Vercel에 배치하려면 다음을 수행하십시오.
Vercel 웹 사이트로 이동하여 로그인하거나 계정을 만듭니다.
GitHub 저장소를 연결하고 복제 된 저장소를 선택하십시오.
Vercel 프로젝트 설정에서 "환경 변수"를 찾아 Firebase API 키 및 기타 환경 변수를 추가하십시오 (아래 그림과 같이).
"배포"버튼을 클릭하면 Vercel이 프로젝트를 자동으로 빌드하고 배포합니다.
로컬 개발 및 Vercel에 배치를 위해 Firebase 키를 구성해야합니다. 다음 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
Vercel 배포의 경우 다음 단계에 따라 환경 변수를 설정하십시오.
Vercel 프로젝트를 열고 "설정"으로 이동하십시오.
"환경 변수"를 찾으십시오.
위의 Firebase 구성 항목을 추가하고 해당 값을 입력하십시오.
이 응용 프로그램은 자체 WebSocket 서버를 배포 할 수 있으며 WebSocket 서버가 제공됩니다. 당신은 그것을 사용하도록 선택할 수 있습니다. 자세한 내용은 Weblink-Ws-Server를 참조하십시오.
로컬 개발의 경우 .env.local 파일을 만들고 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 지역 영역 네트워크 (NAT 환경) 외부에서 P2P 연결을 사용하는 경우 연결을 설정하도록 턴 서버를 구성해야 할 수도 있습니다. 설정 페이지에서 다음 형식으로 Turn Server를 구성하고 Coturn 및 CloudFlare Turn 서버를 지원하며 Newline 문자로 여러 구성을 분리 할 수 있습니다.
구성 형식 회전 :
# 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
다음은 공개 기절 및 턴 서버를 얻는 몇 가지 방법입니다.
이 응용 프로그램은 기본적으로 Google의 STUN 서버 사용을 기본으로합니다. 연결할 수없는 경우 고유 한 STUN 서버를 구성하십시오. 공개 스턴 서버 목록은 https://gist.github.com/mondain/b0ec1cf5f60ae726202e를 참조 할 수 있습니다. 그런 다음 stun:stun.l.google.com:19302 와 같은 설정 페이지의 STUN 서버 목록에 stun:xxxx:xxxx 형식으로 STUN 서버를 추가하십시오.
CloudFlare Call에서 제공하는 턴 서버를 사용할 수 있습니다. https://developers.cloudflare.com/calls/turn을 방문하십시오. 그런 다음 설정 페이지의 형식 name|TURN_TOKEN_ID|API_TOKEN|cloudflare 형식으로 턴 서버를 설정 페이지의 Turn Server 목록에 추가하십시오.
https://github.com/coturn/coturn을 참조하여 자신의 턴 서버를 설정할 수 있습니다.
응용 프로그램은 현재 비 안전 환경에서 LAN 사용을 지원합니다. 장치가 동일한 LAN에 있고 방화벽이 P2P 연결을 차단하지 않도록하십시오.
동시에 WebSocket 연결을 지원하기 위해 WebLink-WS-Server를 실행하십시오.
기부금을 환영합니다! 자유롭게 문제를 제출하거나 요청을 가져 오십시오.
이 프로젝트는 MIT 라이센스에 따라 오픈 소스입니다.