ذكري المظهر

كيفية نشر المسألة على centos 7

If You Want To Know What It Takes To FIND and KEEP LOVE - WATCH THIS!

If You Want To Know What It Takes To FIND and KEEP LOVE - WATCH THIS!

جدول المحتويات:

Anonim

Mattermost هو نظام أساسي للمراسلة الفورية مفتوح المصدر ، وهو بديل بديل لـ Slack. إنه مكتوب في Golang و React ويمكنه استخدام MySQL أو PostgreSQL كقاعدة بيانات خلفية. يجلب Mattermost جميع اتصالات فريقك إلى مكان واحد ويوفر العديد من الميزات بما في ذلك مشاركة الملفات والرسائل الجماعية ومراسلة جماعية والرموز التعبيرية المخصصة ومكالمات الفيديو والمزيد. في هذا البرنامج التعليمي ، سوف نوضح لك كيفية نشر Mattermost على خادم CentOS 7 وتكوين Nginx كبديل عكسي لـ SSL.

المتطلبات الأساسية

تأكد من أنك استوفيت الشروط التالية قبل المتابعة مع هذا البرنامج التعليمي:

  • تم تسجيل دخولك كمستخدم لديه امتيازات sudo. لديك اسم مجال يشير إلى عنوان IP الخاص بالخادم. سوف نستخدم linuxize-test.com . لديك تثبيت Nginx ، إن لم يكن التحقق من هذا الدليل. لديك شهادة SSL مثبتة لنطاقك. يمكنك تثبيت شهادة Let's Encrypt SSL المجانية باتباع هذا الدليل.

إنشاء قاعدة بيانات الخلية

سوف نستخدم MariaDB 10.3 كقاعدة بيانات خلفية. Mattermost لن تعمل مع MariaDB الإصدار 5.5.

تسجيل الدخول إلى قذيفة الخلية:

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 لمعرفة ما إذا كان هناك إصدار أحدث متاح.

قم بتنزيل الأرشيف باستخدام الأمر 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.

التغيير في الدليل /opt/mattermost وابدأ الخادم:

cd /opt/mattermost sudo -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 ومتابعة الخطوات التالية.

إنشاء وحدة Systemd

من أجل تشغيل مثيل Mattermost كخدمة ، سنقوم بإنشاء ملف وحدة mattermost.service في الدليل /etc/systemd/system/ directory بالمحتوى التالي:

/etc/systemd/system/mattermost.service

Description=Mattermost After=network.target nss-lookup.target mariadb.service Type=notify WorkingDirectory=/opt/mattermost User=mattermost SyslogIdentifier=mattermost ExecStart=/opt/mattermost/bin/mattermost TimeoutStartSec=3600 LimitNOFILE=49152 WantedBy=multi-user.target

أخبر systemd بأننا أنشأنا ملف وحدة جديد وبدء تشغيل خدمة 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 └─25959 /opt/mattermost/bin/mattermost

أخيرًا ، قم بتمكين تشغيل خدمة Mattermost تلقائيًا في وقت التمهيد:

sudo systemctl enable mattermost

إعداد وكيل عكسي مع Nginx

/etc/nginx/conf.d/linuxize-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 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+/(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

افتح المتصفح الخاص بك ، اكتب نطاقك وقم بإنشاء حسابك الأول:

وأدخل معلمات SMTP الخاصة بك. يمكنك استخدام أي خدمات بريد إلكتروني للمعاملات الشائعة مثل SendinBlue و SendGrid و Amazon SES و Mandrill و Mailgun و Mailjet و Postmark أو يمكنك إعداد خادم البريد الخاص بك.

أخيرًا ، نحتاج إلى إعادة تشغيل خدمة Mattermost لتصبح التغييرات نافذة المفعول:

sudo systemctl restart mattermost

استنتاج

لقد نجحت في تثبيت Mattermost على خادم CentOS 7 وإعداد Nginx كوكيل عكسي. يمكنك الآن البدء في استخدام Mattermost للتعاون مع فريقك.

يهم nodejs centos