ذكري المظهر

كيفية نشر الصواريخ. على سنتوس 7

Privacy, Security, Society - Computer Science for Business Leaders 2016

Privacy, Security, Society - Computer Science for Business Leaders 2016

جدول المحتويات:

Anonim

Rocket.Chat هو عبارة عن منصة تواصل فريق كاملة ، بديل بديل سلاك. تم تصميمه مع Meteor ويوفر العديد من الميزات بما في ذلك دردشة مكتب المساعدة وعقد مؤتمرات فيديو ومشاركة الملفات والرسائل الصوتية وواجهة برمجة التطبيقات والمزيد.

في هذا البرنامج التعليمي ، سوف نوضح لك كيفية تثبيت Rocket.Chat ونشره على خادم CentOS 7 مع Nginx كوكيل عكسي لـ SSL.

المتطلبات الأساسية

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

  • خادم CentOS 7 ، وفقًا لمتطلبات نظام Rocket.Chat الرسمية ، فأنت تحتاج إلى 1 غ من ذاكرة الوصول العشوائي على الأقل. لقد قمت بتسجيل الدخول كمستخدم لديه امتيازات sudo. لديك اسم مجال يشير إلى عنوان IP الخاص بالخادم. ، سنستخدم example.com . لديك تثبيت Nginx ، إن لم يكن يمكنك تثبيته باتباع هذا البرنامج التعليمي.شهادة SSL. يمكنك إنشاء نسخة مجانية من Let's Encrypt ، أو شراء واحدة من مزود آخر.

تثبيت التبعيات

قم بتثبيت الحزم التالية الضرورية لبناء وحدات npm المطلوبة:

sudo yum install epel-release curl GraphicsMagick gcc-c++

بعد ذلك ، قم بتثبيت Node.js و npm بكتابة:

sudo yum install -y nodejs npm

في وقت كتابة هذا المقال ، كان إصدار Node.js الموصى به لـ Rocket.Chat هو Node.js v8.11.3.

لإصدار الأوامر التالية لتثبيت الأداة المساعدة n وإصدار Node.js الموصى به:

sudo npm install -g inherits n sudo n 8.11.3

MongoDB هي قاعدة بيانات موجهة للمستندات NoSQL ويستخدمها Rocket.Chat كمخزن للبيانات. Rocket.Chat توصي MongoDB الإصدار 3.6.

سنقوم بتثبيت MongoDB باستخدام yum من مستودعات MongoDB الرسمية.

افتح المحرر الذي اخترته وقم بإنشاء ملف المستودع التالي:

sudo nano /etc/yum.repos.d/mongodb-org.repo

الصق المحتوى التالي في الملف:

/etc/yum.repos.d/mongodb-org.repo

name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

احفظ الملف وأغلق محرر النصوص.

لتثبيت MongoDB ، قم بتشغيل الأمر التالي:

sudo yum install mongodb-org

بمجرد اكتمال التثبيت ، قم بتمكين وبدء خدمة MongoDB:

sudo systemctl start mongod sudo systemctl enable mongod

إنشاء مستخدم جديد للنظام

قم بإنشاء مستخدم جديد ومجموعة ، يعملان على تشغيل مثيل Rocket.Chat. للبساطة ، سنقوم بتسمية rocket المستخدم:

sudo useradd -m -U -r -d /opt/rocket rocket

أضف مستخدم nginx إلى مجموعة المستخدمين الجديدة وقم بتغيير أذونات دليل /opt/rocket بحيث يمكن لـ Nginx الوصول إليه:

sudo usermod -a -G rocket nginx sudo chmod 750 /opt/rocket

تثبيت Rocket.Chat

قم بالتبديل إلى rocket المستخدم بكتابة:

sudo su - rocket

قم بتنزيل أحدث إصدار ثابت من Rocket.Chat مع حليقة:

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

بمجرد اكتمال التنزيل ، Rocket.Chat الأرشيف وأعد تسمية الدليل إلى Rocket.Chat :

tar zxf rocket.chat.tgz mv bundle Rocket.Chat

التغيير في دليل Rocket.Chat/programs/server وتثبيت جميع حزم npm المطلوبة:

cd Rocket.Chat/programs/server npm install cd Rocket.Chat/programs/server npm install

قبل إنشاء وحدة systemd وإعداد وكيل عكسي مع Nginx ، من الجيد اختبار نجاح التثبيت.

للقيام بذلك ، ابدأ بتعيين متغيرات البيئة المطلوبة:

export PORT=3000 export ROOT_URL=http://example.com:3000/ export MONGO_URL=mongodb://localhost:27017/rocketchat

