آموزش نصب راکت چت (Rocket.Chat) روی سرور لینوکس اوبونتو

نصب راکت چت

بسیاری از سازمان‌ها به دنبال جایگزینی برای پلتفرم‌های عمومی مانند اسلک و مایکروسافت تیمز هستند تا بتوانند کنترل بهتری روی اطلاعات خود داشته باشند. در این میان راکت چت به عنوان یک پیام‌رسان متن‌باز تبدیل به گزینه‌ای محبوب شده است. در این مقاله به شما کمک می‌کنیم تا با این ابزار قدرتمند و به‌روزترین روش‌های نصب راکت چت روی سرور مجازی لینوکس اوبونتو آشنا شوید.

راکت چت چیست؟

راکت چت (Rocket.Chat) یک پلتفرم ارتباطی و همکاری گروهی اپن سورس است که به عنوان یک جایگزین امن و انعطاف‌پذیر برای پیام‌رسان‌های تجاری شناخته می‌شود. با این ابزار سازمان‌ها می‌توانند کنترل کامل داده‌های خود را در دست گرفته و آن را روی سرورها یا زیرساخت ابری خود نصب و اجرا کنند؛ مثلا روی سرور مجازی ایران برای کنترل داخلی داده‌ها یا سرور مجازی ترکیه برای عملکرد بهتر در ارتباطات منطقه‌ای.

راکت چت امکاناتی نظیر چت تیمی، پیام‌رسانی مستقیم، کانال‌های عمومی و خصوصی، تماس‌های صوتی و تصویری، اشتراک‌گذاری فایل، ترجمه خودکار پیام‌ها و ابزارهای مدیریت جامع برای داده‌ها را در یک بستر واحد ارائه می‌دهد. این پلتفرم از زبان برنامه‌نویسی تایپ‌اسکریپت استفاده می‌کند و با تمرکز بر حفظ حریم خصوصی و امنیت داده‌ها توسعه داده شده است.

تاریخچه راکت چت

پروژه راکت چت در سال ۲۰۱۵ و به عنوان یک پروژه جانبی توسط چهار دوست آغاز شد. هدف اصلی آن‌ها ایجاد یک پلتفرم متن‌باز بود که به سازمان‌ها امکان دهد خودشان مالک مکالمه‌هایشان باشند و حریم خصوصی و امنیت داده‌ها را در اولویت قرار دهند. در آن زمان، پلتفرم‌های متمرکز و غیرقابل میزبانی شخصی در حال رشد بودند، اما نگرانی‌هایی در مورد آن‌ها برای کنترل و مالکیت داده‌ها وجود داشت. با انتخاب مدل متن‌باز، راکت چت توانست به سرعت جامعه‌ای فعال از توسعه‌دهندگان و کاربران در سراسر جهان به دست آورد. این جامعه مداوم در حال بهبود و افزودن ویژگی‌های جدید است.

دلیل استفاده سازمان‌ها از این پیام‌رسان چیست؟

سازمان‌هایی که استانداردهای بالایی برای امنیت و حاکمیت داده دارند، به دلایل متعددی از راکت چت برای ارتباطات خود استفاده می‌کنند:

حاکمیت و حریم خصوصی کامل داده‌ها: مهم‌ترین مزیت راکت چت، امکان میزبانی شخصی یا سلف هاستینگ است. این یعنی سازمان‌ها می‌توانند سرور راکت چت را در دیتاسنتر یا زیرساخت ابری خصوصی خود نصب کنند. در نتیجه داده‌ها و مکالمات حساس کاملا تحت کنترل خود سازمان باقی می‌مانند و از سرورهای شخص ثالث یا خارجی عبور نمی‌کنند.

متن‌باز بودن و شفافیت: متن‌باز بودن باعث شده که کد برنامه کاملا شفاف باشد. سازمان‌ها می‌توانند کد را برای اطمینان از عدم وجود آسیب‌پذیری‌های امنیتی بررسی کنند؛ دقیقا برخلاف نرم‌افزارهای تجاری که امنیت آن‌ها به ادعاهای سازنده وابسته است.

