Skip to content

signage-server

ランタイム(Runtime / Bootstrap)

Node プロセスの起動〜稼働の骨格。起動時回転の適用 → HTTP/Socket.IO 立ち上げ → Cloud/Local ソケット初期化 → IP/MAC/端末情報の登録までを担います。

※ 起動時の詳細フロー・エラーハンドラ登録・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/)。