Bedrud ドキュメント

本番サーバーに Bedrud をデプロイする方法について説明します。

デプロイ方法

方法適しているケース
パッケージマネージャー (apt/AUR)対応 Linux ディストリビューションでのマネージドインストール
自動化 CLIクイックリモートセットアップ
手動インストール設定を完全に制御したい場合
Dockerコンテナ環境
アプライアンスモードシングルバイナリのオールインワンセットアップ

パッケージマネージャー

Debian/Ubuntu または Arch Linux でネイティブパッケージマネージャーを使用して Bedrud をインストールします。apt upgrade や AUR による自動更新を行いたい永続的なサーバーデプロイにおすすめの方法です。

apt GPG キーとリポジトリの追加を含む詳しい手順は、パッケージインストールガイドを参照してください。

# 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. バックエンドバイナリをローカルでビルド
  2. rsync で圧縮・アップロード
  3. 競合する Web サーバーをクリア
  4. ファイアウォールを設定
  5. サーバーにサービスをインストール・起動

CLI オプション

フラグ説明
--ipサーバーの IP アドレス
--userSSH ユーザー(デフォルト:root)
--auth-keySSH 秘密鍵のパス
--domainLet’s Encrypt 用のドメイン名
--acme-emailLet’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. 管理者ユーザーの作成

Promote User to Admin

Register via the web UI at your server URL, then promote the user to admin:

			
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 Compose を含む詳細は、Docker ガイドを参照してください。


本番アーキテクチャ

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 フォールバック
50000-60000UDPRTC メディアストリーム

接続スタックの詳細は、WebRTC 接続性を参照してください。

Systemd Services

The installer creates two systemd services:

Service Command Purpose
bedrud.service bedrud --run --config /etc/bedrud/config.yaml API + web
livekit.service bedrud --livekit --config /etc/bedrud/livekit.yaml Media server

サービスの管理

# ステータス確認
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.yamlLiveKit 設定
/var/lib/bedrud/bedrud.dbSQLite データベース
/var/log/bedrud/bedrud.logアプリケーションログ

CI/CD

リリースパイプライン

release.yml ワークフローはバージョンタグ(v*)でトリガーされ、以下を生成します:

成果物説明
bedrud_linux_amd64.tar.xz / bedrud_linux_arm64.tar.xzサーバーバイナリ(Linux x86_64 / ARM64)
bedrud_amd64.deb / bedrud_arm64.debDebian/Ubuntu パッケージ(サーバー)
Docker イメージ (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デスクトップ - Linux ポータブル tarball
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(デバッグ + リリース、アーキテクチャ別)Android クライアントビルド
iOS IPA(オプション、署名が必要)iOS クライアントアーカイブ

すべての成果物は GitHub リリースに添付されます。

ナイトリービルド

dev-nightly.yml ワークフローが定期的に開発ビルドを生成します。

CI チェック

main へのプッシュおよびすべてのプルリクエストで以下が実行されます:

チェックプラットフォーム
go vet + ビルド + テストubuntu-latest (Go 1.24)
型チェック + ビルドubuntu-latest (Bun)
リント + ユニットテストubuntu-latest (JDK 17)
ビルド + テストmacos-15 (Xcode)