سفارشی‌سازی و انعطاف‌پذیری: سازمان‌ها می‌توانند راکت چت را دقیقا بر اساس نیازها و گردش کار خود ستاپ کنند. از تغییرات ظاهری گرفته تا توسعه قابلیت‌های جدید و یکپارچه‌سازی با سیستم‌های داخلی. این سطح از انعطاف‌پذیری در پلتفرم‌های تجاری معمولا ممکن نیست.

مدیریت کانال جامع: راکت چت ابزارهای مدیریتی قدرتمندی را برای تنظیم دسترسی‌ها فراهم می‌کند. می‌توان کانال‌های خصوصی، عمومی، Broadcast یا صرفا خواندنی (Read-Only) ایجاد کرد تا ارتباطات مطابق با سیاست‌های داخلی و امنیتی سازمان پیش بروند.

اکوسیستم جامع و یکپارچه‌سازی: راکت چت شامل قابلیت‌های تماس صوتی و تصویری، چت‌بات‌ها، ترجمه خودکار و قابلیت‌های امنیتی پیشرفته مانند رمزگذاری سرتاسری و احراز هویت پیشرفته است. همچنین با استفاده از API‌های قدرتمند، امکان یکپارچه‌سازی با هزاران برنامه و سرویس دیگر وجود دارد.

اپلیکیشن راکت چت

مزایا و معایب راکت چت

مانند هر نرم‌افزاری، راکت چت نیز در کنار مزایای برجسته خود، دارای چالش‌ها و معایبی است که باید پیش از استفاده در نظر گرفته شوند:

مزایای راکت چت

کنترل کامل داده‌ها: امکان میزبانی شخصی برای حفظ حریم خصوصی و حاکمیت کامل بر تمامی داده‌ها.
متن‌باز و رایگان: شفافیت کامل در کد، امنیت بالا با بازبینی جامعه توسعه‌دهندگان و عدم وابستگی به یک شرکت خاص.
سفارشی‌سازی بالا: قابلیت تغییرات عمیق در کد منبع، ظاهر و امکانات برای انطباق کامل با نیازهای خاص سازمان.
پشتیبانی از پلتفرم‌ها: در دسترس بودن برای وب، دسکتاپ (ویندوز، مک، لینوکس) و موبایل (iOS و اندروید).
قابلیت‌های غنی: چت تیمی، کنفرانس ویدیویی، اشتراک‌گذاری فایل، ترجمه خودکار، امکان بازرسی پیام‌ها و ابزارهای جامع مدیریت کاربران.
مقیاس‌پذیری: مناسب برای سازمان‌های کوچک تا بزرگ که می‌توانند با افزایش تعداد کاربران به راحتی مقیاس خود را گسترش دهند.

معایب راکت چت

  • پیچیدگی راه‌اندازی: در مقایسه با پلتفرم‌های ابری آماده، نصب، پیکربندی و نگهداری اولیه آن به‌خصوص برای کاربران تازه‌کار، زمان‌بر و پیچیده‌تر است.
  • مسئولیت نگهداری: با میزبانی شخصی، مسئولیت کامل به‌روزرسانی‌ها، امنیت، بکاپ‌گیری و رفع اشکال‌های سرور بر عهده تیم ‌آی‌تی سازمان است.
  • نیاز به تخصص فنی: برای بهره‌گیری کامل از مزایا و انجام سفارشی‌سازی‌های عمیق، نیاز به دانش و مهارت در فناوری‌هایی مانند Node.js، MongoDB و مفاهیم سرور و شبکه وجود دارد.
  • پشتیبانی سازمانی محدود: در نسخه رایگان و متن‌باز، پشتیبانی رسمی محدود به انجمن کاربران است و برای پشتیبانی تخصصی سازمانی باید به پلن‌های سازمانی مراجعه کرد.

