مقدمة باللغة الإنجليزية |中文介绍
WebLink عبارة عن تطبيق نقي للملفات على الويب وتطبيق دردشة النص/الصوت/الفيديو المبني على Webrtc. لا يتطلب أي تنزيلات ويعمل مباشرة في متصفحك. باستخدام بنية P2P بدون خادم ، فإنه يدعم العديد من الخلفية بما في ذلك Firebase و WebSocket للاتصالات الفعالة من الأقران. بالإضافة إلى ذلك ، يضمن WebLink خصوصية وأمان رسائل الإشارة من خلال التشفير من طرف إلى طرف.
يتم نشر المشروع على صفحات CloudFlare واستخدام Firebase كواجهة خلفية يمكن الوصول إليها على https://v.webl.ink.
بدلاً من ذلك ، يمكنك استخدام الإصدار باستخدام WebSocket ذاتيًا كخلفية في https://webl.ink.
يدعم WebLink حاليًا الميزات التالية:
| ميزة | وصف |
|---|---|
| مزامنة الملف | استرداد الملفات المخبأة من الطرف الآخر بسلاسة. |
| ⏯ استئناف نقل | استئناف نقل الملف دون عناء إذا تم مقاطعة الاتصال. |
| ملف التخزين المؤقت | يتم تخزين الملفات المنقولة بشكل آمن في INSTEDDB. |
| مشاركة الشاشة | مشاركة الشاشات والكاميرات والصوت (تشمل السماعة والميكروفون) مع العديد من العملاء. |
| ؟ بحث الملف | ابحث بسرعة عن الملفات المخزنة مؤقتًا منك والطرف الآخر. |
| ؟ نقل الحافظة | لصق محتوى الحافظة مباشرة في الدردشة مع إجراءات Ctrl + V أو أجهزة معجون الهاتف المحمول. |
| ؟ نقل المجلد | إرسال المجلدات دون عناء مع الضغط التلقائي. |
| ؟ نقل مضغوط | اختر ضغط الملفات أثناء النقل لمعالجة البيانات الفعالة. |
| transfer نقل القنوات المتعددة | زيادة أداء النقل مع نقل البيانات المتوازية عبر قنوات متعددة. |
| ؟ مشاركة وإلى الأمام | مشاركة النص أو الملفات عبر مشاركة النظام بعد التثبيت كـ PWA. |
| الدردشة النصية | تبادل الرسائل النصية للاتصال السلس. |
يمكن العثور على مزيد من المعلومات في Changelog.
git clone https://github.com/99percentpeople/weblink.git
cd weblink
pnpm installتأكد من تكوين مفاتيح Firebase في المشروع (كما هو موضح أدناه) ، ثم قم بتشغيل الأمر التالي:
# Development
pnpm dev
# Build
pnpm build يمكنك نشر هذا المشروع على Docker باستخدام docker-compose.yaml ، وسيقوم تلقائيًا بإنشاء خادم WebLink-WS كواجهة خلفية.
قم بتعديل ملف docker-compose.yaml لتعيين متغيرات البيئة الصحيحة. ثم قم بتشغيل الأمر التالي:
docker-compose up -d لتمكين SSL key.pem تحتاج docker/ssl توفير ملفات cert.pem SSL. وتشغيل الأمر التالي:
ENABLE_SSL=true docker-compose up -dبدلاً من ذلك ، يمكنك أيضًا استخدام DockerFile لنشر هذا المشروع على Docker.
لنشر هذا المشروع إلى Vercel ، اتبع هذه الخطوات:
انتقل إلى موقع Vercel وقم بتسجيل الدخول (أو إنشاء حساب).
قم بتوصيل مستودع GitHub وحدد مستودع الاستنساخ.
في إعدادات مشروع Vercel ، ابحث عن "متغيرات البيئة" وأضف مفتاح API Firebase ومتغيرات البيئة الأخرى (كما هو موضح أدناه).
انقر فوق الزر "النشر" ، وسيقوم Vercel تلقائيًا بإنشاء مشروعك ونشره تلقائيًا.
ستحتاج إلى تكوين مفاتيح Firebase لكل من التطوير المحلي والنشر إلى Vercel. أضف متغيرات بيئة 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 إذا كنت تستخدم اتصالات P2P خارج شبكة منطقة محلية (في بيئة NAT) ، فقد تحتاج إلى تكوين خادم الدوران لضمان إنشاء الاتصالات. في صفحة الإعدادات ، يمكنك تكوين خادم الدوران بالتنسيق التالي ، ودعم خادم Courn و CloudFlare ، وفصل تكوينات متعددة بأحرف سطر جديد:
بدوره تنسيق التكوين:
# 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 in Format stun:xxxx:xxxx إلى قائمة خادم Stun في صفحة الإعدادات مثل stun:stun.l.google.com:19302 .
يمكنك استخدام خادم Turn Server الذي توفره CloudFlare ، يرجى زيارة https://developers.cloudflare.com/calls/turn. ثم أضف خادم الدوران في name|TURN_TOKEN_ID|API_TOKEN|cloudflare إلى قائمة خادم الدوران في صفحة الإعدادات.
يمكنك الرجوع إلى https://github.com/coturn/coturn لإعداد خادم الدور الخاص بك.
يدعم التطبيق حاليًا استخدام LAN في البيئات غير الآمنة. تأكد من أن أجهزتك في نفس الشبكة المحلية وأن جدار الحماية لا يمنع اتصالات P2P.
وفي الوقت نفسه ، قم بتشغيل WebLink-WS Server لدعم اتصالات WebSocket.
المساهمات مرحب بها! لا تتردد في تقديم المشكلات أو سحب الطلبات.
هذا المشروع مفتوح المصدر بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.