دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
دانشنامه مارال هاست دانشنامه مارال هاست
دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
  • banner shape
  • banner shape
  • plus icon
  • plus icon
دسته‌بندی نشده

آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی Ubuntu 24.04

Shayan Kianpoor
42 Views
Share

Copy link

Docy theme

مقدمه

اگر قصد دارید یک پیام‌رسان کاملاً خصوصی، متن‌باز و مستقل مشابه Slack یا Microsoft Teams راه‌اندازی کنید، Matrix یکی از بهترین گزینه‌هاست. در این آموزش، یک سرور کامل Matrix را با استفاده از Docker روی Ubuntu 24.04 نصب می‌کنیم.

در پایان این آموزش سرویس‌های زیر در اختیار شما خواهند بود:

سرویسآدرس
Matrix Homeserverdataton.ir
Element Web Clientweb.dataton.ir
TURN Serverturn.dataton.ir

این راهنما شامل نصب و پیکربندی موارد زیر است:

  • Docker و Docker Compose
  • Matrix Synapse
  • Element Web
  • Coturn (TURN Server)
  • Nginx Reverse Proxy
  • SSL Certificate
  • ساخت اولین کاربر مدیریتی
  • تست تماس صوتی و تصویری
آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی Ubuntu 24.04

پیش‌نیازها

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

  • Ubuntu Server 24.04
  • دسترسی Root یا Sudo
  • دامنه فعال
  • گواهی SSL معتبر
  • آدرس IP عمومی

معماری نهایی پروژه

Internet
      │
      ▼
   Nginx (SSL)
      │
 ┌────┴───────────────┐
 │                    │
 ▼                    ▼
Synapse           Element Web
      │
      ▼
   Coturn (TURN)

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

ابتدا رکوردهای DNS دامنه را ایجاد کنید.

TypeHostمقصد
A@IP Server
AwebIP Server
AturnIP Server

هر سه رکورد باید به IP اصلی سرور اشاره کنند.

پس از اعمال DNS بهتر است چند دقیقه تا چند ساعت منتظر انتشار رکوردها بمانید.

آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی Ubuntu 24.04

مرحله دوم: نصب Docker

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

sudo apt update
sudo apt upgrade -y

سپس Docker و Nginx را نصب نمایید.

sudo apt install -y docker.io docker-compose-v2 nginx

فعال‌سازی سرویس Docker

sudo systemctl enable docker
sudo systemctl start docker

بررسی نصب

docker --version
docker compose version

اگر نصب Docker با خطا مواجه شد

در برخی نسخه‌های Ubuntu ممکن است نسخه موجود در Repository قدیمی باشد. در این حالت Docker را از مخزن رسمی نصب کنید.

ابتدا نسخه‌های قبلی را حذف نمایید.

sudo apt remove docker docker-engine docker.io containerd runc

نصب پیش‌نیازها

sudo apt update

sudo apt install -y ca-certificates curl gnupg nginx

ایجاد Keyring

sudo install -m 0755 -d /etc/apt/keyrings

دانلود GPG Key

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

تنظیم Permission

sudo chmod a+r /etc/apt/keyrings/docker.gpg

افزودن Repository رسمی Docker

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

نصب Docker

sudo apt update

sudo apt install -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin

بررسی نسخه

docker --version

docker compose version

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

در صورت استفاده از UFW، پورت‌های زیر را باز کنید.

sudo ufw allow 80/tcp

sudo ufw allow 443/tcp

sudo ufw allow 3478/tcp

sudo ufw allow 5349/tcp

sudo ufw allow 49152:49200/udp

این پورت‌ها برای HTTPS و عملکرد صحیح TURN Server موردنیاز هستند.


مرحله چهارم: ساخت پوشه پروژه

mkdir -p ~/matrix-stack

cd ~/matrix-stack

مرحله پنجم: ایجاد فایل Docker Compose

فایل زیر را ایجاد کنید.

nano docker-compose.yml

محتوا:

services:

  synapse:
    image: matrixdotorg/synapse:latest
    container_name: synapse
    restart: unless-stopped

    volumes:
      - ./synapse/data:/data

    environment:
      - SYNAPSE_SERVER_NAME=dataton.ir
      - SYNAPSE_REPORT_STATS=no

    ports:
      - "127.0.0.1:8008:8008"

  element:
    image: vectorim/element-web:latest
    container_name: element
    restart: unless-stopped

    volumes:
      - ./element/config.json:/app/config.json:ro

    ports:
      - "127.0.0.1:8080:80"

  coturn:
    image: coturn/coturn
    container_name: coturn
    restart: unless-stopped

    network_mode: host

    volumes:
      - ./coturn/turnserver.conf:/etc/coturn/turnserver.conf

ذخیره فایل:

CTRL + O

ENTER

CTRL + X

مرحله ششم: تولید اولیه تنظیمات Synapse

ابتدا مسیر داده را ایجاد کنید.

mkdir -p synapse/data

سپس فایل‌های اولیه را تولید کنید.

docker run -it --rm \
-v ~/matrix-stack/synapse/data:/data \
-e SYNAPSE_SERVER_NAME=dataton.ir \
-e SYNAPSE_REPORT_STATS=no \
matrixdotorg/synapse:latest generate

با پایان این مرحله فایل اصلی homeserver.yaml ایجاد خواهد شد.


مرحله هفتم: پیکربندی TURN در Synapse

فایل زیر را باز کنید.

nano ~/matrix-stack/synapse/data/homeserver.yaml

در انتهای فایل، قبل از بخش:

# vim:ft=yaml

کد زیر را اضافه کنید.

turn_uris:
  - "turn:turn.dataton.ir:3478?transport=udp"
  - "turn:turn.dataton.ir:3478?transport=tcp"

turn_shared_secret: "DatatonTurnSecretStrong"

turn_user_lifetime: 1h

turn_allow_guests: true

enable_registration: false

مرحله هشتم: پیکربندی Coturn

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

mkdir -p ~/matrix-stack/coturn

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

nano ~/matrix-stack/coturn/turnserver.conf

محتوا:

use-auth-secret
static-auth-secret=DatatonTurnSecretStrong

realm=turn.dataton.ir

fingerprint

listening-port=3478

min-port=49152
max-port=49200

total-quota=100

bps-capacity=0

stale-nonce

no-loopback-peers
no-multicast-peers

نکته مهم: مقدار turn_shared_secret در فایل Synapse و مقدار static-auth-secret در فایل Coturn باید دقیقاً یکسان باشند.


مرحله نهم: تنظیم Element Web

پوشه مربوط به Element را ایجاد کنید.

mkdir -p ~/matrix-stack/element

فایل تنظیمات را ایجاد نمایید.

nano ~/matrix-stack/element/config.json

محتوا:

{
  "default_server_config": {
    "m.homeserver": {
      "base_url": "https://dataton.ir",
      "server_name": "dataton.ir"
    }
  },

  "disable_custom_urls": true,
  "disable_guests": false,
  "brand": "Dataton Chat"
}

مرحله دهم: نصب گواهی SSL

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

sudo mkdir -p /etc/ssl/dataton

تنظیم سطح دسترسی

sudo chmod 700 /etc/ssl/dataton

فایل Certificate

sudo nano /etc/ssl/dataton/fullchain.pem

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

فایل Private Key

sudo nano /etc/ssl/dataton/privkey.pem

کلید خصوصی SSL را در این فایل قرار دهید.

در پایان سطح دسترسی را محدود کنید.

