Bedrud Документация

Это руководство описывает, как развернуть Bedrud на продакшен-сервере.

Варианты развёртывания

МетодЛучше всего подходит для
Менеджер пакетов (apt/AUR)Управляемая установка на поддерживаемых дистрибутивах Linux
Автоматизированный CLIБыстрая удалённая настройка
Ручная установкаПолный контроль над конфигурацией
DockerКонтейнерные среды
Режим ApplianceКомпонование «всё-в-одном» в одном бинарнике

Менеджер пакетов

Установите Bedrud на Debian/Ubuntu или Arch Linux с помощью встроенного менеджера пакетов. Это рекомендуемый метод для постоянных серверных развёртываний, где нужны автоматические обновления через apt upgrade или AUR.

См. Руководство по установке пакетов для полных инструкций, включая добавление GPG-ключа и репозитория apt.

# Ubuntu / Debian
sudo apt install bedrud
 
# Arch Linux (AUR)
yay -S bedrud-bin

После установки запустите интерактивный установщик для настройки TLS, сервисов systemd и базы данных:

sudo bedrud install

Автоматизированное развёртывание через CLI

Самый быстрый способ развёртывания. Запускается с вашей локальной машины:

Предварительные требования: Python 3.10+, uv и SSH-доступ к целевому серверу.

cd tools/cli
uv run python bedrud.py --auto-config \
  --ip <server-ip> \
  --user root \
  --auth-key ~/.ssh/id_rsa \
  --domain meet.example.com \
  --acme-email admin@example.com

Это выполнит:

  1. Сборку бинарника backend локально
  2. Сжатие и загрузку через rsync
  3. Удаление конфликтующих веб-серверов
  4. Настройку межсетевого экрана
  5. Установку и запуск сервисов на сервере

Параметры CLI

ФлагОписание
--ipIP-адрес сервера
--userSSH-пользователь (по умолчанию: root)
--auth-keyПуть к SSH-приватному ключу
--domainДоменное имя для Let’s Encrypt
--acme-emailEmail для Let’s Encrypt
--uninstallУдалить Bedrud с сервера

Ручная установка

1. Сборка бинарника

make build-dist

Результат: dist/bedrud_linux_amd64.tar.xz.

2. Загрузка на сервер

scp dist/bedrud_linux_amd64.tar.xz root@server:/tmp/
ssh root@server "cd /tmp && tar xf bedrud_linux_amd64.tar.xz"

3. Установка

ssh root@server
sudo /tmp/bedrud install --tls --domain meet.example.com --email admin@example.com

См. Руководство по установке для всех сценариев установки.

4. Создание администратора

Выдать права администратора

Зарегистрируйтесь через веб-UI, затем выдайте права:

			
sudo ./bedrud user promote --email admin@example.com
		

Развёртывание с Docker

Сборка и запуск с Docker:

docker build -t bedrud .
docker run -d --name bedrud -p 8090:8090 -p 7880:7880 -v bedrud-data:/var/lib/bedrud bedrud

Готовый образ также доступен:

docker pull ghcr.io/bedrud-ir/bedrud:latest

См. Руководство по Docker для полной информации, включая тома, конфигурацию и Docker Compose.


Продакшен-архитектура

flowchart TB
    NET[Internet] --> TRAEFIK["Traefik (443)<br/>TLS termination, reverse proxy"]
    TRAEFIK --> BEDRUD["Bedrud (8090)<br/>API + Web UI"]
    TRAEFIK --> LIVEKIT["LiveKit (7880)<br/>WebRTC media"]
    BEDRUD --> DB["SQLite<br/>(or PostgreSQL)"]

Для WebRTC-соединимости также откройте следующие порты на межсетевом экране:

ПортПротоколНазначение
3478UDPTURN/UDP + STUN
5349TCPTURN/TLS (или используйте 443)
7881TCPICE/TCP fallback
50000-60000UDPRTC медиапотоки

См. WebRTC-соединимость для полного стека соединимости.

Сервисы Systemd

Установщик создает два сервиса:

Сервис Команда Назначение
bedrud.service bedrud --run --config /etc/bedrud/config.yaml API + web
livekit.service bedrud --livekit --config /etc/bedrud/livekit.yaml Медиасервер

Управление сервисами

# Проверить статус
systemctl status bedrud livekit
 
# Перезапуск
systemctl restart bedrud
 
# Просмотр логов
journalctl -u bedrud -f
tail -f /var/log/bedrud/bedrud.log

Расположение файлов (продакшен)

ПутьСодержимое
/usr/local/bin/bedrudБинарник
/etc/bedrud/config.yamlКонфигурация сервера
/etc/bedrud/livekit.yamlКонфигурация LiveKit
/var/lib/bedrud/bedrud.dbБаза данных SQLite
/var/log/bedrud/bedrud.logЛоги приложения

CI/CD

Пайплайн релизов

Workflow release.yml запускается по тегам версий (v*) и создаёт:

АртефактОписание
bedrud_linux_amd64.tar.xz / bedrud_linux_arm64.tar.xzСерверные бинарники (Linux x86_64 / ARM64)
bedrud_amd64.deb / bedrud_arm64.debПакеты Debian/Ubuntu (сервер)
Docker image (ghcr.io/bedrud-ir/bedrud)Мультиархитектурный контейнерный образ в GHCR
bedrud-desktop-linux-x86_64.AppImageДесктоп - универсальный Linux AppImage
bedrud-desktop-linux-x86_64.debДесктоп - пакет Debian/Ubuntu
bedrud-desktop-linux-x86_64.tar.xzДесктоп - портативный tarball для Linux
bedrud-desktop-windows-x86_64-setup.exe / -arm64-setup.exeДесктоп - Windows NSIS-установщик
bedrud-desktop-windows-x86_64.zip / -arm64.zipДесктоп - портативная версия для Windows
bedrud-desktop-macos-x86_64.tar.gz / -arm64.tar.gzДесктоп - портативная версия macOS (без подписи)
Android APK (debug + release, по архитектурам)Сборки Android-клиента
iOS IPA (опционально, требуется подпись)Архив iOS-клиента

Все артефакты прикрепляются к релизу на GitHub.

Ночные сборки

Workflow dev-nightly.yml создаёт development-сборки по расписанию.

CI-проверки

При каждом пуше в main и каждом pull request запускаются:

ПроверкаПлатформа
go vet + сборка + тестыubuntu-latest (Go 1.24)
Проверка типов + сборкаubuntu-latest (Bun)
Линт + модульные тестыubuntu-latest (JDK 17)
Сборка + тестыmacos-15 (Xcode)