✉️Установка корпоративного мессенджера Сonduwuit

Сonduwuit - ПО с открытым исходным кодом, которое является легковесным fork-ом Matrix.

Для развертывания собственного сервера Сonduwuit обязательно наличие собственного доменного имени.

1. Создание сервера для Сonduwuit

Для начала создадим сервер на OS Ubuntu 22.04 для развертывания на нем Сonduwuit. В нашем случае используется сервер тарифа VIEs-1 в Вене.

2. Подготовка сервера к установке Сonduwuit

2.1. После активации вашего сервера подключаемся к нему по SSH для установки Сonduwuit. Подробнее как подключиться к серверу по SSH рассказано в этой статье.

2.2. После подключения по SSH выполним обновление пакетов и установку curl , а также установим Docker:

apt-get update && apt-get install curl sudo
curl -fsSL https://get.docker.com | sudo bash

2.3. После этого в удобной для вас директории сервера создаем директорию conduwuit и переходим в нее:

mkdir /conduwuit
cd /conduwuit

В данной директории нам необходимо создать два файла docker-compose.yml и .env

Для начала создадим файл docker-compose.yml:

nano docker-compose.yml

В файл необходимо скопировать следующее содержимое:

---
version: '3.8'

services:
  matrix:
    image: docker.io/girlbossceo/conduwuit:main
    restart: unless-stopped
    ports:
      - 127.0.0.1:8008:8008
    environment:
      CONDUWUIT_SERVER_NAME: "${SERVER_NAME}"
      CONDUWUIT_DATABASE_BACKEND: "rocksdb"
      CONDUWUIT_DATABASE_PATH: "/var/lib/conduwuit/"
      CONDUWUIT_PORT: "8008"
      CONDUWUIT_ADDRESS: "0.0.0.0"
      CONDUWUIT_ALLOW_REGISTRATION: "${ALLOW_REGISTRATION:-false}"
      CONDUWUIT_REGISTRATION_TOKEN: "${REGISTRATION_TOKEN:-}"
    volumes:
      - db:/var/lib/conduwuit/

volumes:
  db:

После чего сохраняем файл и выходим из него.

2.4. Для создания второго файла нам сначала нужно сгенерировать REGISTRATION_TOKEN, выполним это командой:

cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1

После выполнения команды в консоли будет выведена сгенерированная строка, которую далее мы укажем в файле .env:

2.5. Далее создадим файл .env:

nano docker-compose.yml

В файл необходимо скопировать следующее содержимое:

SERVER_NAME=example.com
ALLOW_REGISTRATION=true
REGISTRATION_TOKEN=<random>

В файле необходимо заменить значение поля SERVER_NAME на ваше доменное имя, которое вы будете использовать для сервера Сonduwuit. А в поле REGISTRATION_TOKEN указать ту строку, которую мы сгенерировали выше в пункте 2.4, в нашем случае: REGISTRATION_TOKEN=ugcHxsLLrKUl27GNBnQvC1gZkuQ4kBNe

После чего сохраняем файл .envи закрываем его.

3. Выпуск SSL-сертификата для вашего домена и настройка прокси-сервера

Для работы сервера Сonduwuit необходимо выпустить SSL-сертификат для вашего используемого домена. Мы выпустим собственный сертификат с помощью certbot.

3.1. Для начала необходимо установить certbot на сервер:

apt-get install certbot -y

После установки выпустим сертификат для вашего домена командой:

certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email email@customer -d matrix.your-domain.example

Обязательно замените в команде "email@customer" на ваш email-адрес, а также "your-domain.example" на имя вашего домена, для которого вы выпускаете сертификат.

После успешного выполнения команды вы можете просмотреть файлы выпущенного сертификата командой , где "your-domain.example" - имя вашего домена:

ls -la /etc/letsencrypt/live/matrix.your-domain.example/

3.2. Теперь необходимо настроить прокси сервер, мы будем использовать для этого Nginx. Для начала установим его на сервер:

apt-get install nginx -y

Затем создадим файлы конфигурации. Выполним команду:

nano /etc/nginx/sites-available/conduwuit

Скопируем в файл пример конфигурации для проксирования:

server {
    listen 80;
    server_name matrix.your-domain.example;
    return 301 https://$host$request_uri;
}

server {
    server_name matrix.your-domain.example;

    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    access_log  /var/log/nginx/conduwuit.access.log;
    error_log   /var/log/nginx/conduwuit.error.log;

    ssl_certificate /etc/letsencrypt/live/matrix.your-domain.example/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/matrix.your-domain.example/privkey.pem;

    location /_matrix {
        proxy_pass http://localhost:8008;
        proxy_set_header X-Forwarded-For $remote_addr;
        # Nginx by default only allows file uploads up to 1M in size
        # Increase client_max_body_size to match max_upload_size defined in homeserver.yaml
        client_max_body_size 10M;
    }
}

Обязательно замените в конфиге "your-domain.example" на имя вашего домена, для которого вы выпускали сертификат.

После этого создаем символическую ссылку:

ln -s /etc/nginx/sites-available/conduwuit /etc/nginx/sites-enabled/

И проверяем конфигурацию Nginx:

nginx -t

Если проверка не прошла успешно корректно ли вы создали файлы конфигурации по образцу с указанием вашего домена. После успешной проверки конфигов перезапускаем Nginx и включаем автозапуск для него:

systemctl restart nginx
systemctl enable nginx

4. Запуск Conduwuit

После выполнения конфигурирования сервера, выпуска SSL-сертификата и развертывания прокси-сервера мы можем запустить наш docker-контейнер с Conduwuit. Для этого достаточно перейти в папку conduwuit , в которой вы создавали два файла в пункте 2.3 (в нашем случае это директория /root/conduwuit/ , перейти в нее возможно командой: cd /root/conduwuit/) и выполнить команду:

docker compose up -d

Проверяем появился ли контейнер и его статус:

docker compose up -d

5. Подключение к серверу

Для подключения к серверу вы можете использовать веб-клиент, например: https://riot.im/app/#/login После перехода по ссылке необходимо изменить адрес сервера, к которому производится подключение:

После чего вписываем адрес вашего домена, который вы использовали для развертывания собственного сервера Conduwuit и подтверждаем кнопкой "Continue":

После чего необходимо создать аккаунт на нашем сервере:

После чего вводим данные для создания учетной записи:

Первая созданная учетная запись на сервере является Администратором.

Затем необходимо будет ввести регистрационный токен, который указан в конфиге (пункт 2.5):

После чего вы увидите окно приветствия с подсказками:

Вы можете пропустить их кнопкой "Skip" и после чего вы попадаете в основное меню с диалогами и управлением:

Поздравляем, вы успешно развернули собственный сервер с корпоративным мессенджером Conduwuit. Другие учетные записи вы можете создать аналогично первой учетной записи. Ссылка на github разработчика: https://github.com/girlbossceo/conduwuit Здесь вы сможете просмотреть больше документации по настройке и управлению Conduwuit.

Last updated