sudo chmod 600 /etc/ssl/dataton/*

مرحله یازدهم: پیکربندی Nginx برای Matrix Synapse

فایل Virtual Host را ایجاد کنید.

sudo nano /etc/nginx/sites-available/dataton.ir

محتوا:

server {

    listen 443 ssl http2;
    server_name dataton.ir;

    ssl_certificate /etc/ssl/dataton/fullchain.pem;
    ssl_certificate_key /etc/ssl/dataton/privkey.pem;

    client_max_body_size 100M;

    location / {

        proxy_pass http://127.0.0.1:8008;

        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_http_version 1.1;
    }
}

مرحله دوازدهم: پیکربندی Nginx برای Element

sudo nano /etc/nginx/sites-available/web.dataton.ir

محتوا:

server {

    listen 443 ssl http2;
    server_name web.dataton.ir;

    ssl_certificate /etc/ssl/dataton/fullchain.pem;
    ssl_certificate_key /etc/ssl/dataton/privkey.pem;

    location / {

        proxy_pass http://127.0.0.1:8080;

        proxy_set_header Host $host;

    }
}

مرحله سیزدهم: فعال‌سازی Virtual Hostها

sudo ln -s /etc/nginx/sites-available/dataton.ir \
/etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/web.dataton.ir \
/etc/nginx/sites-enabled/

مرحله چهاردهم: بررسی تنظیمات Nginx

sudo nginx -t

در صورت مشاهده پیام موفقیت:

sudo systemctl reload nginx

مرحله پانزدهم: اجرای سرویس‌ها

cd ~/matrix-stack

docker compose up -d

مرحله شانزدهم: بررسی وضعیت کانتینرها

docker ps

باید سه کانتینر زیر در وضعیت Running باشند.

  • synapse
  • element
  • coturn

مرحله هفدهم: ساخت اولین کاربر مدیریتی

docker exec -it synapse register_new_matrix_user \
-c /data/homeserver.yaml \
http://localhost:8008

نمونه اطلاعات:

Username : admin

Password : StrongPassword

Make Admin : yes

مرحله هجدهم: ورود به پنل Element

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

https://web.dataton.ir

ورود با یکی از فرمت‌های زیر انجام می‌شود.

@admin:dataton.ir

یا

admin

در قسمت Server نیز مقدار زیر را وارد کنید.

dataton.ir

مرحله نوزدهم: تست تماس صوتی و تصویری

برای بررسی عملکرد TURN Server، حداقل دو حساب کاربری ایجاد کنید.

سپس با استفاده از:

  • دو مرورگر متفاوت
  • یا مرورگر و تلفن همراه
  • یا دو دستگاه مجزا

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

در صورتی که تماس در شبکه‌های مختلف (اینترنت همراه، وای‌فای و…) بدون مشکل برقرار شود، راه‌اندازی TURN Server نیز با موفقیت انجام شده است.


جمع‌بندی

در این آموزش یک زیرساخت کامل Matrix بر پایه Docker راه‌اندازی شد که شامل موارد زیر است:

  • نصب Docker و Docker Compose
  • راه‌اندازی Matrix Synapse
  • نصب Element Web
  • پیکربندی Coturn برای تماس‌های صوتی و تصویری
  • راه‌اندازی Nginx Reverse Proxy
  • استفاده از SSL برای ارتباط امن
  • ساخت اولین حساب مدیریتی
  • تست کامل پیام‌رسان و تماس تصویری

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

کیان پور

پست‌های مرتبط

آموزش نصب و راه‌اندازی RustDesk Server با Docker
2 minutes دسته‌بندی نشده

آموزش نصب و راه‌اندازی Ru...

مقدمهRustDesk یکی از محبوب‌تری...

1 minute دسته‌بندی نشده

CXS چیست و چگونه کار می‌کن...

CXS یک ابزار امنیتی پیشرفته است ...

5 minutes دسته‌بندی نشده

ساخت سرور چت المنت بروی ل...

در این آموزش، نحوه راه‌اندازی...

2 minutes دسته‌بندی نشده

Geo Routing و Geo DNS

1. مقدمهبا رشد سرویس‌های این...

نظرات خود را بنویسید... لغو پاسخ

ما در مارال هاست، تلاش می‌کنیم میزبانی وب را به تجربه‌ای دلپذیر و بی‌دردسر برای شما تبدیل کنیم.

خرید هاست

  • هاست لینوکس
  • هاست ویندوز
  • هاست وردپرس
  • هاست ووکامرس
  • هاست دانلود
  • هاست نمایندگی
  • سرویس ایمیل OpenSRS

خرید سرور

  • سرور مجازی ایران
  • سرور مجازی اروپا
  • سرور مجازی فرانسه
  • سرور مجازی آلمان
  • سرور مجازی فنلاند
  • ثبت دامنه
  • گواهینامه SSL

دسترسی سریع

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

تمام حقوق این وب سایت متعلق به میزبانی وب مارال هاست می باشد © 2025

آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی Ubuntu 24.04

Or copy link

Clipboard Icon