EvilFox.CC
  • Главная
  • Моды
  • VPN
  • Конфиденциальность
  • Контакты
    Top mods for PC games » Matrix » Пример docker-compose для развертывания сервера Matrix Synapse

Пример docker-compose для развертывания сервера Matrix Synapse

Мод / гайд · Matrix / гайды · скачать и установить на EvilFox.CC

Автор: admin
Просмотры: 52
Комментарии: 0
Опубликовано: 28.11.2025
Пример docker-compose для развертывания сервера Matrix Synapse

Подготовка

Требования:

  • Чистый сервер Ubuntu (22.04 / 24.04).

  • Домен (в примере: example.com).

  • DNS записи (A-записи):

    • matrix.example.com -> IP сервера (Сервер Synapse)

    • chat.example.com -> IP сервера (Клиент Element)

    • turn.example.com -> IP сервера (для красоты, можно использовать IP)

Шаг 1: Установка свежего Docker

Не используйте старые версии из репозитория Ubuntu.

# Удаляем старое
sudo apt-get remove docker docker-engine docker.io containerd runc

# Ставим ключи и репозиторий
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

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-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# Запускаем
sudo systemctl enable --now docker

Шаг 2: Структура и Секреты

  1. Создаем папку:

    mkdir -p matrix-stack/{caddy,synapse-data,postgres-data}
    cd matrix-stack
    1. Генерируем секреты (пароли). Выполните команду openssl rand -hex 32 три раза и сохраните результаты куда-нибудь в блокнот. Назовем их:

      • POSTGRES_PASS (пароль базы)

      • TURN_SECRET (для звонков)

      • REG_SECRET (для регистрации пользователей)


    Шаг 3: Файл docker-compose.yml

    Создайте файл nano docker-compose.yml.
    Замените значения:

    • YOUR_REAL_IP — внешний IP вашего сервера.

    • turn.example.com — ваш домен (или тот же IP).

    • Пароли и секреты на сгенерированные выше.

    services:
      # --- Reverse Proxy (Caddy) ---
      caddy:
        image: caddy:latest
        restart: unless-stopped
        ports:
          - "80:80"
          - "443:443"
        volumes:
          - ./Caddyfile:/etc/caddy/Caddyfile
          - caddy_dаta:/data
          - caddy_config:/config
        networks:
          - matrix-net
    
      # --- Database (Postgres) ---
      postgres:
        image: postgres:15
        restart: unless-stopped
        environment:
          POSTGRES_DB: synapse
          POSTGRES_USER: synapse
          POSTGRES_PASSWORD: "YOUR_POSTGRES_PASSWORD" # <--- ПАРОЛЬ 1
          POSTGRES_INITDB_ARGS: "--encoding=UTF-8 --lc-collate=C --lc-ctype=C"
        volumes:
          - ./postgres-dаta:/var/lib/postgresql/data
        networks:
          - matrix-net
    
      # --- Matrix Server (Synapse) ---
      synapse:
        image: matrixdotorg/synapse:latest
        restart: unless-stopped
        environment:
          - SYNAPSE_CONFIG_PATH=/data/homeserver.yaml
        volumes:
          - ./synapse-dаta:/data
        networks:
          - matrix-net
        depends_on:
          - postgres
    
      # --- TURN Server (Coturn) - Звонки ---
      coturn:
        image: coturn/coturn:latest
        restart: unless-stopped
        network_mode: "host" # Критично для звонков
        command:
          - -n
          - --log-file=stdout
          - --min-port=49152
          - --max-port=49200
          - --realm=turn.example.com  # <--- ВАШ ДОМЕН
          - --listening-port=3478
          - --tls-listening-port=5349
          - --external-ip=YOUR_REAL_IP # <--- ОБЯЗАТЕЛЬНО ВНЕШНИЙ IP СЕРВЕРА
          - --use-auth-secret
          - --static-auth-secret=YOUR_TURN_SECRET # <--- СЕКРЕТ 2
          - --no-cli
    
      # --- Web Client (Element) ---
      element:
        image: vectorim/element-web:latest
        restart: unless-stopped
        volumes:
          - ./element-config.json:/app/config.json
        networks:
          - matrix-net
    
    volumes:
      caddy_dаta:
      caddy_config:
    
    networks:
      matrix-net:

    Шаг 4: Конфигурация Element (element-config.json)

    Создайте файл nano element-config.json.
    Это исправит ошибку MISSING_MATRIX_RTC_FOCUS, отключив экспериментальные функции.

    Замените домены на свои:

    {
        "default_server_config": {
            "m.homeserver": {
                "base_url": "https://matrix.example.com",
                "server_name": "matrix.example.com"
            },
            "m.identity_server": {
                "base_url": "https://vector.im"
            }
        },
        "brand": "Element",
        "show_labs_settings": true,
        "features": {
            "feature_element_call_video_rooms": false,
            "feature_group_calls": false,
            "feature_video_rooms": false,
            "feature_new_group_call_experience": false,
            "feature_call_only_mode": false
        },
        "element_call": {
            "url": null
        },
        "jitsi": {
            "preferredDomain": "jitsi.riot.im"
        }
    }

    Шаг 5: Настройка Caddy (Caddyfile)

    Создайте файл nano Caddyfile.

    # --- 1. Synapse (Сервер) ---
    matrix.example.com {
        encode zstd gzip
    
        # Если открыли корень сервера -> редирект в чат
        redir / https://chat.example.com 302
    
        # Проксирование API
        reverse_proxy /_matrix/* synapse:8008
        reverse_proxy /_synapse/* synapse:8008
    
        # Автонастройка клиентов (.well-known)
        handle /.well-known/matrix/client {
            header Content-Type application/json
            header Access-Control-Allow-Origin *
            respond `{"m.homeserver": {"base_url": "https://matrix.example.com"}}`
        }
    
        handle /.well-known/matrix/server {
            header Content-Type application/json
            respond `{"m.server": "matrix.example.com:443"}`
        }
    }
    
    # --- 2. Федерация (Общение с другими серверами) ---
    matrix.example.com:8448 {
        reverse_proxy synapse:8008
    }
    
    # --- 3. Element (Клиент) ---
    chat.example.com {
        encode zstd gzip
        reverse_proxy element:80
    }

    Шаг 6: Генерация и настройка Synapse

    1. Генерация конфига:

    docker compose run --rm -e SYNAPSE_SERVER_NAME=matrix.example.com -e SYNAPSE_REPORT_STATS=no synapse generate
    1. (Замените matrix.example.com на ваш домен Synapse)

    2. Редактирование synapse-data/homeserver.yaml:
      Откройте созданный файл и измените следующие блоки:

      А. URL:
      Добавьте в начало файла:

    public_baseurl: "https://matrix.example.com"

    Б. База данных:

    database:
      name: psycopg2
      args:
        user: synapse
        password: "YOUR_POSTGRES_PASSWORD" # <--- ПАРОЛЬ 1
        database: synapse
        host: postgres
        cp_min: 5
        cp_max: 10

    В. Звонки (TURN):
    Найдите turn_uris и сделайте так:

    turn_uris:
      - "turn:YOUR_REAL_IP:3478?transport=udp"
      - "turn:YOUR_REAL_IP:3478?transport=tcp"
      - "turns:YOUR_REAL_IP:5349?transport=udp"
      - "turns:YOUR_REAL_IP:5349?transport=tcp"
    
    turn_shared_secret: "YOUR_TURN_SECRET" # <--- СЕКРЕТ 2 (тот же, что в docker-compose)
    turn_user_lifetime: 86400000
    turn_allow_guests: True

    Г. Регистрация и права:
    В конце файла:

    enable_registration: false  # Закрываем свободную регистрацию
    registration_shared_secret: "YOUR_REG_SECRET" # <--- СЕКРЕТ 3

    Шаг 7: Запуск

    Запускаем всё и сразу:

    docker compose up -d

    Шаг 8: Создание пользователя и выдача Админа

    Так как мы убрали веб-админку, делаем всё через консоль (это нужно сделать один раз).

    1. Создаем пользователя:

    docker compose exec synapse register_new_matrix_user -c /data/homeserver.yaml http://localhost:8008
      • User: admin

      • Password: ваш_супер_пароль

      • Make admin: yes

    1. Если забыли сделать админом при создании:
      Можно выдать права через базу данных:

    docker compose exec postgres psql -U synapse -c "UPDATE users SET admin = 1 WHERE name = '@admin:matrix.example.com';"

    Шаг 9: Использование

    1. Зайдите на https://chat.example.com.

    2. Войдите под созданным пользователем.

    3. Проверка звонков:

      • Зайдите в Настройки -> Голосовая и видеосвязь.

      • Если видите "Ближайший VoIP-релей: coturn" (или ваш IP) — всё работает через сервер.

    Готово! У вас настроен стабильный сервер Matrix без лишних зависимостей.

Галерея

{gallery}

Прикреплённые файлы

Скачать

Выберите зеркало — файл откроется на внешнем хостинге

Внешние ссылки
  • admin
  • 52
  • 0
  • 28.11.2025

Комментариев пока нет.

Добавить комментарий
Для того, что бы оставить свой комментарий, пройдите Регистрацию.
Для быстрого входа воспользуйтесь соц. сетями.
Вход

или через соцсети

  • Google
Регистрация Забыли пароль?
Категории
  • remnawave
  • Hearts of Iron 4 EN
    • Gameplay
    • Graphics
    • Alternative History
  • Vless
    • Mikrotik
    • Keenetic
    • OpenWRT
  • Black Desert
    • BDO Releases
  • Lineage 2
    • Авторские дополнения
    • Дополнения
    • Java сервер
    • Web
    • Руководства
    • Ревизии | RUSaCis - эмулятор Interlude
  • amnezia
    • Решение проблем VPN Amnezia
    • VPN Documentation
  • Mods for Ravenfield
    • Weapons for Ravenfield
  • Моды для Oblivion Ru
    • Оружие
  • Minecraft Mods EN
    • Adventure
  • Flutter - Build apps for any screen
    • Flutter documentation
  • Oblivion Remastered EN
    • Animations
  • The Witcher 3 EN
    • Alchemy and Crafting
  • Моды для Oblivion Remastered RU
    • Дома для игрока
    • Интерфейс
    • Геймплей и изменения
    • Исправления и патчи
    • Ретекстуры и реплейсеры
    • Программы для Oblivion Remastered
    • Одежда, аксессуары
  • Моды для Ведьмак 3 RU
    • Оружие
    • Броня
    • Геймплей
    • Визуальные изменения
    • Модели и текстуры
    • Лица и причёски
    • Исправления и патчи
    • Программы и утилиты
    • Чит коды
    • Сохранения (сейвы)
  • Nodejs
  • Ubuntu2
    • WGDashboard
    • Блокировка правил
    • marzban
    • vpn panel Remnawave Panel
    • vpn
    • Автоматизация
    • Видеозвонки
  • Tera
    • Tera Releases
  • bdo evilfox
    • Гайды
    • Админ команды PTS Corsar
    • Corsair API
  • WireGuard
  • Лучший VPN WireGuard
  • Minecraft
    • Моды
    • Оружие
  • Matrix
    • гайды
Оцените работу движка
Статистика
Сайт использует cookie для удобства. Продолжая просмотр, вы соглашаетесь с их использованием. Подробнее — в политике конфиденциальности.

EvilFox.CC

Моды Skyrim, Oblivion, Fallout · VPN VLESS, VMess, AWG 2.0 от 10₽/день

Моды VPN и тарифы Контакты Конфиденциальность
© EvilFox 2022–2026. Все права защищены.