وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

روش استقرار Mattermost در CentOS 7

0 6
زمان لازم برای مطالعه: 4 دقیقه



Mattermost یک پلتفرم پیام‌رسان فوری منبع باز، یک جایگزین Slack با میزبانی خود است. این در Golang و React نوشته شده است و می تواند از MySQL یا PostgreSQL به عنوان یک پایگاه داده استفاده کند. Mattermost تمام ارتباطات تیم شما را در یک مکان قرار می دهد و ویژگی های مختلفی از جمله به اشتراک گذاری فایل، پیام های فردی و گروهی، ایموجی های سفارشی، تماس های ویدیویی و موارد دیگر را ارائه می دهد. در این آموزش به شما نشان خواهیم داد که چگونه Mattermost را بر روی a استقرار دهید CentOS 7 سرور و Nginx را به عنوان یک پروکسی معکوس SSL پیکربندی کنید.

پیش نیازها

قبل از ادامه این آموزش مطمئن شوید که پیش نیازهای زیر را برآورده کرده اید:

  • شما به عنوان یک کاربر با امتیازات sudo وارد شده اید.
  • شما یک نام دامنه دارید که به آدرس IP سرور شما اشاره دارد. ما استفاده خواهیم کرد rasanegar-test.com.
  • شما Nginx را نصب کرده اید، اگر نه، این راهنما را بررسی کنید.
  • شما یک گواهی SSL برای دامنه خود نصب کرده اید. با دنبال کردن این راهنما می‌توانید یک گواهینامه رایگان Let’s Encrypt SSL را نصب کنید.

ایجاد پایگاه داده MySQL

ما از MariaDB 10.3 به عنوان پشتیبان پایگاه داده استفاده خواهیم کرد. Mattermost با MariaDB نسخه 5.5 کار نخواهد کرد.

اگر MariaDB 10.3 را روی سرور خود نصب نکرده اید، می توانید این راهنما را بررسی کنید.

ورود به پوسته MySQL:

mysql -u root -p

و دستورات زیر را برای ایجاد یک پایگاه داده و کاربر جدید برای نصب Mattermost خود اجرا کنید:

create database mattermost;GRANT ALL ON mattermost.* TO mattermost@localhost IDENTIFIED BY 'P4ssvv0rD';

ایجاد کاربر جدید سیستم

برای ایجاد یک کاربر و گروه جدید به نام mattermost، که نصب Mattermost را اجرا می کند، دستور زیر را اجرا کنید:

sudo useradd -U -M -d /opt/mattermost mattermost

سرور Mattermost را نصب کنید

در زمان نگارش این مقاله، آخرین نسخه پایدار Mattermost نسخه 5.4.0 است. قبل از ادامه مرحله بعدی باید آن را بررسی کنید Mattermost دانلود کنید page

برای دیدن اینکه آیا نسخه جدیدتری موجود است یا خیر.

آرشیو را با دستور curl زیر دانلود کنید:

sudo curl -L https://releases.mattermost.com/5.4.0/mattermost-5.4.0-linux-amd64.tar.gz -o /tmp/mattermost.tar.gz

پس از اتمام دانلود، آرشیو را استخراج کرده و به آن منتقل کنید opt فهرست راهنما:

sudo tar zxf /tmp/mattermost.tar.gz -C /opt

دایرکتوری ذخیره سازی فایل ها را ایجاد کنید:

sudo mkdir /opt/mattermost/data

تغییر مالکیت دایرکتوری به mattermost کاربر:

sudo chown -R mattermost: /opt/mattermost

باز کن config.json فایل با ویرایشگر متن مورد علاقه شما:

sudo nano /opt/mattermost/config/config.json

درایور دیتابیس را روی mysql، نام پایگاه داده و رمز عبور کاربر پایگاه داده را که قبلاً در این آموزش ایجاد کردیم را وارد کنید:

/opt/mattermost/config/config.json
...
"SqlSettings": {
    "DriverName": "mysql",
    "DataSource": "mattermost:P4ssvv0rD@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s",
    "DataSourceReplicas": [],
...

به منظور تست نصب ما برای اطمینان از کارکرد همه چیز قبل از ایجاد واحد systemd و راه اندازی یک پروکسی معکوس با Nginx، سرور Mattermost را راه اندازی می کنیم.

پیشنهاد می‌کنیم بخوانید:  روش نصب Git بر روی CentOS 8

تغییر به /opt/mattermost دایرکتوری و راه اندازی سرور:

cd /opt/mattermostsudo -u mattermost bin/mattermost

خروجی باید نشان دهد که سرور Mattermost در حال گوش دادن به پورت است
8065 :

{"level":"info","ts":1540921243.6797202,"caller":"app/plugin.go:100","msg":"Starting up plugins"}
{"level":"info","ts":1540921244.3483207,"caller":"app/server.go:88","msg":"Starting Server..."}
{"level":"info","ts":1540921244.3488805,"caller":"app/server.go:148","msg":"Server is listening on [::]:8065"}
{"level":"info","ts":1540921244.3620636,"caller":"app/web_hub.go:75","msg":"Starting 2 websocket hubs"}
{"level":"info","ts":1540921244.451155,"caller":"jobs/workers.go:63","msg":"Starting workers"}
{"level":"info","ts":1540921244.456804,"caller":"jobs/schedulers.go:68","msg":"Starting schedulers."}

اکنون می توانید سرور Mattermost را با آن متوقف کنید CTRL+C و مراحل بعدی را ادامه دهید.

یک واحد سیستمی ایجاد کنید

برای اجرای نمونه Mattermost خود به عنوان یک سرویس، a ایجاد می کنیم mattermost.service فایل واحد در /etc/systemd/system/ دایرکتوری با محتوای زیر:

/etc/systemd/system/mattermost.service
[Unit]
Description=Mattermost
After=network.target nss-lookup.target mariadb.service

[Service]
Type=notify
WorkingDirectory=/opt/mattermost
User=mattermost
SyslogIdentifier=mattermost
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
LimitNOFILE=49152

[Install]
WantedBy=multi-user.target

به systemd اطلاع دهید که یک فایل واحد جدید ایجاد کرده ایم و سرویس Mattermost را با اجرای:

sudo systemctl daemon-reloadsudo systemctl start mattermost

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

sudo systemctl status mattermost
● mattermost.service - Mattermost
   Loaded: loaded (/etc/systemd/system/mattermost.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2018-10-30 17:44:46 UTC; 3s ago
 Main PID: 25959 (mattermost)
   CGroup: /system.slice/mattermost.service
           └─25959 /opt/mattermost/bin/mattermost

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

sudo systemctl enable mattermost

با Nginx یک پروکسی معکوس راه اندازی کنید

اگر روش نصب Nginx را دنبال کردید CentOS 7 و روش ایمن سازی Nginx با Let’s Encrypt on CentOS 7 راهنما که باید Nginx را با گواهی SSL نصب و پیکربندی کنید. اکنون فقط باید یک بلوک سرور جدید برای نصب Mattermost خود ایجاد کنیم.

/etc/nginx/conf.d/rasanegar-test.com.conf
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;

upstream mattermost_backend {
  server 127.0.0.1:8065;
}

server {
    listen 80;
    server_name rasanegar-test.com www.rasanegar-test.com;

    include snippets/letsencrypt.conf;
    return 301 https://rasanegar-test.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name www.rasanegar-test.com;

    ssl_certificate /etc/letsencrypt/live/rasanegar-test.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/rasanegar-test.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/rasanegar-test.com/chain.pem;
    include snippets/ssl.conf;

    return 301 https://rasanegar-test.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name rasanegar-test.com;

    ssl_certificate /etc/letsencrypt/live/rasanegar-test.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/rasanegar-test.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/rasanegar-test.com/chain.pem;
    include snippets/ssl.conf;

    access_log /var/log/nginx/rasanegar-test.com-access.log;
    error_log /var/log/nginx/rasanegar-test.com-error.log;

   location ~ /api/v[0-9]+/(users/)?websocket$ {
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
       client_max_body_size 50M;
       proxy_set_header Host $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Frame-Options SAMEORIGIN;
       proxy_buffers 256 16k;
       proxy_buffer_size 16k;
       proxy_read_timeout 600s;
       proxy_pass http://mattermost_backend;
   }

   location / {
       proxy_http_version 1.1;
       client_max_body_size 50M;
       proxy_set_header Connection "";
       proxy_set_header Host $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Frame-Options SAMEORIGIN;
       proxy_buffers 256 16k;
       proxy_buffer_size 16k;
       proxy_read_timeout 600s;
       proxy_cache mattermost_cache;
       proxy_cache_revalidate on;
       proxy_cache_min_uses 2;
       proxy_cache_use_stale timeout;
       proxy_cache_lock on;
       proxy_pass http://mattermost_backend;
   }
}

برای اعمال تغییرات، سرویس Nginx را دوباره بارگیری کنید:

sudo systemctl reload nginx

پیکربندی Mattermost

مرورگر خود را باز کنید، دامنه خود را تایپ کنید و اولین حساب خود را ایجاد کنید:

پیشنهاد می‌کنیم بخوانید:  روش نصب جاوا بر روی CentOS 7
اولین حساب Mattermost را ایجاد کنید

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

مهم ترین حساب

را کلیک کنید Create a new team پیوند دهید، اولین تیم خود را ایجاد کنید و URL تیم را تنظیم کنید:

تیم Mattermost را ایجاد کنید
آدرس تیم Mattermost را تنظیم کنید

پس از ایجاد اولین حساب سرپرست و اولین تیم، به داشبورد Mattermost هدایت می شوید و به عنوان سرپرست وارد سیستم می شوید. کنسول سیستم را باز کنید و روی نام کاربری خود در بالای پنل پیمایش کلیک کنید و در منوی جدیدی که باز می شود، روی System Console ارتباط دادن:

داشبورد Mattermost

URL سایت را با رفتن به تنظیمات عمومی → پیکربندی تنظیم کنید.

Mattermost تنظیمات

اعلان‌های ایمیل را با رفتن به اعلان‌ها → ایمیل فعال کنید

Mattermost Notifications

و پارامترهای SMTP خود را وارد کنید. می‌توانید از هر سرویس ایمیل تراکنشی محبوبی مانند SendinBlue، SendGrid، Amazon SES، Mandrill، Mailgun، Mailjet و Postmark استفاده کنید یا می‌توانید سرور ایمیل خود را راه‌اندازی کنید.

در نهایت، برای اعمال تغییرات باید سرویس Mattermost را مجددا راه اندازی کنیم:

sudo systemctl restart mattermost

نتیجه

شما با موفقیت Mattermost را بر روی خود نصب کردید CentOS 7 سرور و راه اندازی Nginx به عنوان یک پروکسی معکوس. اکنون می توانید از Mattermost برای همکاری با تیم خود استفاده کنید.

اگر در نصب با مشکلی مواجه شدید، نظر خود را بنویسید.

مهم ترین nodejs centos
برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-27 19:46:02

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید