دو کرک _ خدمات مهندسی معکوس نرم افزار

آموزش نصب Mattermost روی اوبونتو (Ubuntu 22.04 / 24.04) — راهنمای کامل

اگر می‌خواهید یک پیام‌رسان تیمی امن و کاملاً تحت کنترل خودتان داشته باشید — بدون فیلتر، بدون هزینه ماهانه برای هر کاربر، و بدون نگرانی از ذخیره داده روی سرورهای خارجی — نصب Mattermost Self-Hosted روی اوبونتو بهترین انتخاب شماست.

در این راهنما، تمام مراحل نصب Mattermost نسخه 11.5.1 (آخرین نسخه پایدار، مارس ۲۰۲۶) را روی Ubuntu 22.04 LTS و Ubuntu 24.04 LTS به‌صورت گام‌به‌گام توضیح می‌دهیم — از نصب PostgreSQL تا تنظیم Nginx و SSL.

پیش‌نیاز مطالعه: آشنایی پایه با خط فرمان لینوکس. اگر سرور Ubuntu ندارید، می‌توانید از هاستینگ‌های ایرانی (مانند آروان‌کلاد، ابری‌آراز، یا دیجیتال‌اوشن) یک VPS تهیه کنید.


پیش‌نیازهای سخت‌افزاری و نرم‌افزاری

قبل از شروع نصب، مطمئن شوید سرور شما حداقل مشخصات زیر را دارد:

منبع حداقل (تا ۱۰۰۰ کاربر) توصیه‌شده (تا ۵۰۰۰ کاربر)
CPU ۱ vCPU ۲ vCPU
RAM ۲ GB ۴ GB
دیسک ۱۰ GB ۵۰ GB+
سیستم‌عامل Ubuntu 22.04 LTS یا Ubuntu 24.04 LTS (64-bit)
دیتابیس PostgreSQL 12 یا بالاتر
دسترسی دسترسی root یا sudo

همچنین به یک دامنه یا آدرس IP نیاز دارید. اگر سرور روی هاست ایرانی است و می‌خواهید از آدرس داخلی استفاده کنید، نیازی به دامنه بین‌المللی ندارید.


مرحله ۱: به‌روزرسانی سیستم

ابتدا با SSH به سرور متصل شوید و پکیج‌های سیستم را آپدیت کنید:

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget gnupg2 ca-certificates lsb-release

پس از اتمام آپدیت، در صورت نیاز سرور را ری‌استارت کنید:

sudo reboot

مرحله ۲: نصب PostgreSQL

Mattermost از PostgreSQL به عنوان دیتابیس اصلی استفاده می‌کند. نصب آن را با دستورات زیر انجام دهید:

sudo apt install -y postgresql postgresql-contrib

سرویس PostgreSQL را راه‌اندازی و فعال کنید:

sudo systemctl start postgresql
sudo systemctl enable postgresql

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

sudo systemctl status postgresql

باید خروجی active (running) را ببینید.

ایجاد دیتابیس و کاربر Mattermost

وارد محیط PostgreSQL شوید:

sudo -u postgres psql

دستورات زیر را در محیط psql اجرا کنید (رمز عبور را با یک رمز قوی جایگزین کنید):

CREATE USER mmuser WITH PASSWORD 'رمز-عبور-قوی';
CREATE DATABASE mattermost WITH OWNER mmuser ENCODING 'UTF8' LOCALE 'en_US.UTF-8' TEMPLATE template0;
GRANT ALL PRIVILEGES ON DATABASE mattermost TO mmuser;
\q

نکته امنیتی: به جای رمز-عبور-قوی یک رمز تصادفی و پیچیده مانند Mm@2025#xR9kP استفاده کنید. این رمز را در جایی امن ذخیره کنید.


مرحله ۳: دانلود و نصب Mattermost

روش توصیه‌شده برای Ubuntu نصب از طریق مخزن رسمی Mattermost (PPA) است که آپدیت‌های خودکار را پشتیبانی می‌کند.

روش الف: نصب از مخزن رسمی (توصیه‌شده)

مخزن Mattermost را به سیستم اضافه کنید:

curl -fsS -o- https://deb.packages.mattermost.com/setup-repo.sh | sudo bash

سپس Mattermost را نصب کنید:

sudo apt install mattermost -y

با این روش، برای به‌روزرسانی در آینده کافی است:

sudo apt update && sudo apt upgrade mattermost

روش ب: نصب از Tarball (برای کنترل بیشتر)

اگر ترجیح می‌دهید نسخه خاصی را دستی نصب کنید:

# دانلود آخرین نسخه
wget https://releases.mattermost.com/11.5.1/mattermost-11.5.1-linux-amd64.tar.gz

# استخراج فایل
sudo tar -xvzf mattermost-11.5.1-linux-amd64.tar.gz -C /opt/

# ایجاد پوشه ذخیره‌سازی فایل‌ها
sudo mkdir -p /opt/mattermost/data

# ایجاد کاربر و گروه سیستمی
sudo useradd --system --user-group mattermost

# تنظیم مالکیت فایل‌ها
sudo chown -R mattermost:mattermost /opt/mattermost
sudo chmod -R g+w /opt/mattermost

مرحله ۴: پیکربندی Mattermost

فایل تنظیمات Mattermost را ویرایش کنید:

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

بخش SqlSettings را پیدا کرده و مقادیر زیر را تنظیم کنید:

"SqlSettings": {
    "DriverName": "postgres",
    "DataSource": "postgres://mmuser:رمز-عبور-قوی@localhost:5432/mattermost?sslmode=disable&connect_timeout=10",
    ...
}

همچنین بخش ServiceSettings را پیدا کنید و آدرس سایت را تنظیم کنید:

"ServiceSettings": {
    "SiteURL": "https://chat.yourdomain.com",
    "ListenAddress": ":8065",
    ...
}

فایل را ذخیره کرده و از آن خارج شوید (Ctrl+X، سپس Y و Enter).

حتما بخوانید:  مدیریت امنیت اطلاعات با ManageEngine

مرحله ۵: ایجاد سرویس systemd

یک فایل سرویس برای مدیریت Mattermost ایجاد کنید:

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

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

[Unit]
Description=Mattermost
After=network.target
After=postgresql.service
BindsTo=postgresql.service

[Service]
Type=notify
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
KillMode=mixed
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
User=mattermost
Group=mattermost
LimitNOFILE=49152

[Install]
WantedBy=multi-user.target

سرویس را فعال و راه‌اندازی کنید:

sudo systemctl daemon-reload
sudo systemctl enable mattermost
sudo systemctl start mattermost

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

sudo systemctl status mattermost

اگر همه چیز درست باشد، می‌توانید موقتاً Mattermost را روی پورت ۸۰۶۵ در مرورگر باز کنید:

http://آدرس-IP-سرور:8065

مرحله ۶: نصب و پیکربندی Nginx (Reverse Proxy)

برای دسترسی از طریق پورت ۸۰ و ۴۴۳ و اضافه کردن SSL، باید Nginx را به عنوان reverse proxy تنظیم کنیم.

نصب Nginx:

sudo apt install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx

ایجاد فایل کانفیگ Nginx برای Mattermost:

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

محتوای زیر را در فایل قرار دهید (دامنه خود را جایگزین کنید):

upstream backend {
   server localhost:8065;
   keepalive 32;
}

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

server {
   listen 80;
   server_name chat.yourdomain.com;
   return 301 https://$host$request_uri;
}

server {
   listen 443 ssl http2;
   server_name chat.yourdomain.com;

   ssl_certificate /etc/letsencrypt/live/chat.yourdomain.com/fullchain.pem;
   ssl_certificate_key /etc/letsencrypt/live/chat.yourdomain.com/privkey.pem;
   ssl_session_timeout 1d;
   ssl_protocols TLSv1.2 TLSv1.3;
   ssl_prefer_server_ciphers on;

   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;
       client_body_timeout 60s;
       send_timeout 300s;
       lingering_timeout 5s;
       proxy_connect_timeout 90;
       proxy_send_timeout 300;
       proxy_read_timeout 90s;
       proxy_pass http://backend;
   }

   location / {
       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_http_version 1.1;
       proxy_pass http://backend;
   }
}

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

sudo ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

مرحله ۷: نصب گواهی SSL با Let’s Encrypt

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

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d chat.yourdomain.com

مراحل را دنبال کنید و ایمیل خود را وارد کنید. Certbot به‌صورت خودکار گواهی را نصب و فایل Nginx را به‌روزرسانی می‌کند.

برای تجدید خودکار گواهی:

sudo crontab -e

خط زیر را اضافه کنید:

0 12 * * * /usr/bin/certbot renew --quiet

نکته برای کاربران ایرانی: اگر سرور شما دامنه داخلی دارد یا از IP استفاده می‌کنید، می‌توانید یک گواهی Self-Signed ایجاد کنید. برای تیم‌های داخلی این کافی است.

ایجاد گواهی Self-Signed (برای شبکه داخلی):

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \
  -keyout /etc/ssl/private/mattermost.key \
  -out /etc/ssl/certs/mattermost.crt \
  -subj "/CN=chat.local"

مرحله ۸: تنظیمات فایروال

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

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 22/tcp
sudo ufw enable
sudo ufw status

پورت ۸۰۶۵ نیازی به باز بودن در فایروال ندارد چون Nginx به عنوان واسط عمل می‌کند.

حتما بخوانید:  نرم افزار طراحی بسته‌بندی KASEMAKE 12.2 - راهنمای جامع و کاربردها

مرحله ۹: راه‌اندازی اولیه Mattermost

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

https://chat.yourdomain.com

صفحه راه‌اندازی اولیه Mattermost نمایش داده می‌شود. مراحل را دنبال کنید:

  • گام ۱: ایجاد حساب ادمین — نام کاربری، ایمیل و رمز عبور ادمین را وارد کنید
  • گام ۲: نام تیم و URL تیم را انتخاب کنید (مثلاً mycompany)
  • گام ۳: دعوت از اعضای تیم — می‌توانید این مرحله را رد کنید
  • گام ۴: ورود به داشبورد Mattermost

مرحله ۱۰: تنظیمات مهم در System Console

بعد از ورود به عنوان ادمین، به System Console بروید و تنظیمات زیر را انجام دهید:

تنظیم ایمیل (SMTP):

برای ارسال ایمیل تأیید حساب و اعلان‌ها، به مسیر Environment > SMTP بروید و اطلاعات سرور SMTP خود را وارد کنید. برای ایران می‌توانید از سرویس‌های ایمیل مانند Mail.ir یا Gmail استفاده کنید.

محدود کردن ثبت‌نام:

اگر نمی‌خواهید هر کسی بتواند ثبت‌نام کند، به Authentication > Email بروید و گزینه “Enable Open Server” را غیرفعال کنید.

تنظیم حداکثر حجم فایل:

به Environment > File Storage بروید و Maximum File Size را بر اساس نیاز خود تنظیم کنید (پیش‌فرض ۵۰ مگابایت).

فعال کردن Push Notification:

برای دریافت اعلان موبایل، به Environment > Push Notification Server بروید و آدرس https://push.mattermost.com را وارد کنید.


نصب لایسنس Mattermost Enterprise

نسخه رایگان Mattermost (Team Edition) برای اکثر تیم‌های کوچک و متوسط کافی است. اما اگر به قابلیت‌های زیر نیاز دارید، به لایسنس Professional یا Enterprise نیاز خواهید داشت:

  • احراز هویت LDAP / Active Directory
  • SSO با SAML
  • گزارش‌گیری پیشرفته و Compliance Export
  • مدیریت گروه‌ها با LDAP
  • پشتیبانی سازمانی ۲۴/۷

برای نصب لایسنس:

  • به System Console > Edition and License بروید
  • روی Upload License File کلیک کنید
  • فایل لایسنس (.mattermost-license) را آپلود کنید

برای خرید لایسنس Mattermost در ایران، می‌توانید از طریق docrack.me اقدام کنید.


دستورات مفید برای مدیریت Mattermost

پس از نصب، این دستورات برای مدیریت روزمره سرور مفید هستند:

# بررسی وضعیت سرویس
sudo systemctl status mattermost

# ری‌استارت سرویس
sudo systemctl restart mattermost

# مشاهده لاگ‌ها
sudo journalctl -u mattermost -f

# بک‌آپ از دیتابیس
sudo -u postgres pg_dump mattermost > backup_$(date +%Y%m%d).sql

# به‌روزرسانی Mattermost (نصب از PPA)
sudo systemctl stop mattermost
sudo apt update && sudo apt upgrade mattermost
sudo systemctl start mattermost

عیب‌یابی مشکلات رایج

مشکل: سرویس Mattermost راه‌اندازی نمی‌شود

لاگ‌ها را بررسی کنید:

sudo journalctl -u mattermost --since "5 minutes ago"

معمولاً مشکل در اطلاعات اتصال دیتابیس در config.json است. رمز عبور PostgreSQL را بررسی کنید.

مشکل: خطای ۵۰۲ Bad Gateway در Nginx

اطمینان حاصل کنید که سرویس Mattermost روی پورت ۸۰۶۵ در حال اجراست:

curl http://localhost:8065
sudo ss -tlnp | grep 8065

مشکل: آپلود فایل کار نمی‌کند

مطمئن شوید که پوشه /opt/mattermost/data مالکیت درست دارد:

