英語の紹介|中文介绍
Weblinkは、WeBRTCに基づいて構築された純粋なWebベースのファイル転送およびテキスト/音声/ビデオチャットアプリケーションです。ダウンロードは必要ありません。ブラウザで直接動作します。サーバーレスP2Pアーキテクチャを利用して、FirebaseやWebSocketなどの複数のバックエンドをサポートして、ピアツーピア接続を効率的にします。さらに、WeBlinkは、エンドツーエンドの暗号化を介して信号メッセージのプライバシーとセキュリティを保証します。
このプロジェクトはCloudFlareページに展開され、firebaseを使用してバックエンドにhttps://v.webl.inkでアクセスできます。
または、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.pemファイルを提供する必要があります。次のコマンドを実行します。
ENABLE_SSL=true docker-compose up -dまたは、DockerFileを使用してこのプロジェクトをDockerに展開することもできます。
このプロジェクトをvercelに展開するには、次の手順に従ってください。
Vercel Webサイトに移動してログインします(またはアカウントを作成します)。
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 Deploymentの場合、次の手順に従って環境変数を設定します。
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接続を使用している場合は、接続が確実に確実になるようにターンサーバーを構成する必要がある場合があります。 [設定]ページでは、次の形式でターンサーバーを構成し、CoturnとCloudFlare Turnサーバーをサポートし、新しいライン文字で複数の構成を分離できます。
構成形式をターンします:
# 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サーバーを使用するデフォルトです。接続できない場合は、独自のスタンサーバーを構成してください。パブリックスタンサーバーのリストについては、https://gist.github.com/mondain/b0ec1cf5f60ae726202eを参照できます。次に、 stun:stun.l.google.com:19302などの設定ページのStun Serverリストにstun:xxxx:xxxxフォーマットで追加します。
CloudFlare通話が提供するターンサーバーを使用できます。https://developers.cloudflare.com/calls/turnにアクセスしてください。次に、ターンサーバーをフォーマットname|TURN_TOKEN_ID|API_TOKEN|cloudflare設定ページのターンサーバーリストにcloudflareを追加します。
https://github.com/coturn/coturnを参照して、独自のターンサーバーを設定できます。
このアプリケーションは現在、非セキュア環境でのLANの使用をサポートしています。デバイスが同じLANにあり、ファイアウォールがP2P接続をブロックしないことを確認してください。
同時に、weblink-ws-serverを実行して、WebSocket接続をサポートします。
貢献は大歓迎です!お気軽に問題を送信したり、リクエストをプルしたりしてください。
このプロジェクトは、MITライセンスに基づいてオープンソースされています。