Pendahuluan Bahasa Inggris |中文介绍
Weblink adalah transfer file berbasis web murni dan aplikasi obrolan teks/suara/video yang dibangun di WEBRTC. Ini tidak memerlukan unduhan dan berfungsi langsung di browser Anda. Memanfaatkan arsitektur P2P tanpa server, mendukung beberapa backend termasuk Firebase dan Websocket untuk koneksi peer-to-peer yang efisien. Selain itu, Weblink memastikan privasi dan keamanan pesan pensinyalan melalui enkripsi ujung ke ujung.
Proyek ini digunakan di halaman CloudFlare dan menggunakan Firebase sebagai backend dapat diakses di https://v.webl.ink.
Atau, Anda dapat menggunakan versi ini menggunakan Websocket yang diselenggarakan sendiri sebagai backend di https://webl.ink.
Weblink saat ini mendukung fitur -fitur berikut:
| Fitur | Keterangan |
|---|---|
| Sinkronisasi file | Ambil file yang di -cache dari pihak lain dengan mulus. |
| ⏯️ Lanjutkan transfer | Lanjutkan transfer file dengan mudah jika koneksi terganggu. |
| File caching | File yang ditransfer di -cache dengan aman di IndexedDB. |
| Berbagi Layar | Bagikan layar, kamera, dan audio (termasuk speaker dan mikrofon) dengan banyak klien. |
| ? Pencarian file | Cari dengan cepat file yang di -cache dari Anda dan pihak lain. |
| ? Transfer clipboard | Tempel konten clipboard langsung ke obrolan dengan Ctrl + V atau tindakan pasta seluler. |
| ? Transfer folder | Kirim folder dengan mudah dengan kompresi otomatis. |
| ? Transfer terkompresi | Pilih untuk mengompres file selama transfer untuk penanganan data yang efisien. |
| ⚡ Transfer multi-saluran | Tingkatkan kinerja transfer dengan transfer data paralel di beberapa saluran. |
| ? Berbagi dan maju | Bagikan teks atau file melalui berbagi sistem setelah menginstal sebagai PWA. |
| Obrolan teks | Bertukar pesan teks untuk komunikasi yang lancar. |
Informasi lebih lanjut dapat ditemukan di Changelog.
git clone https://github.com/99percentpeople/weblink.git
cd weblink
pnpm installPastikan Anda mengkonfigurasi tombol Firebase dalam proyek (seperti yang ditunjukkan di bawah), lalu jalankan perintah berikut:
# Development
pnpm dev
# Build
pnpm build Anda dapat menggunakan proyek ini ke Docker menggunakan docker-compose.yaml , dan secara otomatis akan membangun Weblink-WS-Server sebagai backend.
Ubah file docker-compose.yaml untuk mengatur variabel lingkungan yang benar. Kemudian jalankan perintah berikut:
docker-compose up -d Untuk mengaktifkan SSL, Anda perlu memberikan sertifikat SSL cert.pem dan tombol key.pem di direktori docker/ssl . Dan jalankan perintah berikut:
ENABLE_SSL=true docker-compose up -dAtau, Anda juga dapat menggunakan DockerFile untuk menggunakan proyek ini ke Docker.
Untuk menggunakan proyek ini ke Vercel, ikuti langkah -langkah ini:
Buka situs web Vercel dan masuk (atau buat akun).
Hubungkan repositori GitHub Anda dan pilih repositori yang dikloning.
Dalam pengaturan Proyek Vercel Anda, temukan "Variabel Lingkungan" dan tambahkan tombol API Firebase dan variabel lingkungan lainnya (seperti yang ditunjukkan di bawah).
Klik tombol "Deploy", dan Vercel akan secara otomatis membangun dan menggunakan proyek Anda.
Anda perlu mengkonfigurasi kunci firebase untuk pengembangan lokal dan penyebaran ke Vercel. Tambahkan variabel lingkungan firebase berikut:
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
Untuk penyebaran Vercel, atur variabel lingkungan dengan mengikuti langkah -langkah ini:
Buka proyek Vercel Anda dan buka "Pengaturan."
Temukan "Variabel Lingkungan."
Tambahkan item konfigurasi Firebase di atas dan masukkan nilai yang sesuai.
Aplikasi ini dapat menggunakan server Websocketnya sendiri, dan server WebSocket disediakan. Anda dapat memilih untuk menggunakannya atau tidak. Untuk detailnya, silakan merujuk ke Weblink-WS-Server.
Untuk pengembangan lokal, buat file .env.local dan tambahkan tombol 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 Jika Anda menggunakan koneksi P2P di luar jaringan area lokal (di lingkungan NAT), Anda mungkin perlu mengkonfigurasi server Turn untuk memastikan koneksi dibuat. Di halaman Pengaturan, Anda dapat mengonfigurasi server Turn dengan format berikut, mendukung server Turn Coturn dan CloudFlare, dan memisahkan beberapa konfigurasi dengan karakter baru:
Putar Format Konfigurasi:
# 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
Berikut adalah beberapa metode untuk mendapatkan setrum publik dan mengubah server:
Aplikasi ini default untuk menggunakan server stun Google. Jika Anda tidak dapat terhubung, harap konfigurasikan server stun Anda sendiri. Anda dapat merujuk ke https://gist.github.com/mondain/b0ec1cf5f60ae726202e untuk daftar server stun publik. Kemudian tambahkan server stun dalam format stun:xxxx:xxxx ke daftar server stun di halaman pengaturan seperti stun:stun.l.google.com:19302 .
Anda dapat menggunakan server Turn yang disediakan oleh CloudFlare Calls, silakan kunjungi https://developers.cloudflare.com/calls/Turn. Kemudian tambahkan turn server dalam name|TURN_TOKEN_ID|API_TOKEN|cloudflare ke daftar server turn di halaman pengaturan.
Anda dapat merujuk ke https://github.com/coturn/coturn untuk mengatur server giliran Anda sendiri.
Aplikasi saat ini mendukung penggunaan LAN di lingkungan yang tidak aman. Pastikan perangkat Anda berada di LAN yang sama dan firewall tidak memblokir koneksi P2P.
Dan pada saat yang sama, jalankan Weblink-WS-Server untuk mendukung koneksi WebSocket.
Kontribusi dipersilakan! Silakan mengirimkan masalah atau tarik permintaan.
Proyek ini bersumber terbuka di bawah lisensi MIT.