بعد ذلك ، قم بالرجوع إلى دليل Rocket.Chat وابدأ خادم Rocket.Chat بإصدار الأوامر التالية:

cd../../ node main.js

في حالة عدم وجود أخطاء ، يجب أن تشاهد الإخراج التالي:

➔ +---------------------------------------------+ ➔ | SERVER RUNNING | ➔ +---------------------------------------------+ ➔ | | ➔ | Rocket.Chat Version: 0.71.1 | ➔ | NodeJS Version: 8.11.3 - x64 | ➔ | Platform: linux | ➔ | Process Port: 3000 | ➔ | Site URL: http://0.0.0.0:3000/ | ➔ | ReplicaSet OpLog: Disabled | ➔ | Commit Hash: e73dc78ffd | ➔ | Commit Branch: HEAD | ➔ | | ➔ +---------------------------------------------+

في هذه المرحلة ، يتم تثبيت Rocket.Chat على جهاز CentOS 7 الخاص بك. أوقف خادم Rocket.Chat باستخدام CTRL+C الخطوات التالية.

إنشاء وحدة Systemd

لتشغيل Rocket.Chat كخدمة ، قم بإنشاء ملف وحدة rocketchat.service في الدليل /etc/systemd/system/ :

sudo nano /etc/systemd/system/rocketchat.service الصق المحتوى التالي في الملف: /etc/systemd/system/rocketchat.service

Description=Rocket.Chat server After=network.target nss-lookup.target mongod.target StandardOutput=syslog StandardError=syslog SyslogIdentifier=rocketchat User=rocket Environment=MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=http://example.com:3000/ PORT=3000 ExecStart=/usr/local/bin/node /opt/rocket/Rocket.Chat/main.js WantedBy=multi-user.target

أحفظ وأغلق الملف.

أخبر systemd أنه تم إنشاء ملف وحدة جديد وبدء تشغيل خدمة Rocket.Chat من خلال تنفيذ:

sudo systemctl daemon-reload sudo systemctl start rocketchat

تحقق من حالة الخدمة باستخدام الأمر التالي:

sudo systemctl status rocketchat

يجب أن يبدو الإخراج بشيء من هذا القبيل:

● rocketchat.service - Rocket.Chat server Loaded: loaded (/etc/systemd/system/rocketchat.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2018-04-10 20:30:56 UTC; 8s ago Main PID: 32356 (node) CGroup: /system.slice/rocketchat.service └─32356 /usr/local/bin/node /opt/rocket/Rocket.Chat/main.js

إذا لم تكن هناك أخطاء ، فيمكنك تمكين بدء تشغيل خدمة Rocket.Chat تلقائيًا في وقت التمهيد:

sudo systemctl enable rocketchat

إعداد وكيل عكسي مع Nginx

الآن نحن بحاجة إلى إنشاء كتلة خادم جديدة لتثبيت Rocket.Chat لدينا:

sudo nano /etc/nginx/conf.d/example.com.conf

الصق المحتوى التالي في الملف:

/etc/nginx/conf.d/example.com.conf

upstream rocketchat_backend { server 127.0.0.1:3000; } server { listen 80; server_name example.com www.example.com; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; include snippets/letsencrypt.conf; access_log /var/log/nginx/example.com-access.log; error_log /var/log/nginx/example.com-error.log; location / { proxy_pass http://rocketchat_backend/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; proxy_set_header X-Forward-Proto http; proxy_set_header X-Nginx-Proxy true; proxy_redirect off; } }

أعد تحميل خدمة Nginx لتصبح التغييرات نافذة المفعول:

sudo systemctl reload nginx

تكوين Rocket.Chat

افتح المتصفح الخاص بك واكتب: http://chat.example.com .

على افتراض أن عملية التثبيت ناجحة ، سيتم تزويدك بـ Rocket.Chat Setup Wizard والذي سيرشدك من خلال إعداد أول مستخدم مسؤول ، وتكوين مؤسستك وتسجيل الخادم الخاص بك لتلقي إعلامات الدفع المجانية والمزيد.

سيطلب منك القسم الأول من معالج الإعداد الأولي إعداد مستخدم المسؤول الخاص بك:

انقر فوق الزر انتقال Go to your workspace وسيتم توجيهك إلى لوحة معلومات Rocket.Chat بتسجيل الدخول باسم المستخدم المسؤول.

استنتاج

لقد قمت بتثبيت Rocket.Chat بنجاح على خادم CentOS 7 الخاص بك. يمكنك الآن بدء استخدام Rocket.Chat للتعاون مع فريقك ومشاركة الملفات والدردشة في الوقت الفعلي.

nodjs rocketchat centos mongodb