signage-server¶
ランタイム(Runtime / Bootstrap)¶
Node プロセスの起動〜稼働の骨格。起動時回転の適用 → HTTP/Socket.IO 立ち上げ → Cloud/Local ソケット初期化 → IP/MAC/端末情報の登録までを担います。
- Express App 構成・配信・API マウント
(/adminSPA、/images・/videos静的配信、/api/*ルート、例外/localPlaylist・/forceKiosk・/health) - Chromium Manager(キオスク再読込)
(killall chromeを X 環境で実行。GET /forceKioskからトリガ)
※ 起動時の詳細フロー・エラーハンドラ登録・Socket.IO 初期化は ランタイム概要を参照
API¶
Express ベースの HTTP レイヤ。ルーティング(routes) を入口に、コントローラー(controllers)/ Service へ処理を委譲します。静的ページ配信と JSON API が混在します。
※ エラーハンドラについては、API の「エラーハンドラ」節を参照
サービス(Services)¶
端末内ロジックのサービス層を用途別に集約。
- System / Platform:端末情報・OS/時刻/NTP・GPU統計・回転・電源/再起動・更新トリガ・ローカル設定
- Network / Registration:IP/MAC 検出と登録・端末情報のクラウド登録・Wi-Fi設定クリア/再起動
- Media / Content:プレイリスト管理・画像/動画サムネイル生成・アップロード
コンポーネント(Components)¶
リアルタイム連携(Socket.IO)のブリッジ群。
- Cloud Socket:端末→クラウドの Socket.IO クライアント。接続時
registerDevice、5秒ごとに DNS 監視とローカルIP再登録、各種イベントを端末へ橋渡し - Local Socket:端末内 Socket.IO(
/と/admin)のブリッジ。setVolume/toggleVolume等をローカル↔クラウドに中継
ユーティリティ(utils/)¶
Node 実行時に用いる補助関数群。Jetson/Raspberry Pi の計測(tegrastats / vcgencmd)、パッチ/マイグレーション状態の集約、将来の共通ロガーを含みます。同期実行(execSync)が多いため、ポーリング間隔や権限に注意。
Public(UI)¶
Chromium(キオスク)で表示される フロントページ群 と、それらに読み込まれる JSモジュールの入口。
ローカル Socket.IO と連携し、初期化後は clientReady を送出して保留イベント(showImage / playVideo など)を受け取ります。
アセットは /images/*・/videos/*(サムネは …/thumbnails/)を参照。
設定(Config)¶
config/index.js は .env の読込(dotenv) と 主要パス/起動ポート等の定義を担い、読み込み時に必要ディレクトリを自動作成します(images/, images/thumbnails/, videos/, videos/thumbnails/, uploads/)。