پیش‌نیازهای راه‌اندازی راکت چت

قبل از شروع نصب Rocket.Chat باید مطمئن شوید که سرور شما الزامات سخت‌افزاری و نرم‌افزاری مورد نیاز را دارد. این پیش‌نیازها بسته به تعداد کاربران همزمان شما متفاوت خواهد بود:

۱. نیازمندی‌های سخت‌افزاری

الزامات سخت‌افزاری برای راه‌اندازی راکت چت بر اساس حجم بار کاری و تعداد کاربران همزمان دسته‌بندی می‌شود:

سرویس منابع مورد نیاز برای سرور Rocket.Chat منابع مورد نیاز برای سرور MongoDB 
سرویس استارتر یا پرو (کمتر از ۵۰۰ کاربر همزمان) پردازنده: ۲ هسته (۳.۵ تا ۵ گیگاهرتز) پردازنده: ۲ هسته (۳ گیگاهرتز)
رم: ۴ گیگابایت رم: ۴ گیگابایت
فضای ذخیره‌سازی: ۲۰ گیگابایت فضای ذخیره‌سازی: ۱۰ گیگابایت
سرویس سازمانی (بیشتر از ۵۰۰ کاربر همزمان) پردازنده: ۴ هسته (۴ تا ۵ گیگاهرتز) پردازنده: ۲ هسته (۳ گیگاهرتز)
رم: ۸ تا ۱۲ گیگابایت رم: ۸ تا ۱۶ گیگابایت
فضای ذخیره‌سازی: ۲۰ گیگابایت فضای ذخیره‌سازی: ۲۰ تا ۸۰ گیگابایت

نکات مهم در مورد سخت‌افزار:

پیش از راه اندازی راکت چت، باید درباره ذخیره‌سازی فایل‌ها موارد زیر را نیز در نظر بگیرید:

  • ذخیره‌سازی فایل: راکت چت توصیه می‌کند که برای آپلود فایل‌ها از سرویس‌های ذخیره‌سازی Object Storage مانند Amazon S3، Google Cloud Storage یا MinIO استفاده کنید. استفاده از GridFS توصیه نمی‌شود.
  • محاسبه فضای ذخیره‌سازی فایل: برای مثال، اگر ۱۰۰ کاربر همزمان داشته باشید و هر کاربر به‌طور میانگین ۵ مگابایت پیوست در ماه آپلود کند، حداقل فضای ذخیره‌سازی سالانه مورد نیاز شما حدود ۶ گیگابایت خواهد بود.

۲. پایگاه داده

پایگاه داده MongoDB ستون فقرات راکت چت است. برای اطمینان از در دسترس بودن مداوم MongoDB و جلوگیری از قطعی، پیشنهاد می‌شود از Replica Set سه‌عضوی استفاده شود. در این ساختار، در صورت از کار افتادن یکی از سرورها، دو سرور دیگر ادامه‌ی کار را بر عهده می‌گیرند و از توقف سرویس جلوگیری می‌شود. می‌توانید این مجموعه را خودتان مدیریت کنید یا از سرویس‌هایی مانند MongoDB Atlas کمک بگیرید تا به‌طور منظم وضعیت سرورها و فضای ذخیره‌سازی را تنظیم کند.

انواع روش‌های نصب راکت چت در اوبونتو

برای نصب راکت چت روی سیستم عامل اوبونتو، سه روش اصلی وجود دارد که هر یک متناسب با نیازها و زیرساخت‌های متفاوتی هستند. در ادامه، این سه روش را که توسط تیم راکت چت توصیه شده‌اند، به‌طور کامل شرح می‌دهیم:

نصب از طریق پکیج Snap

روش Snap، استفاده از سیستم مدیریت پکیج اوبونتو است که تمامی وابستگی‌های لازم راکت چت (از جمله MongoDB) را به‌صورت ایزوله در یک کانتینر نصب می‌کند. این روش برای محیط‌های آزمایشی و کسانی که به دنبال کمترین دردسر در نصب هستند مناسب است:

