Bedrud ドキュメント

ルートの Makefile は Bedrud モノレポの中心的なビルドオーケストレーションツールです。開発、ビルド、デプロイのためのコマンドをすべてのプラットフォーム向けに提供します。

使い方

make <target>
make help       # 利用可能なターゲットをすべて表示

開発ターゲット

ターゲット説明
make initすべての依存関係をインストール(LiveKit + 設定 + bun + Go)
make devLiveKit + サーバー(ホットリロード) + Web を同時に実行
make dev-webフロントエンドの開発サーバーのみ実行
make dev-serverバックエンドサーバー + LiveKit を実行
make dev-server-hotAir でホットリロードしてバックエンドを実行
make dev-apiバックエンドのみ実行(LiveKit なし)
make dev-livekitローカルの LiveKit サーバーを実行
make dev-siteAstro サイトの開発サーバーを実行
make dev-iosiOS プロジェクトを Xcode で開く
make dev-androidAndroid プロジェクトを Android Studio で開く

make init

新しい開発環境の完全セットアップ:

  1. LiveKit サーバーバイナリを ~/.local/bin/ にダウンロード(PATH にない場合)
  2. config.local.yaml テンプレートから server/config.yaml を作成(存在しない場合)
  3. server/internal/livekit/bin/livekit-server に LiveKit 組み込みプレースホルダーを作成
  4. Go ホットリロード用の air をインストール(未インストールの場合)
  5. 依存関係をインストール:apps/web(bun)、apps/site(bun)、server(go mod)

make dev

3つの開発サービスを同時に起動します。Ctrl+C ですべて停止します:

  • LiveKit - localhost:7880
  • Server - localhost:8090
  • Web - localhost:3000

ビルドターゲット

ターゲット説明
make buildフロントエンド + バックエンドをビルド(組み込み)
make build-frontフロントエンドのみビルド
make build-backバックエンドのみビルド
make build-dist本番用 linux/amd64 tarball をビルド
make build-siteAstro サイトをビルド(SSG)

make build

本番ビルド全体:

  1. apps/webbun run build を実行 — React アプリをビルド
  2. apps/web/dist/client/*server/frontend/ にコピー
  3. フロントエンドを組み込んだ Go バイナリをビルド

出力:server/dist/bedrud

make build-dist

圧縮済みの本番配布ファイルを作成します:

  1. make build を実行
  2. linux/amd64 向けにクロスコンパイル(デバッグシンボルを除去)
  3. dist/bedrud_linux_amd64.tar.xz を作成

デスクトップターゲット

ターゲット説明
make dev-desktopデスクトップアプリをビルドして実行(debug)
make build-desktop最適化されたリリースバイナリをビルド

ローカル単一バイナリ

ターゲット説明
make local-buildフロントエンド + バックエンドを1つのバイナリにビルド
make local-runビルド + ローカル実行(SQLite、組み込み LiveKit)

make local-run

ローカル設定で単一バイナリをビルドして起動:

CONFIG_PATH=server/config.local.yaml server/dist/bedrud run

起動後 http://localhost:8090 を開いてください。

API ドキュメント

ターゲット説明
make swagger-genアノテーションから Swagger ドキュメントを再生成
make swagger-openブラウザで Swagger UI を開く
make scalar-openブラウザで Scalar UI を開く

swag CLI が必要(go install github.com/swaggo/swag/cmd/swag@latest)。swagger-openscalar-open はサーバー起動中に使用可能です。

Android ターゲット

ターゲット説明
make build-android-debugデバッグ APK をビルド
make build-androidリリース APK をビルド(キーストアが必要)
make install-androidリリース APK を接続済みデバイスにインストール
make release-androidリリース APK をビルド + インストール

APK の出力パス

  • デバッグ:apps/android/app/build/outputs/apk/debug/app-debug.apk
  • リリース:apps/android/app/build/outputs/apk/release/app-release.apk

iOS ターゲット

ターゲット説明
make build-iosiOS アーカイブをビルド(Release)
make export-iosアーカイブから IPA をエクスポート
make build-ios-simiOS シミュレータ用にビルド(Debug)

出力パス

  • アーカイブ:apps/ios/build/Bedrud.xcarchive
  • IPA:apps/ios/build/export/Bedrud.ipa

デプロイターゲット

ターゲット説明
make deploy ARGS=...デプロイ CLI ツールを実行

make deploy ARGS="--auto-config --ip 1.2.3.4 --user root --domain meet.example.com"

tools/cli/bedrud.py の Python CLI を指定された引数で実行します。

テスト

ターゲット説明
make test-backバックエンドのテストを実行(go test -v -count=1 ./...

クリーンターゲット

ターゲット説明
make cleanビルド成果物とコンパイル済みバイナリを削除
make full-clean成果物 + インストール済みの依存関係をすべて削除

make clean

以下を削除します:

  • dist/ — 配布用 tarball
  • server/dist/ — コンパイル済みサーバーバイナリ
  • apps/web/dist/ — React ビルド出力
  • server/frontend/ の内容 — 組み込みフロントエンドアセット
  • apps/android/app/build/ — Android ビルド出力
  • apps/ios/build/ — iOS ビルド出力
  • apps/site/dist/ — Astro サイトビルド出力
  • target/ — Rust/Cargo ビルド出力

make full-clean

clean の内容に加えて以下も削除します:

  • apps/web/node_modules/
  • apps/site/node_modules/
  • apps/android/.gradle/
  • apps/android/build/
  • Go モジュールキャッシュ(go clean -modcache

実行後、make init を再実行して依存関係を再インストールしてください。