sudo chown -R mattermost:mattermost /opt/mattermost/data
sudo chmod -R 700 /opt/mattermost/data

مشکل: Push Notification دریافت نمی‌شود

اگر سرور شما در ایران است و دسترسی به push.mattermost.com ندارید، می‌توانید Mattermost Push Proxy را روی سرور خود نصب کنید.

حتما بخوانید:  بررسی ManageEngine Malware Protection Plus : راهکاری برای حفاظت پیشرفته

بهترین روش‌های امنیتی پس از نصب

  • احراز هویت دو مرحله‌ای (MFA) را برای تمام کاربران اجباری کنید
  • دسترسی SSH را فقط با کلید عمومی (Public Key) فعال نگه دارید
  • بک‌آپ دیتابیس را به‌صورت روزانه خودکار کنید
  • پورت PostgreSQL (5432) را در فایروال مسدود کنید (فقط localhost)
  • نسخه Mattermost را همیشه به‌روز نگه دارید
  • لاگ‌های /opt/mattermost/logs را دوره‌ای بررسی کنید
  • از Fail2ban برای جلوگیری از حملات Brute Force استفاده کنید

سوالات متداول (FAQ)

آیا Mattermost روی اوبونتو ۲۰.۰۴ هم نصب می‌شود؟

بله، Mattermost از Ubuntu 20.04 LTS پشتیبانی می‌کند، اما توصیه می‌شود از Ubuntu 22.04 یا 24.04 استفاده کنید چون پشتیبانی بلندمدت‌تری دارند و بسیاری از وابستگی‌ها در آن‌ها به‌روزتر هستند.

آیا می‌توانم Mattermost را با Docker نصب کنم؟

بله. Docker ساده‌ترین روش برای تست و ارزیابی است:

docker run --name mattermost-preview -d \
  --publish 8065:8065 \
  mattermost/mattermost-preview

اما برای محیط Production، روش نصب از PPA یا Tarball توصیه می‌شود چون Docker overhead بیشتری دارد.

چند کاربر می‌توانم با یک سرور ۲ گیگابایت RAM داشته باشم؟

یک سرور با ۱ vCPU و ۲ GB RAM تا ۱۰۰۰ کاربر فعال را پشتیبانی می‌کند. برای ۵۰۰۰ کاربر به ۴ GB RAM و ۲ vCPU نیاز دارید.

آیا Mattermost از فارسی (RTL) پشتیبانی می‌کند؟

Mattermost از بسیاری از زبان‌ها پشتیبانی می‌کند، اما پشتیبانی کامل از RTL (راست به چپ) در همه بخش‌ها وجود ندارد. برای تیم‌های ایرانی، معمولاً ارسال پیام به فارسی بدون مشکل کار می‌کند.

آیا می‌توانم از MySQL به جای PostgreSQL استفاده کنم؟

در نسخه‌های قدیمی Mattermost، MySQL هم پشتیبانی می‌شد. اما از نسخه ۱۰ به بعد، Mattermost به‌طور کامل از MySQL جدا شده و فقط PostgreSQL پشتیبانی می‌شود.

چطور از Mattermost بک‌آپ بگیرم؟

دو چیز را باید بک‌آپ بگیرید: دیتابیس PostgreSQL و پوشه فایل‌ها:

# بک‌آپ دیتابیس
sudo -u postgres pg_dump mattermost | gzip > mm_db_$(date +%Y%m%d).sql.gz

# بک‌آپ فایل‌ها
sudo tar -czf mm_data_$(date +%Y%m%d).tar.gz /opt/mattermost/data/

چطور Mattermost را آپدیت کنم؟

اگر از روش PPA نصب کرده‌اید:

sudo systemctl stop mattermost
sudo apt update && sudo apt upgrade mattermost
sudo systemctl start mattermost

همیشه قبل از آپدیت، یک بک‌آپ کامل تهیه کنید.

چطور کاربران را دعوت کنم؟

در System Console به Site Configuration > Users and Teams بروید. می‌توانید لینک دعوت ایجاد کنید، ایمیل دعوت ارسال کنید، یا با اتصال به LDAP/Active Directory کاربران را به‌صورت خودکار وارد کنید.

 


برای خرید این نرم افزار با قیمت مناسب می توانید با پشتیبانی سایت تماس بگیرید و یا در تلگرام پیام دهید

(To buy this software at a reasonable price, send us a message on Telegram)

⇐ تلگرام: t.me/DoCrackMe

⇐ تلفن تماس: 09368059613