آموزش نصب و راه‌اندازی Mattermost روی Ubuntu 24.04 LTS

مقدمه

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

Mattermost امکاناتی مشابه Slack و Discord را در اختیار تیم‌ها قرار می‌دهد، اما با این تفاوت که می‌توانید آن را روی سرور اختصاصی خود نصب و مدیریت کنید. این پلتفرم امکانات متنوعی از جمله موارد زیر را ارائه می‌دهد:

  • گفتگوی گروهی و خصوصی
  • Thread برای مدیریت بهتر مکالمات
  • اشتراک‌گذاری فایل
  • جستجوی نامحدود در پیام‌ها
  • احراز هویت دومرحله‌ای (2FA)
  • اعلان‌های ایمیلی و موبایلی
  • Webhook و Bot برای خودکارسازی فرآیندها
  • اپلیکیشن وب، دسکتاپ و موبایل

در این آموزش، آخرین نسخه Mattermost Team Edition را روی Ubuntu 24.04 LTS نصب می‌کنیم، آن را پشت Nginx Reverse Proxy قرار می‌دهیم، با گواهی رایگان Let’s Encrypt ایمن می‌کنیم و در پایان نیز اعلان‌های ایمیلی و تنظیمات اولیه سیستم را انجام خواهیم داد.


پیش‌نیازها

قبل از شروع، موارد زیر را آماده کنید:

  • یک سرور Ubuntu 24.04 LTS
  • حداقل 2 گیگابایت RAM
  • حداقل 20 گیگابایت فضای دیسک (در صورت استفاده تیمی فضای بیشتری پیشنهاد می‌شود.)
  • یک کاربر دارای دسترسی sudo
  • نصب و راه‌اندازی MariaDB
  • نصب Nginx
  • نصب Postfix (برای ارسال ایمیل)
  • یک دامنه که به IP سرور اشاره کند؛ برای مثال:
mattermost.example.com

اگر از پارمین کلود (Parmin Cloud) استفاده می‌کنید، کافی است رکورد A دامنه را به IP سرور متصل کنید.


مرحله اول — نصب Mattermost

ابتدا آخرین لیست بسته‌ها را دریافت کنید.

sudo apt update
sudo apt upgrade -y

سپس ابزارهای موردنیاز را نصب کنید.

sudo apt install wget curl tar unzip nano -y

دانلود آخرین نسخه Mattermost

بهتر است همیشه آخرین نسخه Stable را از سایت رسمی دریافت کنید.

ابتدا یک پوشه برای دانلود ایجاد کنید.

mkdir ~/mattermost
cd ~/mattermost

سپس آخرین نسخه را دانلود کنید.

نمونه:

wget https://releases.mattermost.com/latest/mattermost-linux-amd64.tar.gz

فایل را استخراج کنید.

tar -xzf mattermost-linux-amd64.tar.gz

پوشه برنامه را به مسیر استاندارد سیستم منتقل کنید.

sudo mv mattermost /opt/

ایجاد مسیر ذخیره‌سازی فایل‌ها

تمام فایل‌هایی که کاربران ارسال می‌کنند داخل این پوشه ذخیره خواهند شد.

sudo mkdir -p /opt/mattermost/data

اگر کاربران زیادی خواهید داشت، بهتر است این مسیر روی دیسکی با فضای کافی قرار داشته باشد.


ایجاد کاربر اختصاصی Mattermost

برای افزایش امنیت، بهتر است سرویس با کاربر اختصاصی اجرا شود.

sudo useradd --system --user-group mattermost

مالکیت فایل‌ها را تغییر دهید.

sudo chown -R mattermost:mattermost /opt/mattermost

اجازه نوشتن برای گروه را نیز فعال کنید.

sudo chmod -R g+w /opt/mattermost

در این مرحله فایل‌های برنامه آماده هستند و در ادامه دیتابیس MariaDB را برای Mattermost پیکربندی خواهیم کرد.


مرحله دوم — پیکربندی MariaDB برای Mattermost

در این مرحله یک پایگاه داده اختصاصی برای Mattermost ایجاد می‌کنیم تا تمام اطلاعات کاربران، کانال‌ها، پیام‌ها و تنظیمات در آن ذخیره شوند.

ابتدا وارد محیط MariaDB شوید.

sudo mariadb

یک کاربر جدید برای Mattermost ایجاد کنید.

CREATE USER 'mmuser'@'localhost' IDENTIFIED BY 'StrongPassword';

