mcc_room_managerの後継プロジェクトです。 全体的にモダンかつ堅牢な動作・設計を目指して開発しています。
crates/app
: NFCカードのスキャンとスキャン結果をAPIサーバーに送信するアプリケーション(Raspberry Pi)crates/pasori
: Pasori NFCリーダーライブラリpackages/api
: Discordコマンドのハンドリング・API・データベースの管理を行うAPIサーバー(Cloudflare Workers)
以下のツールが必要です:
- mise: Rust、Node.js、pnpmの管理用
- リポジトリのクローン
git clone https://github.com/tuatmcc/room-manager.git
cd room-manager
- miseを使用して環境を整える
mise install
- 依存関係のインストール
# Rustの依存関係
cargo fetch
# Node.jsの依存関係
pnpm install
- 環境変数の設定
.env
ファイルをプロジェクトのルートディレクトリに作成し、必要な環境変数を設定してください。(.env.example
を参考にしてください)
同様に、packages/api/.dev.vars
ファイルも作成し、必要な環境変数を設定してください。
# Rustアプリケーションの実行(開発モード)
cargo run -p app
# APIサーバーの開発実行
cd packages/api
pnpm dev
# Rustアプリケーションのリリースビルド
cargo build --release -p app
# 実行ファイルは target/release/app に生成されます
ARM系デバイス向けにクロスコンパイルする場合:
# 依存ツールのインストール(最新版が必要なので注意)
cargo install cross --git https://github.com/cross-rs/cross
# aarch64向けビルド
cross build --release
# 実行ファイルは target/aarch64-unknown-linux-gnu/release/app に生成されます