مرحبا بكم في quack - تطبيق الدردشة الخاصة.
مرحبًا بك في quack ، وهو تطبيق دردشة مجاني ومفتوح المصدر مصمم للاستخدام الخاص. يوفر quack واجهة سهلة الاستخدام وتكاملًا سلسًا مع متصفحات الويب، مما يجعله تطبيق ويب تقدميًا يمكن الوصول إليه من أي نظام أساسي باستخدام متصفح ويب، مثل Chrome.
مستوحى من Slack ولكن بتكلفة معقولة للاستخدام الخاص، يجمع quack بين أفضل الميزات من جهات الاتصال الأخرى مع إعطاء الأولوية للخصوصية والأمان. ويمكن للمستخدمين استضافة تطبيقاتهم الخاصة، مما يضمن التحكم الكامل في بياناتهم.
أسرع طريقة للبدء هي استخدام Docker compose. سيؤدي استخدام الأمر التالي إلى بدء تشغيل التطبيق بالإعدادات الافتراضية في أي وقت من الأوقات.
docker compose up -d
انتقل إلى http://localhost:8080 واستخدم بيانات الاعتماد الافتراضية لتسجيل الدخول admin / 123
.
لتجاوز الإعدادات الافتراضية، يمكن إنشاء ملف chat.config.ts
في الدليل الجذر للمشروع. يمكنك استخدام chat.config.example.ts
كقالب. يجب أن يقوم الملف بتصدير الكائن التالي:
type Config = {
port ?: number // default `PORT` env otherwise `8080`
sessionSecret ?: string // auto generated on first run to `secrets.json` but can be overwritten here
trustProxy ?: bool | string | number // default `uniquelocal` ref: https://expressjs.com/en/guide/behind-proxies.html
vapid ?: { // auto generated on first run to `secrets.json` but can be overwritten here
publicKey : string
secretKey : string
} ,
databaseUrl ?: string // default `DATABASE_URL` env
cors ?: string [ ] // by default [ 'https?://localhost(:[0-9]{,4})' ],
storage ?: { // Where uploaded files should be stored
type : 'memory' | 'gcs' | 'fs' // default `fs` / `memory` in tests
directory : string // where to save files when type `fs`
bucket : string // bucket name for `gcs`
}
apiUrl ?: string // default 'http://localhost:8080' url of api
appUrl ?: string // default 'http://localhost:8081' url for frontend app
} ;
GOOGLE_APPLICATION_CREDENTIALS
[سلسلة] - (اختياري) عند استخدام طريقة تخزين gcs
لبدء الخادم:
cd ./deno/server
deno task dev
قم بتثبيت التبعيات وابدأ تطبيق React:
cd ./app
npm install
npm run dev
لبدء القصة القصيرة:
cd ./app
npm install
npm run storybook
يدعم حاليًا Google Cloud Storage. لتمكينه، قم بتعيين fileStorage
في ملف التكوين إلى gcs
حدد gcsBucket
وقم بتعيين متغير البيئة GOOGLE_APPLICATION_CREDENTIALS
.
نحن نستخدم مثيل MongoDB بدون خادم نظرًا لموثوقيته وفعاليته من حيث التكلفة - فنحن ندفع فقط مقابل ما نستخدمه. يعد الخيار الأرخص المتاح على Mongo Atlas كافيًا للتطبيق، حيث أننا لا نطلب أي وظيفة نشر/فرعية داخلية.
سيكون من الجيد أن يكون لديك حل بدون خادم، ولكن الخيار الأرخص في الوقت الحالي هو استخدام الحملة العالمية للتعليم. ليس لدي أي فكرة عن كيفية نشر الرسائل إلى مثيلات أخرى بدون خادم بدون خدمة نشر/فرعية مستضافة. يجب استضافة MongoDB وRedis وPostgres لمراقبة الرسائل. ربما يكون Google Cloud Pub/Sub خيارًا جيدًا؟
الدردشة لديها نظام البرنامج المساعد. يمكن العثور على مثال للمكون الإضافي في plugins/example
. كيفية استخدام المكونات الإضافية ونقاط ربط المكونات الإضافية TBA.
admin / 123
يمكن دعوة المستخدمين الجدد باستخدام الأمر /invite
الذي سيؤدي إلى إنشاء رابط للاستخدام الفردي لتسجيل المستخدم.
المساهمات هي موضع ترحيب. لإجراء تغييرات كبيرة، يرجى فتح مشكلة أولاً لمناقشة ما تريد تغييره. تأكد من تحديث الاختبارات حسب الاقتضاء.
رخصة معهد ماساتشوستس للتكنولوجيا
حقوق الطبع والنشر (ج) 2023 CodeCat