نکته امنیتی: به جای StrongPassword یک رمز عبور قوی و منحصربه‌فرد انتخاب کنید.

سپس دیتابیس Mattermost را ایجاد کنید.

CREATE DATABASE mattermost CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

مجوزهای لازم را به کاربر اختصاص دهید.

GRANT ALL PRIVILEGES ON mattermost.* TO 'mmuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

اتصال Mattermost به MariaDB

اکنون فایل تنظیمات اصلی Mattermost را باز کنید.

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

عبارت زیر را پیدا کنید.

"DriverName": "",
"DataSource": ""

آن را به شکل زیر تغییر دهید.

"DriverName": "mysql",
"DataSource": "mmuser:StrongPassword@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s"

رمز عبور را با همان رمزی که برای کاربر دیتابیس انتخاب کرده‌اید جایگزین کنید.

پس از پایان، فایل را ذخیره کنید.


ایجاد سرویس systemd

برای اینکه Mattermost پس از هر بار ریبوت سرور به صورت خودکار اجرا شود، یک سرویس systemd ایجاد می‌کنیم.

sudo nano /etc/systemd/system/mattermost.service

محتوای زیر را داخل فایل قرار دهید.

[Unit]
Description=Mattermost Server
After=network.target mariadb.service
Requires=mariadb.service

[Service]
Type=notify
User=mattermost
Group=mattermost

WorkingDirectory=/opt/mattermost

ExecStart=/opt/mattermost/bin/mattermost

Restart=always
RestartSec=10

LimitNOFILE=49152

[Install]
WantedBy=multi-user.target

در Ubuntu 24.04 بهتر است فایل سرویس را داخل مسیر /etc/systemd/system قرار دهید؛ این روش نسبت به مسیر /lib/systemd/system که در نسخه‌های قدیمی‌تر استفاده می‌شد استانداردتر است.


بارگذاری سرویس

پس از ذخیره فایل، سرویس‌های systemd را مجدداً بارگذاری کنید.

sudo systemctl daemon-reload

سرویس را فعال کنید.

sudo systemctl enable mattermost

در حال حاضر هنوز آن را اجرا نکنید، زیرا ابتدا باید Nginx را پیکربندی کنیم.


مرحله سوم — پیکربندی Nginx و اتصال دامنه

در این مرحله، Nginx را به عنوان Reverse Proxy برای Mattermost تنظیم می‌کنیم تا درخواست‌های کاربران را دریافت کرده و به سرویس Mattermost ارسال کند.


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

ابتدا فایل تنظیمات Mattermost را باز کنید.

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

عبارت زیر را پیدا کنید:

"SiteURL": ""

و مقدار آن را به دامنه خود تغییر دهید.

"SiteURL": "http://mattermost.example.com"

به جای mattermost.example.com دامنه یا زیردامنه واقعی خود را وارد کنید.

فایل را ذخیره و خارج شوید.


ایجاد فایل تنظیمات Nginx

یک فایل جدید برای Mattermost ایجاد کنید.

sudo nano /etc/nginx/sites-available/mattermost

محتوای زیر را داخل آن قرار دهید.

upstream mattermost {
    server 127.0.0.1:8065;
    keepalive 32;
}

proxy_cache_path /var/cache/nginx/mattermost levels=1:2 keys_zone=mattermost_cache:20m max_size=2g inactive=120m use_temp_path=off;

server {

    listen 80;

    server_name mattermost.example.com;

    location ~ /api/v[0-9]+/(users/)?websocket$ {

        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        client_max_body_size 100M;

        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_read_timeout 36000;

        proxy_pass http://mattermost;
    }

    location / {

        client_max_body_size 100M;

        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_http_version 1.1;

        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;
    }
}

دامنه را با دامنه واقعی خود جایگزین کنید.


فعال کردن سایت

فایل تنظیمات را فعال کنید.

sudo ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/

اگر فایل پیش‌فرض Nginx فعال است، بهتر است آن را غیرفعال کنید.

sudo rm /etc/nginx/sites-enabled/default

بررسی صحت تنظیمات

قبل از راه‌اندازی مجدد Nginx، تنظیمات را بررسی کنید.

sudo nginx -t

در صورت صحیح بودن، خروجی مشابه زیر نمایش داده می‌شود.

syntax is ok
test is successful

راه‌اندازی مجدد Nginx

sudo systemctl restart nginx

سپس سرویس Mattermost را اجرا کنید.

sudo systemctl start mattermost

و وضعیت آن را بررسی نمایید.

