Bedrud ドキュメント

bedrud コマンドラインインターフェースの完全なリファレンス。

概要

# サブコマンド形式
bedrud <command> [flags]
 
# フラグ形式
bedrud --livekit --config <path>
bedrud --run --config <path>

コマンド

run / server

Bedrud 会議サーバーを API、組み込み Web フロントエンド、組み込み LiveKit(設定されている場合)とともに起動します。

bedrud run    [--config <path>]
bedrud server [--config <path>]
フラグデフォルト説明
--config$CONFIG_PATH 環境変数 → "config.yaml"Bedrud YAML 設定ファイルのパス

動作:

  • 指定パスまたはデフォルトから設定を読み込み
  • 内部モード設定時は組み込み LiveKit を起動
  • SQLite/PostgreSQL データベースを初期化しマイグレーションを実行
  • すべての API ルートを持つ Fiber HTTP サーバーを作成
  • 組み込み React フロントエンドを提供
  • ACME(Let’s Encrypt)、自己署名 TLS、手動 TLS、またはプレーン HTTP に対応
  • SIGTERM/SIGINT でグレースフルシャットダウン

実装: server/internal/server/server.go


--livekit

組み込み LiveKit メディアサーバーのみを起動します。Go embed からバイナリを一時ディレクトリに展開します。

bedrud --livekit --config <path>
フラグデフォルト説明
--config(必須)LiveKit YAML 設定ファイルのパス

使用元: bedrud install で作成されるイニットサービス livekit.service

実装: server/internal/livekit/server.go


--run

bedrud run のエイリアス。同じ --config フラグの動作。イニットサービス bedrud.service で使用されます。

bedrud --run --config <path>

install

Debian/Linux システムに Bedrud をインストールします。イニットサービス(systemd、OpenRC、SysV init — 自動検出)、設定ファイル、ディレクトリ、TLS 証明書を作成します。

bedrud install [flags]
フラグデフォルト説明
--tlsfalseHTTPS を有効化(--self-signed と同じ)
--self-signedfalse自己署名 TLS 証明書を生成
--no-tlsfalseTLS を完全に無効化(プレーン HTTP)。--tls--self-signed を上書き
--ip自動検出自動検出されたサーバー IP アドレスを上書き
--domain""Let’s Encrypt または自己署名証明書用ドメイン名
--email""Let’s Encrypt 登録用メールアドレス
--port"443" (TLS) / "8090" (HTTP)リッスンポートを変更
--cert""既存の PEM 証明書ファイルのパス
--key""既存の PEM 秘密鍵ファイルのパス
--lk-port"7880"LiveKit API/WebSocket ポートを変更
--lk-tcp-port"7881"LiveKit RTC TCP ポートを変更
--lk-udp-port"7882"LiveKit RTC UDP ポートを変更
--freshfalseインストール前に既存のインストールを削除
--behind-proxyfalseCDN/リバースプロキシの背後(Cloudflare、nginx)
--external-livekit""完全に外部の LiveKit サーバーの URL(別マシン)
--livekit-domain""ローカル LiveKit サーバー用の別ドメイン(CDN をバイパス)

処理内容:

  1. --fresh の場合、以前のインストールを停止して削除
  2. 非インタラクティブでフラグ未指定の場合、IP、ドメイン、メール、TLS モードを入力として求める
  3. ディレクトリを作成: /etc/bedrud/var/lib/bedrud/var/lib/bedrud/certs/var/log/bedrud
  4. バイナリを /usr/local/bin/bedrud にコピー
  5. Bedrud サーバー設定を /etc/bedrud/config.yaml に生成
  6. LiveKit メディアサーバー設定を /etc/bedrud/livekit.yaml に生成
  7. 自己署名証明書を /etc/bedrud/cert.pem + /etc/bedrud/key.pem に生成(TLS 有効でカスタム証明書未指定時)
  8. LiveKit イニットサービスを作成(外部 LiveKit 使用時を除く)
  9. Bedrud イニットサービスを作成
  10. 検出されたイニットシステムでサービスを有効化・開始
  11. アクセス URL を表示

TLS オプション:

  • --domain + --email → ACME(Let’s Encrypt)
  • --self-signed または --tls → 自己署名証明書
  • --cert + --key → カスタム証明書
  • --no-tls → プレーン HTTP のみ

LiveKit トポロジー:

  • デフォルト(組み込み): LiveKit はローカルで実行され、Bedrud の /livekit 経由でプロキシ
  • --livekit-domain: LiveKit はローカルで実行されるが、クライアントは独自ドメインで直接接続
  • --external-livekit: ローカル LiveKit なし。リモートサーバーに接続

実装: server/internal/install/linux.go

関連ドキュメント: インストールガイドデプロイメントガイドバックエンドデプロイメントロジック


uninstall

システムから Bedrud を削除します。

bedrud uninstall

削除内容:

  • すべてのイニットシステムでサービスを停止・無効化: bedrudlivekit
  • systemd、OpenRC、SysV init のサービスファイルを削除
  • バイナリを削除: /usr/local/bin/bedrud/tmp/bedrud/tmp/bedrud-livekit-server
  • ディレクトリを削除: /etc/bedrud/var/lib/bedrud/var/log/bedrud
  • システムユーザーを削除: bedrud

実装: server/internal/install/ (linux.go, init.go, sysv.go, openrc.go)

関連ドキュメント: インストールガイド - アンインストール


user

Bedrud データベースのユーザーを管理します。

bedrud user [--config <path>] <subcommand> [flags]
グローバルフラグデフォルト説明
--config/etc/bedrud/config.yamlBedrud 設定ファイルのパス(データベースの場所特定用)

create

ローカル認証(bcrypt ハッシュパスワード)で新しいユーザーを作成します。

bedrud user [--config <path>] create --email <email> --password <password> --name <name> [--admin]

必須フラグ:

  • --email: ユーザーのメールアドレス
  • --password: ユーザーのパスワード。保存前に bcrypt でハッシュ化
  • --name: ユーザーの表示名

オプションフラグ:

  • --admin: ユーザーを superadmin として作成

アクセスレベル: デフォルトは user--admin を使用すると、1つのコマンドで superadmin を作成できます。

delete

メールアドレスでユーザーを削除します。

bedrud user [--config <path>] delete --email <email>

promote

ユーザーのロールをアクセス配列の置き換えで設定します。デフォルト: superadmin

bedrud user [--config <path>] promote --email <email> [--role <role>]
フラグデフォルト説明
--rolesuperadmin対象ロール: superadmin, admin, moderator, user, guest

例:

# superadmin 権限を付与 (デフォルト)
bedrud user promote --email admin@example.com
 
# admin 権限を付与
bedrud user promote --email admin@example.com --role admin
 
# moderator 権限を付与
bedrud user promote --email mod@example.com --role moderator

各ロールは特定のアクセス配列にマップされます:

  • superadmin['superadmin', 'user']
  • admin['admin', 'user']
  • moderator['moderator', 'user']
  • user['user']
  • guest['guest']

demote

ユーザーから特定のロールを削除します。デフォルト: superadmin

bedrud user [--config <path>] demote --email <email> [--role <role>]
フラグデフォルト説明
--rolesuperadmin削除するロール: superadmin, admin, moderator

削除後、ユーザーにロールが残っていない場合、user アクセスが自動的に追加されます。

実装: server/internal/usercli/usercli.go


cert

TLS証明書を管理します。自己署名証明書(bedrud install --self-signedによって生成)を使用する場合に関連します。

bedrud cert [--config <path>] <subcommand>
グローバルフラグデフォルト説明
--config/etc/bedrud/config.yamlBedrud設定ファイルへのパス
--algo""鍵アルゴリズム: ed25519, ecdsa256, rsa2048, rsa4096 (デフォルト: 既存の証明書から検出)

renew

自己署名TLS証明書を手動で更新します。既存の証明書の鍵アルゴリズムを検出し、同じタイプで再生成します(デフォルト: Ed25519)。新しい証明書は1825日間(約5年)有効です。

bedrud cert renew [--config <path>]

サーバーは有効期限が30日未満になると、内蔵スケジューラーを介して毎日自動的に証明書を更新します。このコマンドは手動または臨時の更新用です。

SANs: サーバー設定から導出されます — domain(設定されている場合)、およびlocalhost127.0.0.1::1

実装: server/internal/utils/tls.go (RenewSelfSignedCert)

info

TLS証明書のメタデータをstdoutに出力します。

bedrud cert info [--config <path>]

出力フィールド: subject, issuer, notBefore, notAfter, daysRemaining, status (valid/expiring/error), SANs。

実装: server/internal/utils/tls.go (ValidateTLSCertPair)


help

すべてのコマンドとフラグを含む使用方法メッセージを表示します。

bedrud help

引数なしでも同じ出力が表示されます。printUsage() の出力を表示します。


使用例

基本的な開発サーバーの起動

# カレントディレクトリのデフォルト config.yaml で実行
bedrud run
 
# カスタム設定で実行
bedrud run --config /path/to/config.yaml
 
# 環境変数経由(フォールバック)
export CONFIG_PATH=/etc/bedrud/config.yaml
bedrud run

インタラクティブインストール(入力プロンプト付き)

bedrud install

Let’s Encrypt による非インタラクティブインストール

bedrud install --domain example.com --email admin@example.com

カスタムポートでの自己署名 TLS

bedrud install --self-signed --port 8443 --lk-port 7880 --lk-tcp-port 7881 --lk-udp-port 7882

CDN 背後 + LiveKit 別ドメイン

bedrud install --domain bedrud.example.com --email admin@example.com --livekit-domain lk.example.com --behind-proxy

クリーン再インストール

bedrud install --fresh --domain example.com --email admin@example.com

ユーザー管理

# 最初の管理者ユーザーを作成(単一コマンド)
bedrud user [--config <path>] create --email admin@example.com --password secret123 --name "Admin User" --admin
 
# または一般ユーザーを作成してから昇格
bedrud user [--config <path>] create --email admin@example.com --password secret123 --name "Admin User"
bedrud user [--config <path>] promote --email admin@example.com
 
# 一般ユーザーを作成
bedrud user [--config <path>] create --email user@example.com --password pass456 --name "Regular User"
 
# ユーザーを削除
bedrud user [--config <path>] delete --email user@example.com
 
# 管理者アクセスを削除
bedrud user [--config <path>] demote --email admin@example.com

関連ドキュメント