۱. نصب Snap (اگر از قبل روی اوبونتو شما نصب نشده است):

sudo apt update

sudo apt install snapd

۲. نصب سرور راکت چت:
پکیج Snap سرور راکت چت را نصب کنید. این دستور به‌طور خودکار سرور را راه‌اندازی می‌کند و MongoDB را نصب می‌کند.

sudo snap install rocketchat-server

۳. دسترسی اولیه:
پس از نصب، سرور شما به‌طور پیش‌فرض روی پورت 3000 در دسترس است (مثلا http://Your_Server_IP:3000).

۴. فعال‌سازی HTTPS با Caddy (اختیاری):
اگر نام دامنه دارید، می‌توانید از وب‌سرور داخلی Caddy برای فعال‌سازی رایگان گواهی SSL استفاده کنید.

sudo snap set rocketchat-server caddy=enable

sudo snap set rocketchat-server https=enable

sudo snap set rocketchat-server siteurl="https://<YOUR_DOMAIN>

نصب با Docker و Docker Compose

استفاده از Docker و Docker Compose یکی از روش‌های ساده و انعطاف‌پذیر نصب راکت چت است:

۱. مطمئن شوید که Docker و Docker Compose ورژن ۲ و Git روی سیستم نصب و فعال هستند. اگر نصب نیستند، می‌توانید از دستور زیر استفاده کنید:

curl -L https://get.docker.com | sh

sudo apt install git

۲. برای اجرای فرمان‌های Docker بدون نیاز به sudo، کاربر فعلی خود را به گروه docker اضافه کنید:

whoami

sudo usermod -aG docker $USER

به جای $USER نام کاربر خود را قرار دهید

سپس سیستم را ریبوت کنید تا تغییرات اعمال شوند:

sudo reboot

۳. دریافت فایل‌های پیکربندی Compose:

مخزن رسمی rocketchat-compose شامل تمام فایل‌های پیکربندی مورد نیاز برای پیاده‌سازی با Docker Compose است. مخزن را با Git کلون کنید و به پوشه کلون شده بروید:

git clone --depth 1 https://github.com/RocketChat/rocketchat-compose.git

cd rocketchat-compose

این مخزن شامل:

  • compose.yml: فایل اصلی پیکربندی Docker Compose
  • .env.example: یک فایل نمونه برای پیکربندی متغیرهای محیطی
  • پیکربندی‌های اضافی مانند Traefik، مانیتورینگ و غیره

برای پیکربندی بدون نیاز به ویرایش مستقیم compose.yml، یک فایل .env اختصاصیی نیاز دارید:

cp .env.example .env

در این فایل .env می‌توانید متغیرهایی مثل نسخه Rocket.Chat و آدرس دامنه را تنظیم کنید.

۴. پیکربندی Rocket.Chat:

پیش از راه‌اندازی، باید چند متغیر کلیدی را در فایل .env پیکربندی کنید. با دستور زیر فایل .env را باز کنید:

nano .env

متغیرهای زیر را در فایل مشخص کنید:

  • RELEASE: نسخه مورد نظر Rocket.Chat
  • DOMAIN و ROOT_URL: تعیین می‌کنند که کاربران چگونه به فضای شما دسترسی پیدا می‌کنند.
    اگر هدف فقط برای تست لوکال است، می‌توانید از مقادیر پیش‌فرض مثل localhost استفاده کنید.
DOMAIN=localhost

ROOT_URL=http://localhost

برای دسترسی عمومی و امن، باید دامنه و پروتکل HTTPS تعریف شوند و Traefik به صورت خودکار گواهی SSL از Let’s Encrypt بگیرد. به‌عنوان مثال:

DOMAIN=chat.example.com

ROOT_URL=https://chat.example.com

LETSENCRYPT_ENABLED=true

[email protected]

TRAEFIK_PROTOCOL=https

۵. فعال‌سازی مانیتورینگ

مخزن rocketchat-compose شامل ابزارهای Grafana برای مصورسازی داده‌ها و Prometheus برای جمع‌آوری داده‌ها است. این تنظیمات به شما امکان می‌دهد شاخص‌های کلیدی را مشاهده کنید، عملکرد سیستم را پایش کنید و از وضعیت سلامت سرور Rocket.Chat خود آگاهی پیدا کنید.

دسترسی به Grafana از طریق Path:

این روش برای پیاده‌سازی لوکال یا زمانی که می‌خواهید همه سرویس‌ها را در یک دامنه نگه دارید مناسب است.
در این حالت می‌توانید به داشبورد Grafana از طریق یک زیردامنه دسترسی داشته باشید. مثلا: https://your-domain.com/grafana. برای استفاده از این روش، مراحل زیر را در فایل .env انجام دهید:

می‌توانید از مقادیر پیش‌فرض برای متغیرهای زیر استفاده کنید:

GRAFANA_DOMAIN=

GRAFANA_PATH=/grafana

اطمینان حاصل کنید که مقدار GRAFANA_PATH در انتها اسلش ( / ) نداشته باشد

یک رمز عبور قوی برای کاربر مدیر Grafana تنظیم کنید:

GRAFANA_ADMIN_PASSWORD=your_secure_password

دسترسی به Grafana از طریق زیردامنه:

این روش دسترسی ایمن‌تر و تفکیک‌شده‌تری فراهم می‌کند:

اطمینان حاصل کنید رکورد A زیردامنه شما به درستی به آدرس IP عمومی سرور اشاره می‌کند. مثلا زیردامنه‌ grafana.your-domain.com باید به IP سرور شما متصل باشد.

فایل .env را باز کرده و متغیرهای زیر را تنظیم کنید:

GRAFANA_DOMAIN=grafana.your-domain.com

GRAFANA_PATH=

سپس مانند قبل، برای کاربر مدیر Grafana یک رمز قوی تعیین کنید:

GRAFANA_ADMIN_PASSWORD=your_secure_password

محیط گرافانا

۶. راه‌اندازی Rocket.Chat:

وقتی فایل .env پیکربندی شد:

۱. فرمان زیر را اجرا کنید تا Docker ایمیج‌های لازم را دانلود کرده و کانتینرها را در پس‌زمینه اجرا کند:

docker compose -f compose.database.yml -f compose.monitoring.yml -f compose.traefik.yml -f compose.yml up -d

می‌توانید بر اساس نیاز خود فایل‌های .yml را که به کارتان نمی‌آیند حذف کنید.

برای بررسی وضعیت سرویس‌ها:

docker ps

۷. دسترسی به فضای Rocket.Chat

پس از انجام مراحل بالا و پیاده‌سازی راکت چت، می‌توانید با استفاده از مرورگر به محیط سرویس خود دسترسی پیدا کنید.

  • برای تست لوکال: مرورگر را به http://localhost:3000 ببرید
  • برای محیط پروداکشن: به آدرس ROOT_URL که در .env تنظیم کردید بروید (مثلا https://chat.example.com)
  • در اولین ورود، مراحل راه‌اندازی اولیه (ایجاد کاربر مدیریت و تنظیمات اولیه) را کامل کنید.

اگر مانیتورینگ را فعال کرده باشید، می‌توانید داشبورد Grafana را از طریق Path یا زیردامنه‌ای که پیکربندی کرده‌اید باز کنید؛ مثلا https://your-domain.com/grafana یا https://grafana.your-domain.com. سپیس با استفاده از نام کاربری و رمز عبوری که تعیین کرده‌اید وارد شوید.

۸. به‌روزرسانی فضای ذخیره‌سازی فایل‌ها

Rocket.Chat به صورت پیش‌فرض آپلودها را در GridFS ذخیره می‌کند که می‌تواند بار روی دیتابیس شما افزایش دهد. برای مقیاس‌پذیری بهتر، توصیه می‌شود از سرویس ذخیره‌سازی ابری مانند Amazon S3، Google Cloud Storage یا MinIO استفاده کنید.

نصب با Kubernetes

برای این روش لازم است که درک اولیه‌ای از Kubernetes و Helm داشته باشید. پیش از شروع، مطمئن شوید که پیش‌نیازهای زیر را در اختیار دارید:

الزامات سرور

  • نام دامنه: نام دامنه شما باید طوری ستاپ شده باشد که به آدرس IP عمومی سرور شما اشاره کند.
  • کلاستر Kubernetes: یک کلاستر Kubernetes فعال و در حال اجرا.
  • Helm نسخه ۳: Helm نسخه ۳ باید روی سرور شما نصب شده باشد.
  • پیکربندی فایروال: بررسی کنید که قوانین فایروال شما اجازه ترافیک HTTPS را می‌دهد. اگر از فایروال استفاده می‌کنید، ممکن است لازم باشد برخی از URLها را برای ارتباط با خدمات ابری راکت چت در لیست سفید قرار دهید.

الزامات منابع Kubernetes

منابع Kubernetes زیر باید قبل از نصب، در کلاستر شما قابل دسترسی یا پیکربندی شده باشند.

  • Storage Class: یک Storage Class برای تامین Persistent Volumes یا پی‌وی‌ها مورد نیاز است. اگر کلاستر شما فاقد آن است، باید آن را ایجاد کنید.
    • نکته مهم: چارت Helm راکت چت نیاز دارد که کلاستر Kubernetes شما از تامین دینامیک PV پشتیبانی کند. توزیع‌های محلی Kubernetes مانند Kind، K3s و Minikube اغلب بدون فعال‌سازی Storage Provisioner ارائه می‌شوند. در این موارد، می‌توانید یکی از کارهای زیر را انجام دهید:
      • چارت MongoDB که همراه Rocket.Chat ارائه می‌شود را غیرفعال کرده و به یک اینستنس خارجی MongoDB متصل شوید.
      • یک Storage Provisioner سازگار با محیط خود نصب کنید.
  • کنترلر Ingress: برای مسیریابی ترافیک خارجی به سرویس‌های Rocket.Chat، کنترلر Ingress ضروری است. در این راهنما، از nginx به‌عنوان مثال استفاده می‌کنیم. کنترل‌کننده Ingress-Nginx را با اجرای دستور زیر نصب کنید:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/cloud/deploy.yaml

با اجرای دستور زیر، مطمئن شوید که سرویس ingress-nginx-controller دارای آدرس IP خارجی است:

kubectl get svc -n ingress-nginx
  • Certificate Manager و ClusterIssuer: اگر از قبل گواهی TLS معتبری برای دامنه خود ندارید، با استفاده از cert-manager و یک ClusterIssuer آن را پیکربندی کنید.

نصب Cert-manager:

 kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.14.3/cert-manager.yaml

با اجرای دستور زیر، از ایجاد منابع مطمئن شوید:

kubectl get all -n cert-manager

نصب ClusterIssuer

برای صدور خودکار گواهی‌های TLS در سراسر کلاستر، به یک ClusterIssuer نیاز دارید. در این راهنما، از Let’s Encrypt استفاده می‌کنیم. محتوای زیر را در فایلی به نام clusterissuer.yaml ذخیره کنید:

apiVersion: cert-manager.io/v1

kind: ClusterIssuer

metadata:

  labels:

    app.kubernetes.io/instance: use1-cert-manager

  name: production-cert-issuer

(نام مورد نظر خود را تنظیم کنید. بعدا در values.yaml به آن ارجاع داده می‌شود)

spec:

  acme:

    server: https://acme-v02.api.letsencrypt.org/directory

    email: [email protected]

(با ایمیل خود جایگزین کنید)

    privateKeySecretRef:

      name: cert-manager-secret-production
(نام مورد نظر خود را تنظیم کنید)

    solvers:

    - http01:

        ingress:

          class: nginx

منابع را با اجرای دستور زیر ایجاد کنید:

kubectl apply -f clusterissuer.yaml

با اجرای دستورات زیر، از استقرار ClusterIssuer و ایجاد موفقیت‌آمیز Secret مطمئن شوید:

kubectl get clusterissuer

kubectl get secret -n cert-manager

پس از برآورده شدن تمامی پیش‌نیازها، مراحل بعدی را برای پیاده‌سازی راکت چت با استفاده از Kubernetes دنبال کنید.

۱. مخزن چارت Helm را اضافه کنید:

helm repo add rocketchat https://rocketchat.github.io/helm-charts

اگر اقدامتان موفقیت‌آمیز باشد، پیام تأییدی مبنی بر اضافه شدن «rocketchat» به مخازن خود مشاهده خواهید کرد.

۲. پیکربندی‌های Rocket.Chat را تعریف کنید:

یک فایل values.yaml ایجاد کنید. این فایل نحوه پیکربندی اینستنس Rocket.Chat توسط Helm را مشخص می‌کند. در زیر، یک پیکربندی نمونه آورده شده است:

YAML

image:

  pullPolicy: IfNotPresent

  repository: registry.rocket.chat/rocketchat/rocket.chat

  tag: <release>

(نسخه Rocket.Chat را وارد کنید)

mongodb:

  enabled: true

  auth:

    passwords:

      - rocketchat

    rootPassword: rocketchatroot

microservices:

  enabled: true
(برای فعال‌سازی میکروسرویس‌ها)

replicaCount: 1

host: domain.xyz

(با نام دامنه واقعی Rocket.Chat خود جایگزین کنید)

ingress:

  enabled: true

  ingressClassName: nginx

(کنترلر Ingress نصب شده در کلاستر K8s را مشخص کنید)

  annotations:

    cert-manager.io/cluster-issuer: production-cert-issuer

(با نام ClusterIssuer خود جایگزین کنید)

  tls:

    - secretName: rckube

(در صورت تمایل از نام دیگری استفاده کنید)

      hosts:

        - domain.xyz

(با نام دامنه واقعی Rocket.Chat خود جایگزین کنید)

  • <release> را با نسخه Rocket.Chat مورد نظر خود جایگزین کنید.
  • domain.xyz را با نام دامنه واقعی خود به‌روزرسانی کنید.
  • ingressClassName را بر اساس کنترل‌کننده Ingress که استفاده می‌کنید، تنظیم نمایید.
  • اگر مدیریت‌کننده گواهی و ClusterIssuer را برای TLS پیکربندی کرده‌اید، نام ClusterIssuer و یک secretName برای TLS مشخص کنید. اگر از قبل گواهی معتبری دارید یا نمی‌خواهید از TLS استفاده کنید، مقادیر annotations و tls می‌توانند حذف شوند.
  • برای محیط‌های پروداکشن، لازم است که MongoDB را به صورت جداگانه (غیر کانتینری) پیاده‌سازی کرده و آن را به‌عنوان یک رپلیکا ست برای دسترسی‌پذیری بالا پیکربندی کنید.

۳. مانیتورینگ را فعال‌سازی کنید:

گام بعدی، راه‌اندازی یک داشبورد مانیتورینگ اولیه با استفاده از Grafana است. فایل جداگانه‌ای به نام values-monitoring.yaml ایجاد کرده و پیکربندی‌های زیر را به آن اضافه کنید:

YAML

ingress:

  enabled: true

  ingressClassName: "nginx"

  tls: true

  grafana:

    enabled: true

    host: "domain.xyz"

    path: "/grafana"
  • domain.xyz را با نام دامنه واقعی خود به‌روزرسانی کنید.
  • ingressClassName را بر اساس کنترلر Ingress که استفاده می‌کنید تنظیم نمایید.

۴. Rocket.Chat و مانیتورینگ را نصب کنید:

ابتدا، استک مانیتورینگ را با Helm نصب کنید

helm install monitoring -f values-monitoring.yaml rocketchat/monitoring

در مرحله بعد، Rocket.Chat را با استفاده از پیکربندی‌هایی که در values.yaml تعریف کرده‌اید، نصب کنید:

helm install rocketchat -f values.yaml rocketchat/rocketchat

تایید کنید که Podهای استقرار شما در وضعیت فعال هستند:

kubectl get pods

۵. به ورک‌اسپیس راکت چت خود دسترسی پیدا کنید:

پس از چند دقیقه، workspace راکت چت در دامنه شما (مانند https://domain.xyz) قابل دسترسی خواهد بود. با دنبال کردن دستورالعمل‌های روی صفحه، راه‌اندازی اولیه خود را کامل کنید. در طول این فرآیند، workspace و ایمیل شما در پرتال ابری Rocket.Chat ثبت خواهد شد، جایی که می‌توانید اشتراک‌های خود را مدیریت کنید.

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

داشبورد Grafana نیز در مسیری که پیکربندی کرده‌اید (مانند https://domain.xyz/grafana) در دسترس خواهد بود. برای ورود، از مقادیر پیش‌فرض زیر استفاده کنید:

  • نام کاربری: admin
  • رمز عبور: admin

پس از اولین ورود، از شما خواسته می‌شود رمز عبور جدیدی را تنظیم کنید.

جمع بندی

راکت چت یک ابزار ارتباطی قدرتمند و متن‌باز است که راهکار نهایی برای سازمان‌هایی است که امنیت داده، حاکمیت کامل بر اطلاعات و انعطاف‌پذیری در سفارشی‌سازی برایشان اهمیت حیاتی دارد. اگرچه نصب راکت چت به روش میزبانی شخصی ممکن است به دانش فنی بیشتری نسبت به استفاده از پلتفرم‌های ابری نیاز داشته باشد، اما مزایای مهمی مانند عدم وابستگی به ارائه‌دهنده و کنترل کامل بر داده‌ها، این تلاش را کاملا توجیه می‌کند.

سوالات متداول

۱. راکت‌ چت (Rocket.Chat) چیست؟

Rocket.Chat یک پلتفرم ارتباطی و همکاری متن‌باز است که به عنوان یک جایگزین قدرتمند و انعطاف‌پذیر برای ابزارهای پیام‌رسانی تجاری مانند Slack یا Microsoft Teams شناخته می‌شود.

۲. خطای Node.js در هنگام نصب راکت چت برای چیست؟

دلایل رایج خطا عبارتند از:

  • نسخه Node.js نامعتبر: اگر نسخه Node.js نصب شده روی سیستم شما قدیمی‌تر یا جدیدتر از نسخه مورد نیاز Rocket.Chat باشد (مثلا Rocket.Chat به Node.js 14 نیاز دارد، اما شما Node.js 18 را نصب کرده‌اید)، نصب با خطا مواجه می‌شود.
  • نصب دستی یا Tarball: این خطا بیشتر زمانی رخ می‌دهد که شما از روش‌های نصب دستی استفاده کنید که نیازمند مدیریت جداگانه Node.js و وابستگی‌های آن است.
  • خطاهای NPM: مشکلات مربوط به مدیریت بسته‌ها (مانند خطاهای npm install یا نقص در دسترسی‌ها) می‌تواند منجر به خطای اجرا شود.

۳. آیا برای نصب Rocket.Chat به Nginx نیاز دارم؟

بله. برای محیط عملیاتی، استفاده از Nginx، Caddy یا Traefik ضروری است. اگر از روش Snap استفاده کنید، سرور Caddy به طور خودکار نصب شده و می‌تواند وظیفه SSL/TLS و پروکسی را بر عهده بگیرد.

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

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

یازده + 1 =