sudo systemctl status mattermost

اگر همه چیز درست باشد، وضعیت سرویس باید active (running) باشد.


باز کردن پورت‌های فایروال

در Ubuntu 24.04 معمولاً از UFW استفاده می‌شود.

در صورت فعال بودن فایروال، دستورات زیر را اجرا کنید.

sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload

و وضعیت را بررسی کنید.

sudo ufw status

تست اولیه

اکنون مرورگر را باز کنید و آدرس زیر را وارد نمایید.

http://mattermost.example.com

اگر مراحل را به‌درستی انجام داده باشید، صفحه ایجاد حساب کاربری Mattermost نمایش داده خواهد شد.

البته هنوز ارتباط شما از طریق HTTP برقرار است. در بخش بعدی با استفاده از Let’s Encrypt، گواهی SSL رایگان دریافت کرده و ارتباط را به HTTPS تبدیل می‌کنیم. همچنین تنظیمات Nginx را به‌صورت خودکار برای SSL به‌روزرسانی خواهیم کرد.


مرحله چهارم — فعال‌سازی HTTPS با Let’s Encrypt

در این مرحله، ارتباط بین کاربران و سرور را با استفاده از گواهی SSL رایگان Let’s Encrypt رمزنگاری می‌کنیم تا تمام اطلاعات به‌صورت امن منتقل شوند.


نصب Certbot

در Ubuntu 24.04، Certbot مستقیماً از مخازن رسمی قابل نصب است.

ابتدا لیست بسته‌ها را به‌روزرسانی کنید.

sudo apt update

سپس Certbot و افزونه Nginx را نصب نمایید.

sudo apt install certbot python3-certbot-nginx -y

بررسی دسترسی دامنه

قبل از دریافت گواهی SSL مطمئن شوید که دامنه به IP سرور اشاره می‌کند.

می‌توانید با دستور زیر بررسی کنید.

ping mattermost.example.com

یا

dig mattermost.example.com

اگر IP نمایش داده شده همان IP سرور شما باشد، همه چیز آماده است.


دریافت گواهی SSL

اکنون دستور زیر را اجرا کنید.

sudo certbot --nginx -d mattermost.example.com

در اولین اجرا چند سؤال از شما پرسیده می‌شود.

ایمیل

ابتدا ایمیل مدیر سیستم را وارد کنید.

admin@example.com

قوانین Let’s Encrypt

گزینه Agree را انتخاب کنید.


ارسال اخبار پروژه

می‌توانید گزینه No را انتخاب کنید.


انتقال خودکار HTTP به HTTPS

در این مرحله Certbot سؤال زیر را نمایش می‌دهد.

Redirect HTTP to HTTPS?

گزینه

2

را انتخاب کنید تا تمام درخواست‌های HTTP به HTTPS منتقل شوند.


اگر همه چیز صحیح باشد، خروجی مشابه زیر را مشاهده خواهید کرد.

Congratulations!

Your certificate has been successfully installed.

بروزرسانی SiteURL

اکنون باید آدرس سایت را در تنظیمات Mattermost نیز به HTTPS تغییر دهیم.

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

عبارت زیر را پیدا کنید.

"SiteURL": "http://mattermost.example.com"

و آن را به شکل زیر تغییر دهید.

"SiteURL": "https://mattermost.example.com"

راه‌اندازی مجدد سرویس‌ها

ابتدا Mattermost را ریستارت کنید.

sudo systemctl restart mattermost

سپس Nginx را نیز ریستارت نمایید.

sudo systemctl restart nginx

بررسی تمدید خودکار SSL

در Ubuntu 24.04، هنگام نصب Certbot، تایمر systemd نیز ایجاد می‌شود.

برای اطمینان از فعال بودن آن دستور زیر را اجرا کنید.

systemctl list-timers | grep certbot

همچنین می‌توانید فرآیند تمدید را تست کنید.

sudo certbot renew --dry-run

اگر هیچ خطایی مشاهده نکردید، گواهی SSL در زمان مناسب به‌صورت خودکار تمدید خواهد شد.


تست نهایی

اکنون آدرس زیر را در مرورگر باز کنید.

https://mattermost.example.com

در صورت موفقیت:

  • آیکون قفل کنار آدرس سایت نمایش داده می‌شود.
  • ارتباط کاملاً رمزنگاری شده است.
  • Mattermost آماده ایجاد اولین حساب کاربری مدیر خواهد بود.

مرحله پنجم — راه‌اندازی اولیه Mattermost

