إنشاء سيرفر محادثات خاص بالبيت

#مقدمة

في هذه المشاركة سوف أشرح طريقة إنشاء سيرفر محادثات٬ مع إمكانية دخول عليه

وأيضًا سأتطرق إلى كيف يمكن الدخول على سيرفر المحادثات من خارج شبكة البيت٬ بحيث أنه يمكنك اعتماد السيرفر كبرنامج محادثات سري لك ولمن تحب.

الخيارات المتاحة

برامج المحادثات المفتوحة المصدر التي كانت تستحق الاطلاع عليها اثنان

وبعد المقارنة٬ وجدت روكيت شات أفضل من ماتر موست لعدة أسباب:

١- يدعم تطبيق native للأندرويد والآيفون

٢- مذكرة استخدامه جدًا رائع وشبه مكتمل

٣- لدعمه إضافات مثل محادثات الفيديو وغيرها٬ لم أتعمق بالبحث فيها للآن

التحميل٬ والتثبيت

أحب دائما استخدام نظام تشغيل centos 7 وذلك لاعتيادي عليه٬ في الموقع شروحات لأنظمة تشغيل أخرى فاختر ما يناسبك.

هنا موقع شرح خطوات التثبيت لمختلف الأنظمة

فأولا سأقوم بإنشاء VM وسأضع عليه centos 7 بالنسبة للتثبيت لم أواجه أي مشكلة ما عدا ف نهاية ظهرت لي مشكلة بسيطة وتم حلها

خطوات التثبيت

كما في موقعهم

ادخل على الروت وضع الباسورد su -

yum -y install epel-release nano && yum -y update
nano /etc/yum.repos.d/mongodb.repo

قم بلصق:

  [mongodb]
  name=MongoDB Repository
  baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
  gpgcheck=0
  enabled=1

ثم CTRL-O, CTRL-X للخروج

npm install -g inherits n
n 8.9.3

cd /opt

curl -L https://releases.rocket.chat/latest/download -o rocket.chat.tgz
tar zxvf rocket.chat.tgz

mv bundle Rocket.Chat
cd Rocket.Chat/programs/server

npm install

cd ../..

قبل أن تقوم بالتالي:

export PORT=3000
export ROOT_URL=http://your-host-name.com-as-accessed-from-internet:3000/
export MONGO_URL=mongodb://localhost:27017/rocketchat

بالنسبة ل ROOT_URL سنحتاج للخطوات التالية لاستبدالها برابطنا الخاص:

شركة الاتصالات stc تقوم بتوفير dynamic ip address للمستخدمين٬ بمعنى آخر٬ أن ip البيت يتغير وليس ثابت٬ فلذلك سنحتاج إلى شيء يقوم بتتبع ip السيرفر٬ والذي سيحل لنا هذه المشكلة موقع no-ip وهو موقع مجاني يمكنك تتبع حتى ثلاث ip ٬ قم بالتسجيل في الموقع ثم اذهب إلى myaccount في أعلى الصفحة

الصورتين التالية توضح طريقة تسجيل رابطنا الخاص:

noip-1 noip-2

فاستبدل الآن رابطنا الخاص في ROOT_URL

ففي حالتي

export ROOT_URL=http://alsayedhost.ddns.net:3000/

اقتربنا من النهاية

chkconfig mongod on

systemctl start mongod

node main.js

إذا ظهرت لك هذه الشاشة فتهانينا ! سيرفر المحادثات يعمل وادخل الأن على ipaddress الجهاز ويمكن معرفة ذلك بأمر ip addr

rocketchat-1

ادخل على http://192.168.100.32:3000/

وستظهر لك هذه الصفحة٬ سجل لك عضوية جديدة rocketchat-2

في حال واجهتك المشكلة التالية:

Exception in callback of async function: Error: /lib64/libstdc++.so.6: version CXXABI_1.3.8 not found (required by /opt/rocketchat/rocket.chat.0.62.0 rc.1/programs/server/npm/node_modules/sharp/build/Release/sharp.node)

قم بالتالي:

cd /opt/Rocket.Chat/programs/server/npm/node_modules
npm rebuild sharp
cd ~/opt/Rocket.Chat

وجرب الآن

node main.js

الدخول على السيرفر من خارج شبكة البيت

للدخول على السيرفر من خارج شبكة البيت٬ نحتاج لإضافة إعدادات في رواتر الانترنت الموجود بالبيت بالنسبة لي٬ فراوتر البيت Huwaei HG8245

موقع الرواتر: 192.169.100.1

وقم بالتالي: config-1

الآن جرب من خارج شبكة البيت مثل 3G الهاتف وادخل على

http://alsayedhost.ddns.net:3000/

ستظهر لك صفحة السيرفر !

حتى تتمكن من الدخول على نفس الصفحة من نفس الرابط نحتاج لإضافة إعداد آخر: config-2

وجرب الآن من شبكة البيت الدخول على الرابط الخاص بموقع المحادثات.

ستظهر لك صفحة السيرفر !

يمكنك الآن فتح التطبيق وعند طلبه لرابط السيرفر ضع رابطك الخاص

وألف مبروك !