نصب rocket chat بر روی Debian

در این مطلب به آموزش نصب و استفاده از یک ابزار چت opensource به نام rocket chat می پردازیم.

rocket chat در واقع همان سرویس slack است که جمعی از برنامه تویسان آن را با استقاده از nodejs نوشته اند. این ابزار از این لحاظ کامل و قابل ستایش است که شما هم میتونید از طریق وب با ان کار کنید و هم برای همه سیستم عامل ها مانند android, IOS, windows, linux و … کلاینت مخصوص به خود را دارد که بتوانید از آن استفاده کنید. همچنین یکی از قابلیت های مهم آن این است که شما میتوانید قطعه کد ها یا تنظیمات خود را بدون بهم ریختن از طریق آن ارسال کنید.

توجه کنید که این آموزش بر پایه دبیان لینوکس میباشد که شما میتوانید فیلم آموزش نصب آن را از اینجا ببینید.

حالا به آموزش نصب آن می پردازیم. در ابتدا با استفاده از دستور زیر اقدام به نصب nodejs و ابزارهای مورد نیاز برای نصب rocket chat میکنیم.

apt install nodejs build-essential npm

بعد از اینکه نصب موارد بالا تمام شد با استفاده از دستور زیر اقدام به نصب ابزار n میکنیم.

sudo npm install -g n

بعد از اینکه ابزار n نصب شد باید آن را به نسخه ۴٫۷٫۱ با استفاده از دستور زیر بروز کنیم.

n 4.7.1

بعد از اینکه کارهای بالا تمام شد نیاز داریم تا یک دیتابیس برای دخیره سازی همه مواردی که در چت سرور رد و بدل میشوند داریم. از آنجایی که rocket chat از mongodb به عنوان دیتابیس استفاده میکند ما نیز در اینجا به آموزش نصب آن می پردازیم.

برای اینکه بتوانید Mongodb زا نصب کنید باید ابتدا کلید مربوط به ریپازیتوری mongodb را به سیستم معرفی کنیم . برای این منظور دستور زیر را اجرا میکنیم.

apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv EA312927

سپس باید آدرس repository را در فایلی به نام mongodb-org-3.2.list اضافه کنیم . برای این منظور دستور زیر را اجرا میکنیم.

echo “deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.2 main” | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

بعد از انجام کارهای بالا با استفاده از دستورات زیر ابتدا اقدام به بروز رسانی apt و نصب mongodb میکنیم.

apt update
apt install mongodb-org curl graphicsmagick

نکته: برای اینکه performance ابزار Mongodb بالاتر برود ما باید برای آن replica تعریف کنیم . به همین جهت فایل mongo.conf را ویرایش میکنیم و خطوط زیر را به آن اضافه میکنیم.

replication:
replSetName: “001-rs”

سپس برای اینکه تغییرات بر روی سرویس Mongodb اعمال شود آن را ریستارت میکتیم.

service mongod restart

بعد از اینکه سرویس Mongod را ریستارت کردیم باید وارد شل mongo بشویم و از اجرا شدن replica مطمئن شویم. برای این منظور بصورت زیر عمل میکنیم.

mongo
> rs.initiate()

نکته: خطوطی که با < شروع شده اند داخل شل mongo اجرا میشوند.

نکته: در اینجا شما باید مطمئن شوید که hostname شما در سیستم بصورت FQDN تعریف شده باشد.

حالا باید یک متغییر برای mongodb در سیستم تعریف کنیم . برای این منظور بصورت زیر عمل میکنیم.

export MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=001-rs

تا اینجای کار ما سیستم را برای نصب و اجرای rocket chat آماده کردیم . حالا نوبت به خود rocket chat میرسد. برای این منظور ابیتدا باید آن را دانلود کنیم.

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

سپس باید ان را از حالت فشرده خارج کنیم و برای راحتی کار فولدر آن را به Rocket.Chat تغییر نام میدهیم.

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

و بعد از آن به مسیر Rocket.Chat/programs/server میرویم و دستورات  زیر را اجرا میکنیم.

cd Rocket.Chat/programs/server
npm install

بعد از اینکه کار اجرای دستور بالا تمام شد rocket chat نصب شده است . و کاری که ما باید انجام دهیم این است که اولا کاری کنیم که آن روی پورت ۸۰ روی وب در دسترس باشد و اینکه خود سرویس rocket chat همیشه بالا باشد.

برای مورد اول یعنی بالا آمدن rocket بر روی پورت ۸۰ ما از وب سرور nginx استفاده میکنیم و به ان یک virtual host مانند تنظیمات زیر اضافه میکنیم.

نکته: برای آموزش نصب و تنظیم nginx به اینجا مراجعه کنید.

# Upstreams
upstream backend {
server 127.0.0.1:3000;
}

# HTTPS Server
server {
#listen 443;
listen 80;
server_name rocketchat.nowlearn.ir;

access_log /var/log/nginx/rocketchat.access.log;
error_log /var/log/nginx/rocketchat.error.log;

#ssl on;
#ssl_certificate /etc/nginx/certificate.crt;
#ssl_certificate_key /etc/nginx/certificate.key;
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # don’t use SSLv3 ref: POODLE

location / {
proxy_pass http://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;
}
}

نکته: در صورتی که میخواهید بصورت https از سرویس rocket خود استفاده کنید میتوانید از این آموزش برای گرفتن certificate استفاده کنید.

و بعد از انجام موارد بالا سرویس nginx را ریستارت میکنیم تا تغییرات در ان اعمال شوند.

systemctl restart nginx

سپس برای مورد دوم یعنی بالا آمدن خودکار rocket از ابزار supervisor استفاده میکنیم و تظیمات زیر را برای rocket در آن قرار میدهیم.

نکته: برای خواندن آموزش سرویس supervisor به اینجا مراجعه کنید.

program:rocketchat]
environment=MONGO_URL=mongodb://127.0.0.1:27017/rocketchat,Accounts_AvatarStorePath=/app/uploads,PORT=3000,ROOT_URL=https://rocketchat.nowlearn.ir
command = /usr/local/bin/node /app/bundle/main.js
user = rocketchat
stdout_events_enabled=true
stderr_events_enabled=true
autostart = true

و در آخر سرویس supervisor را ریستارت میکنیم.

systemcel restart supervisord

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *