ذكري المظهر

كيفية نشر المسألة على أوبونتو 18.04

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 هي عبارة عن نظام أساسي للمراسلة ، ونظام الرسائل الفورية ، وهو بديل سلاك مفتوح المصدر مفتوح المصدر. إنه مكتوب في Golang و React ويمكنه استخدام MySQL أو PostgreSQL كقاعدة بيانات خلفية. يجلب Mattermost جميع اتصالات فريقك إلى مكان واحد ويوفر العديد من الميزات بما في ذلك مشاركة الملفات ورسائل فردية وجماعية ورموز تعبيرية مخصصة ومكالمات فيديو والمزيد.

في هذا البرنامج التعليمي ، سنقوم بتثبيت Mattermost على خادم Ubuntu 18.04 وتكوين Nginx كبديل عكسي لـ SSL.

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

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

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

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

سوف نستخدم MySQL كقاعدة بيانات لـ Mattermost. إذا لم يكن لديك MySQL أو MariaDB مثبتًا على الخادم الخاص بك ، فيمكنك تثبيته باتباع هذه الإرشادات.

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

mysql -u root

قم بإنشاء قاعدة بيانات جديدة ومستخدم لتثبيت Mattermost الخاص بنا باستخدام:

CREATE DATABASE mattermost; GRANT ALL ON mattermost.* TO mattermost@localhost IDENTIFIED BY 'P4ssvv0rD'; تأكد من أنك تستخدم كلمة مرور أكثر أمانًا من P4ssvv0rD .

إنشاء مستخدم نظام جديد

أنشئ مستخدمًا جديدًا ومجموعة تقوم بتشغيل مثيلنا الأكثر أهمية. سنقوم بتسمية المستخدم mattermost :

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

تثبيت خادم Mattermost

في وقت كتابة هذا المقال ، أحدث إصدار ثابت من Mattermost هو الإصدار 5.1.0. قم بتنزيل الأرشيف باستخدام الأمر curl التالي:

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

بمجرد اكتمال التنزيل ، استخرج الأرشيف وانقله إلى الدليل /opt

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

قم بإنشاء دليل التخزين للملفات:

sudo mkdir -p /opt/mattermost/data

تغيير ملكية الدليل للمستخدم mattermost :

sudo chown -R mattermost: /opt/mattermost

افتح الملف /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",

للتأكد من عمل مثيل Mattermost كما هو متوقع ، سنختبر خادم Mattermost. التغيير في الدليل /opt/mattermost وبدء تشغيل الخادم بالأوامر التالية:

cd /opt/mattermost sudo -u mattermost bin/mattermost

إذا كان كل شيء يعمل بشكل جيد ، فسيبدأ الخادم وسيظهر الإخراج كما يلي:

{"level":"info", "ts":1532546921.941638, "caller":"app/server.go:115", "msg":"Starting Server…"} {"level":"info", "ts":1532546921.9421031, "caller":"app/server.go:154", "msg":"Server is listening on:8065"} {"level":"info", "ts":1532546921.9541554, "caller":"app/web_hub.go:75", "msg":"Starting 2 websocket hubs"}

يمكننا الآن إيقاف خادم Mattermost مع CTRL+C ومتابعة الخطوات التالية.

إنشاء وحدة Systemd

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

افتح محرر النصوص الخاص بك وقم بإنشاء الملف التالي:

/etc/systemd/system/mattermost.service

Description=Mattermost After=network.target After=mysql.service Requires=mysql.service Type=notify ExecStart=/opt/mattermost/bin/mattermost TimeoutStartSec=3600 Restart=always RestartSec=10 WorkingDirectory=/opt/mattermost User=mattermost Group=mattermost LimitNOFILE=49152 WantedBy=mysql.service

أخبر 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; ven Active: active (running) since Wed 2018-07-25 18:39:05 UTC; 41s ago Main PID: 3091 (mattermost) Tasks: 18 (limit: 507) CGroup: /system.slice/mattermost.service ├─3091 /opt/mattermost/bin/mattermost

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

sudo systemctl enable mattermost

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

نحتاج الآن إلى إعداد كتلة خادم جديدة لمثيل Mattermost. افتح محرر النصوص الخاص بك وقم بإنشاء الملف التالي:

/etc/nginx/conf.d/example.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 example.com www.example.com; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; access_log /var/log/nginx/example.com-access.log; error_log /var/log/nginx/example.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

افتح المتصفح الخاص بك ، واكتب نطاقك ، وسيتم توجيهك إلى صفحة sugnup.

أدخل بريدك الإلكتروني ، واختر اسم المستخدم وكلمة المرور وانقر على زر Create Account لإنشاء حسابك الأول.

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

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

sudo systemctl restart mattermost

استنتاج

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

nodejs rocketchat أوبونتو