اکنون که سرویس Mattermost اجرا شده و HTTPS نیز فعال است، نوبت به انجام تنظیمات اولیه می‌رسد.


ایجاد اولین حساب کاربری مدیر

مرورگر را باز کرده و وارد آدرس زیر شوید.

https://mattermost.example.com

در اولین ورود، صفحه ساخت حساب مدیر نمایش داده می‌شود.

اطلاعات موردنیاز را وارد کنید:

  • Username
  • Email
  • Password

نکته امنیتی: از یک رمز عبور قوی شامل حروف بزرگ، حروف کوچک، اعداد و کاراکترهای ویژه استفاده کنید.

پس از ثبت اطلاعات، اولین کاربر به‌صورت خودکار به عنوان System Administrator ایجاد خواهد شد.


ایجاد اولین Team

بعد از ورود، Mattermost از شما می‌خواهد اولین تیم را ایجاد کنید.

برای مثال:

Team Name

Parmin Cloud

سپس یک آدرس برای تیم مشخص کنید.

parmincloud

در نهایت روی Finish کلیک کنید.


آشنایی با محیط Mattermost

بعد از ساخت تیم وارد داشبورد اصلی خواهید شد.

در این صفحه می‌توانید:

  • کانال عمومی ایجاد کنید.
  • کانال خصوصی بسازید.
  • کاربران را دعوت کنید.
  • فایل ارسال کنید.
  • پیام خصوصی ارسال کنید.
  • تماس با Botها برقرار کنید.
  • Webhook تعریف کنید.

ورود به System Console

برای انجام تنظیمات مدیریتی:

از گوشه بالا سمت چپ روی تصویر پروفایل کلیک کنید.

سپس وارد مسیر زیر شوید.

System Console

تمام تنظیمات اصلی Mattermost از این قسمت قابل مدیریت هستند.


فعال کردن SMTP

برای ارسال اعلان‌های ایمیلی، باید SMTP را پیکربندی کنید.

از منوی سمت چپ وارد مسیر زیر شوید.

Environment
    ↓
SMTP

اگر از Postfix روی همان سرور استفاده می‌کنید، تنظیمات به شکل زیر خواهد بود.

گزینه مقدار
SMTP Server localhost
SMTP Port 25
Connection Security None
Authentication None

پس از ذخیره تنظیمات، روی دکمه Test Connection کلیک کنید.

اگر همه چیز درست باشد پیام زیر نمایش داده می‌شود.

Connection Successful

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

از منوی سمت چپ وارد بخش زیر شوید.

Site Configuration

↓

Notifications

گزینه زیر را فعال کنید.

Enable Email Notifications

سپس مقدارهای زیر را تنظیم نمایید.

گزینه مقدار پیشنهادی
Notification From Address mattermost@example.com
Notification Display Name Mattermost
Enable Email Batching Optional

سپس تنظیمات را ذخیره کنید.

از این پس کاربران هنگام دریافت پیام جدید، ایمیل اطلاع‌رسانی دریافت خواهند کرد.


شخصی‌سازی محیط Mattermost

از منوی زیر وارد شوید.

Site Configuration

↓

Customization

در این قسمت می‌توانید تنظیمات زیر را انجام دهید.

  • تغییر نام سایت
  • توضیح سایت
  • لوگوی سازمان
  • رنگ سازمانی
  • متن صفحه ورود
  • FavIcon

برای مثال:

Site Name

Parmin Cloud Collaboration

Site Description

Enterprise Collaboration Platform

تغییر زبان پیش‌فرض

در نسخه‌های جدید Mattermost می‌توانید زبان پیش‌فرض را نیز مشخص کنید.

از مسیر زیر وارد شوید.

Environment

↓

Localization

در این قسمت می‌توانید:

  • زبان پیش‌فرض
  • فرمت تاریخ
  • منطقه زمانی

را تنظیم نمایید.


ایجاد اولین کانال

از قسمت سمت چپ روی علامت + کلیک کنید.

سپس یک کانال جدید بسازید.

برای مثال:

general

یا

devops

یا

infrastructure

اکنون Mattermost آماده استفاده روزانه توسط تیم شما است.


نکات امنیتی پیشنهادی

