آموزش گام به گام نصب سرویس Rocket.Chat در اوبونتو 18.04
آموزش گام به گام نصب سرویس Rocket.Chat در اوبونتو 18.04
در این راهنما قصد داریم نحوه نصب سرویس Nodejs، MongoDB، Rocket.Chat و پیکربندی Nginx را به عنوان یک پروکسی معکوس برای نصب به شما عزیزان آموزش دهیم.
و در نهایت نصب را با استفاده از Let’sEncrypt SSL ایمن خواهیم کرد.
نکته : این تنظیمات بر روی پلتفرم Google Cloud آزمایش شده است.
این کار را می توان روی سایر سرویس های میزبانی ابری یا هر سرور VPS یا اختصاصی دیگری که اوبونتو را اجرا می کنند نیز انجام داد.
مرحله 1: به روز رسانی سرور
اطمینان حاصل کنید که سرور شما به روز است.
sudo apt update
sudo apt upgrade
مرحله 2: پیش نیازها یا Dependencies را نصب کنید
دستور زیر را برای نصب بسته های وابستگی برای Mongo DB اجرا کنید.
sudo apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo “deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse” | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
مرحله 3: Node.js را نصب کنید
برای نصب Node.js نسخه 8 دستورات زیر را اجرا کنید.
- curl -sL https://deb.nodesource.com/setup_8.x | sudo bash sudo apt install -y nodejs
مرحله 4: Mongo DB و بسته های لازم را نصب کنید
اکنون می توانید MongoDB، Build Essential و Graphics Magic را نصب کنید
sudo apt-get install -y build-essential mongodb-org graphicsmagick
مرحله 5: Rocket Chat به node version و npm inherits نیاز دارد، بنابراین دستورات زیر را اجرا کنید.
sudo npm install -g inherits n && sudo n 8.11.4
مرحله 6: Rocket.Chat را با استفاده از دستورات دانلود و نصب کنید.
curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz tar -xzf /tmp/rocket.chat.tgz -C /tmp cd /tmp/bundle/programs/server npm install sudo mv /tmp/bundle /opt/Rocket.Chat
مرحله 7: سرویس Rocket.Chat را پیکربندی کنید.
یک کاربر جدید همراه با مجوزهای راه اندازی ایجاد کنید.
sudo useradd -M rocketchat sudo usermod -L rocketchat
مرحله 8: مجوزهای صحیح را تنظیم کنید و یک فایل سرویس ایجاد کنید.
sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat sudo nano /lib/systemd/system/rocketchat.service
حالا اطلاعات زیر را در فایل قرار دهید.
[Unit]
Description=The Rocket.Chat server
After=network.target remote-fs.target nss-lookup.target nginx.target mongod.target
[Service]
ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocketchat
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01 MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01 ROOT_URL=https://yourdomain.com/ PORT=3000
[Install]
WantedBy=multi-user.target
نکته : نام دامنه خود را جایگزین https://yourdomain.com/ کنید.
مرحله 9: MongoDB را پیکربندی و فعال کنید.
sudo sed -i "s/^# engine:/ engine: mmapv1/" /etc/mongod.conf
sudo sed -i "s/^#replication:/replication:\n replSetName: rs01/" /etc/mongod.conf
حالا در گام بعدی سرویس Rocket.Chat را enable و استارت کنید.
sudo systemctl enable rocketchat sudo systemctl start rocketchat
قسمت دوم
نصب Nginx
Nginx را با دستور زیر نصب کنید.
sudo apt install nginx
پیکربندی Nginx
اکنون زمان پیکربندی Nginx به عنوان یک پروکسی معکوس برای Rocket.Chat است.
پیکربندی پیش فرض Nginx را حذف کنید. و یک پیکربندی جدید برای Rocket Chat ایجاد کنید.
sudo rm -rf /etc/nginx/sites-available/default
sudo rm -rf /etc/nginx/sites-enabled/default
sudo nano /etc/nginx/sites-available/yourdomainname.conf
upstream backend { server 127.0.0.1:3000; } server { listen [::]:80; listen 80; server_name yourdomainname.com; client_max_body_size 200M; error_log /var/log/nginx/rocketchat.access.log; 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; } }
این تنظیمات پیکربندی جدید را جایگذاری کنید و Ctrl+X و سپس Y و Enter را فشار دهید تا فایل ذخیره شود.
قسمت سوم
گواهی رایگان Let’s Encrypt SSL را نصب کنید
HTTPS پروتکلی برای ارتباط امن بین سرور (مثلا) و کلاینت (مرورگر وب) است.
با توجه به معرفی Let’s Encrypt که گواهینامه های رایگان SSL را ارائه می کند،
HTTPS توسط همه پذیرفته می شود و همچنین اعتماد مخاطبان شما را فراهم می کند.
sudo add-apt-repository ppa:certbot/certbot sudo apt-get update sudo apt-get install python-certbot-nginx
اکنون Certbot by Let’s Encrypt را برای اوبونتو 18.04 نصب کرده ایم، این دستور را اجرا کنید تا گواهینامه های خود را دریافت کنید.
sudo certbot --nginx certonly
ایمیل خود را وارد کنید و با شرایط و ضوابط موافقت کنید، سپس لیست دامنه هایی را که برای تولید گواهی SSL نیاز دارید دریافت خواهید کرد.
برای انتخاب همه دامنه ها کافی است Enter را فشار دهید
Certbot client به طور خودکار گواهی جدید را برای دامنه شما ایجاد می کند. اکنون باید پیکربندی Nginx را به روز کنیم.
پیکربندی SSL
پس از نصب SSL، می توانید آن را در فایل Nginx خود پیکربندی کنید.
sudo nano /etc/nginx/sites-available/yourdomainname.com
upstream backend { server 127.0.0.1:3000; } server { listen [::]:80; listen 80; server_name yourdomainname.com www.yourdomainname.com; return 301 https://yourdomainname.com$request_uri; } server { listen [::]:443; listen 443; server_name yourdomainname.com; client_max_body_size 200M; error_log /var/log/nginx/rocketchat.access.log; ssl_certificate /etc/letsencrypt/live/yourdomainname.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/yourdomainname.com/privkey.pem; 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; } }
برای ذخیره تغییرات، CTRL+X و سپس Y را فشار دهید.
پیکربندی خود را بررسی کنید و Nginx را مجددا راه اندازی کنید تا تغییرات اعمال شوند.
sudo nginx -t sudo service nginx restart
تمدید گواهی SSL
گواهینامه های ارائه شده توسط Let’s Encrypt فقط برای 90 روز معتبر هستند، بنابراین باید اغلب آنها را تمدید کنید.
بنابراین یک cronjob برای بررسی گواهی که در 30 روز آینده منقضی می شود تنظیم می کنیم تا آن را به طور خودکار تمدید کند.
sudo crontab -e
این خط را در انتهای فایل اضافه کنید
0 0,12 * * * certbot renew >/dev/null 2>&1
این cronjob سعی می کند دو بار در روز گواهی را بررسی کند.
این تمام چیزی است که اکنون می توانید از نام دامنه خود در مرورگر وب خود بازدید کنید. می توانید صفحه راه اندازی Rocket.Chat خود را با HTTPS ببینید.
https://yourdomainname.com
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.