Mattermost یک سیستم عامل پیام رسانی فوری با منبع باز و یک جایگزین Slack بوده که به صورت هاست است. در Golang و React نوشته شده و می تواند از MySQL یا PostgreSQL به عنوان پس زمینه دیتابیس استفاده کند. Mattermost تمام ارتباطات تیم شما را به یک مکان می رساند و ویژگی های مختلفی از جمله اشتراک فایل ، پیام های یک به یک و پیام های گروهی ، ایموجی های سفارشی ، تماس های ویدیویی و موارد دیگر را ارائه می دهد. در این مقاله ، ما چگونگی قرار دادن Mattermost را روی سرور CentOS 7 و پیکربندی Nginx به عنوان یک پروکسی معکوس SSL به شما نشان خواهیم داد. با ما در شتابان هاست همراه باشيد.
قبل از ادامه این مقاله اطمینان حاصل کنید که پیش نیازهای زیر را رعایت کرده اید:
ما از MariaDB 10.3 به عنوان ديتابيس بازگشت استفاده خواهیم کرد. Mattermost با MariaDB نسخه ۵٫۵ کار نخواهد کرد.
ورود به پوسته MySQL:
mysql -u root -p
دستورات زیر را برای ایجاد یک بانک اطلاعاتی جدید و کاربر برای نصب Mattermost اجرا کنید:
create database mattermost;
GRANT ALL ON mattermost.* TO mattermost@localhost IDENTIFIED BY 'P4ssvv0rD';
برای ایجاد یک کاربر و گروه جدید به نام مهمترین ، که نصب Mattermost را انجام می دهد ، دستور زیر را اجرا کنید:
sudo useradd -U -M -d /opt/mattermost mattermost
قبل از ادامه ، باید صفحه بارگیری Mattermost را بررسی کنید تا نسخه جدیدتری در دسترس باشد.
با استفاده از دستور 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
مالکیت فهرست را به مهمترین کاربر تغییر دهید:
sudo chown -R mattermost: /opt/mattermost
پرونده config.json را با ویرایشگر متن مورد علاقه خود باز کنید:
sudo nano /opt/mattermost/config/config.json
درایور ديتابيس را روی mysql تنظیم کنید ، نام بانک اطلاعاتی و رمزعبور کاربر ديتابيس را که قبلاً در این آموزش ایجاد کردیم وارد کنید:
... "SqlSettings": { "DriverName": "mysql", "DataSource": "mattermost:P4ssvv0rD@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s", "DataSourceReplicas": [], ...
به منظور آزمایش نصب خود ، اطمینان حاصل کنیم که قبل از ایجاد واحد systemd و تنظیم یک پروکسی معکوس با Nginx ، همه چیز کار می کند ، سرور Mattermost را شروع خواهیم کرد.
به پوشه / opt / مهمترین تغییر دهید و سرور را شروع کنید:
cd /opt/mattermost
sudo -u mattermost bin/mattermost
خروجی باید نشان دهد که سرور Mattermost پورت ۸۰۶۵ را مي پذيرد:
{"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 متوقف کنید و مراحل بعدی را ادامه دهید.
برای اجرای مثال مهمترین ما به عنوان یک سرویس ، یک فایل واحد مهمترین سرویس را در فهرست / etc / systemd / system / Directory با محتوای زیر ایجاد خواهیم کرد:
[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
به سیستم اطلاع دهید که ما یک فایل واحد جدید ایجاد کردیم و با اجرای سرویس Mattermost را شروع کردیم
sudo systemctl daemon-reload
sudo 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 └─۲۵۹۵۹ /opt/mattermost/bin/mattermost
سرانجام ، سرویس Mattermost را فعال کنید تا به طور خودکار در زمان boot شروع شود:
sudo systemctl enable mattermost
اگر نحوه نصب Nginx در CentOS 7 و نحوه اطمینان از Nginx را با راهنماهای Let’s Encrypt در CentOS 7 دنبال کردید ، باید Nginx را با گواهی SSL نصب کرده و پیکربندی کنید. اکنون فقط برای نصب Mattermost باید فقط یک سرور جدید ایجاد کنیم.
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 linuxize-test.com www.linuxize-test.com;
include snippets/letsencrypt.conf; return 301 https://linuxize-test.com$request_uri; }
server { listen 443 ssl http2; server_name www.linuxize-test.com;
ssl_certificate /etc/letsencrypt/live/linuxize-test.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/linuxize-test.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/linuxize-test.com/chain.pem; include snippets/ssl.conf;
return 301 https://linuxize-test.com$request_uri; }
server { listen 443 ssl http2; server_name linuxize-test.com;
ssl_certificate /etc/letsencrypt/live/linuxize-test.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/linuxize-test.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/linuxize-test.com/chain.pem; include snippets/ssl.conf;
access_log /var/log/nginx/linuxize-test.com-access.log; error_log /var/log/nginx/linuxize-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
مرورگر خود را باز کنید ، دامنه خود را تایپ کنید و اولین حساب خود را ایجاد کنید:
اولین کاربر ایجاد شده در سیستم دارای امتیازات سرگروه است.
روی Create a new team کلیک کنید ، تیم اول خود را ایجاد کنید و URL تیم را تنظیم کنید:
بعد از ایجاد اولین حساب سرگروه و تیم اول ، شما به داشبورد Mattermost هدایت می شوید و به عنوان سرپرست وارد سیستم می شوید. سیستم کنسول را باز کنید ، با کلیک روی نام کاربری خود در بالای پانل ناوبری و در منوی جدیدی که باز می شود ، روی پیوند System Console کلیک کنید:
URL سایت را با رفتن به تنظیمات عمومی تنظیم کنید→ Configuration
با رفتن به اعلان ها ، اعلان های ایمیل را فعال کنید.→ Email
و پارامترهای SMTP خود را وارد کنید. می توانید از هرگونه سرویس ایمیل محبوب معامله ای مانند SendinBlue ، SendGrid ، Amazon SES ، Mandrill ، Mailgun ، Mailjet و Postmark استفاده کنید یا می توانید سرور پست الکترونیکی خود را تنظیم کنید.
سرانجام ، برای اعمال تغییرات باید مجدداً سرویس Mattermost را مجدداً شروع کنیم:
sudo systemctl restart mattermost
شما Mattermost را با موفقیت روی سرور CentOS 7 خود نصب کرده و Nginx را به عنوان یک پروکسی معکوس تنظیم کرده اید. ما را در شتابان هاست دنبال كنيد.