برای استفاده در محیط Production پیشنهاد می‌شود اقدامات زیر را نیز انجام دهید:

  • فعال کردن احراز هویت دومرحله‌ای (2FA)
  • محدود کردن ثبت‌نام کاربران جدید
  • تهیه نسخه پشتیبان منظم از MariaDB
  • تهیه نسخه پشتیبان از مسیر /opt/mattermost/data
  • فعال کردن Fail2ban برای جلوگیری از حملات Brute Force
  • به‌روزرسانی منظم Mattermost و سیستم‌عامل

مرحله ششم — نگهداری، بروزرسانی و تهیه نسخه پشتیبان از Mattermost

تبریک! در این مرحله، Mattermost به‌صورت کامل روی سرور Ubuntu 24.04 LTS شما راه‌اندازی شده است. حالا بهتر است چند نکته مهم برای نگهداری و مدیریت این سرویس را نیز انجام دهید.


بروزرسانی Mattermost

از آنجایی که Mattermost به‌صورت یک فایل باینری نصب شده است، بروزرسانی آن شامل دانلود نسخه جدید و جایگزین کردن فایل‌های اجرایی است.

ابتدا سرویس را متوقف کنید.

sudo systemctl stop mattermost

از اطلاعات فعلی نسخه پشتیبان تهیه کنید.

sudo cp -a /opt/mattermost /opt/mattermost-backup

آخرین نسخه را دانلود کنید.

wget https://releases.mattermost.com/latest/mattermost-linux-amd64.tar.gz

فایل را استخراج کنید.

tar -xzf mattermost-linux-amd64.tar.gz

پوشه جدید را جایگزین کنید.

sudo rsync -av --delete mattermost/ /opt/mattermost/

مجوزها را مجدداً اعمال کنید.

sudo chown -R mattermost:mattermost /opt/mattermost
sudo chmod -R g+w /opt/mattermost

در پایان سرویس را اجرا کنید.

sudo systemctl start mattermost

تهیه نسخه پشتیبان

برای جلوگیری از از دست رفتن اطلاعات، بهتر است به‌صورت منظم از پایگاه داده و فایل‌های کاربران نسخه پشتیبان تهیه کنید.

بکاپ از پایگاه داده

mysqldump -u root -p mattermost > mattermost.sql

بکاپ از فایل‌های کاربران

sudo tar -czf mattermost-data.tar.gz /opt/mattermost/data

بکاپ از فایل تنظیمات

sudo cp /opt/mattermost/config/config.json config.json.backup

بررسی وضعیت سرویس

برای مشاهده وضعیت سرویس:

sudo systemctl status mattermost

برای مشاهده لاگ‌های سرویس:

journalctl -u mattermost -f

بررسی وضعیت Nginx

sudo systemctl status nginx

مشاهده لاگ‌ها:

sudo tail -f /var/log/nginx/error.log

بررسی وضعیت MariaDB

sudo systemctl status mariadb

مدیریت سرویس

اجرای مجدد سرویس:

sudo systemctl restart mattermost

توقف سرویس:

sudo systemctl stop mattermost

اجرای سرویس:

sudo systemctl start mattermost

نکات امنیتی

برای استفاده در محیط Production پیشنهاد می‌شود اقدامات زیر را انجام دهید:

  • فعال‌سازی احراز هویت دومرحله‌ای (2FA)
  • محدود کردن ثبت‌نام کاربران جدید
  • استفاده از رمزهای عبور قوی
  • بروزرسانی منظم Ubuntu و Mattermost
  • تهیه نسخه پشتیبان روزانه از MariaDB و پوشه data
  • فعال‌سازی Fail2ban برای جلوگیری از حملات Brute Force
  • محدود کردن دسترسی SSH و استفاده از کلید SSH به‌جای رمز عبور

جمع‌بندی

در این آموزش، نحوه نصب و راه‌اندازی Mattermost Team Edition روی Ubuntu 24.04 LTS را به‌صورت کامل بررسی کردیم. همچنین MariaDB، Nginx و گواهی SSL رایگان Let’s Encrypt را پیکربندی کردیم و در نهایت تنظیمات اولیه مانند ایجاد تیم، فعال‌سازی SMTP و شخصی‌سازی محیط را انجام دادیم.

با این زیرساخت، می‌توانید یک پیام‌رسان سازمانی امن، مقیاس‌پذیر و کاملاً تحت کنترل خود راه‌اندازی کنید و بدون وابستگی به سرویس‌های خارجی، ارتباطات داخلی تیم خود را مدیریت نمایید.

از همراهی شما با پارمین کلود سپاسگزاریم.

Click to rate this post!
[Total: 0 Average: 0]

نظرات کاربران

دیدگاهی بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *