Xignage Project — Home¶
Xignage は、Jetson/Raspberry Pi をサイネージ端末化し、クラウドから安全に制御・配信するためのフルスタックです。
このページは システム側の総合入口として、全体像/主要リポジトリ/CI/モバイルアプリへの導線をまとめます。
全体像(System Overview)¶
flowchart LR
classDef cloud fill:#eaf2ff,stroke:#4a90e2,color:#0b3d91
classDef device fill:#eaffea,stroke:#34a853,color:#0b5b14
classDef user fill:#fff6e5,stroke:#f5a623,color:#6b4e00
classDef obs fill:#fff0f5,stroke:#d63384,color:#6b113a
subgraph Cloud["Cloud (AWS)"]
CloudAPI["EC2: Cloud API (signage-aws-nodejs)"]:::cloud
RDS["RDS (PostgreSQL)"]:::cloud
S3["S3 (media/logs)"]:::cloud
IoTCore["IoT Core"]:::cloud
CloudWatch["CloudWatch Logs/Metrics"]:::obs
end
Admin["Admin UI (signage-admin-ui, Adalo/Browser)"]:::user
Device["Device (signage-server)"]:::device
Admin -- "HTTPS" --> CloudAPI
Device -- "HTTPS/WSS" --> CloudAPI
CloudAPI -- "Socket.IO" --> Device
CloudAPI -- "SQL" --> RDS
CloudAPI -- "presign" --> S3
Admin -- "HTTPS PUT" --> S3
Device -- "HTTPS GET" --> S3
Device -- "MQTT/HTTPS" --> IoTCore
CloudAPI -- "logs/metrics" --> CloudWatch
TODO:
- Cognito の適用範囲(WebRTC API 認証の本番有効化など)は未確認: xignage-infra-aws/lib/webrtc-api.ts
データフロー要約と設計原則の詳細は → Architecture / Overview を参照。
Note
事業面のビジョン/ユースケースは後日追記予定です。まずはシステム運用に必要な情報から整備します。
何から始める?(Quick Start)¶
- 端末セットアップ → signage-jetson
Openbox+Chromium キオスク、ネットワーク/APフォールバック、更新基盤の導入。 - 端末バックエンド → signage-server
再生・プレイリスト・端末ローカルAPI/Socket.IO を提供。 - クラウド制御 → signage-aws-nodejs
アップロード/一覧/設定/電源/バージョン等を HTTP/Socket.IO で制御。 - ブラウザ管理 UI → signage-admin-ui
VITE_API_BASEで接続先を切替。 - エッジ検知(任意) → xignage-edge-detection
YOLOX による人物検知。最新結果を JSON にアトミック書き込み。 - モバイル運用 → Mobile Apps(Adalo)
スマホからのアップロード/操作。まずは招待制の Android / iOS で試験運用。 - ハード要件の確認 → Hardware / System Composition
パッケージと役割(Overview)¶
- signage-jetson:端末の初期化・運用基盤(冪等スクリプト/分割フェーズ)
→ docs - signage-server:端末ローカルの再生サーバ(Express + Socket.IO)
→ docs - signage-aws-nodejs:クラウド側バックエンド(REST + Socket.IO + Upload)
→ docs - signage-admin-ui:ブラウザの管理 UI(
VITE_API_BASEで API 接続先を指定)
→ docs - xignage-edge-detection:人物検知パイプライン(YOLOX、将来 OpenFace 連携)
→ docs
ハードウェア(Hardware)¶
システムを支える 筐体・電気設計・製造 の情報を集約します。
Rev 管理・BOM・CAD への導線をまとめ、ソフト要件(電源・熱・固定)との整合を確認できます。
- Overview:章の入口(構成・導線)
→ hardware / Overview - System Composition:採用ボード(Jetson/RasPi)、電源要件、I/O占有、センサ配置、外形寸法の要点
→ hardware / System Composition
以降、Electrical(電源/配線/BOM)、Mechanical(フレーム/CAD/組立)、Manufacturing(DFM/DFA/公差/ねじ)、Revisions(Rev A/B)を順次拡張予定。
Release Snapshot(対応バージョン)¶
| リポジトリ | 最新リリース |
|---|---|
| signage-jetson | |
| signage-server | |
| signage-aws-nodejs | |
| signage-admin-ui | |
| xignage-edge-detection |
より詳細な一覧は → パッケージ一覧
CI / Automation(ハブ)¶
各リポの CI は fmt/lint/test を基本に、ライセンス検査/Release 配布/バッジ更新を自動化。
運用ポリシー・ワークフローのカタログは → CI / Automation 概要
Tip
Release バッジは Gist の release.json を更新して Shields.io で表示します(PAT は gist 限定スコープ)。
運用チェックリスト(初期)¶
- 端末接続:
/api/status?deviceId=...が 接続中 を返す - メディア:
/api/uploads/image|video→ 一覧/サムネ API が整合 - プレイリスト:
/api/playlist(add/move/remove/thumbnail)が往復(ACK)で成功 - 設定:
/api/deviceSettings/:deviceIdの get/update - バージョン/パッチ:
/api/version/versions/api/patchMigStateが 5s タイムアウト内に応答 - 管理 UI:signage-admin-ui から API へアクセスできる(
VITE_API_BASE)
変更履歴 / リリース¶
- 各リポの Release は
vMAJOR.MINOR.PATCH(プレリリースは既定で除外) - 配布物:端末スクリプト(tar.gz), サーバ(tar.gz), ほか
- バッジ反映:Release 公開時に Update Release Badge が自動更新
プレースホルダ(後日差し替え)¶
- Vision / Business:プロダクトの狙い・導入価値・KPI(準備中)
- Operations:監視・アラート・SLO / SLA(準備中)
ナビゲーション¶
- Packages → 一覧
- CI / Automation → ハブ
- Mobile Apps → Xignage(Adalo)