現場への導入
1 つの現場に TreeT を立ち上げる大まかな手順です。(インストールファイルや詳細な手順は、導入時に提供されるデプロイパッケージとともに ご案内します。)
準備事項(役割別)
Section titled “準備事項(役割別)”インストールの前に、以下を準備します。役割ごとに 別々の機器 を使うのが基本ですが、規模によってはまとめることも できます。
| 役割 | 台数 | 準備するもの |
|---|---|---|
| CMS サーバー | サイトごとに 1 (複数のサイトを 1 つの CMS で運用可能) | Ubuntu 26.04 LTS。Docker はインストーラーが自動でインストールします → CMS サーバーのインストール |
| キオスク | サイトごとに N (通常 10〜30 台) | Windows・Linux・Android のいずれか。ディスプレイと有線ネットワーク。 最低スペック: Windows 10 以上(64 ビット)・Linux 64 ビット(x86-64・Raspberry Pi は 5 + 64 ビット OS で確認)・Android 7.0 以上 |
| シンクサーバー | マルチスクリーン使用時に 1 | Windows 10 以上(64 ビット)または Linux 64 ビット(x86-64・arm64)。別途ランタイムのインストールは不要(単一の実行ファイル) |
| エッジ中継機 | 閉域網の現場のみ 1 | Windows 11 22H2 以上、内部網と外部網の 両方に接続された 機器 |
ポートの開放
Section titled “ポートの開放”ファイアウォール・ルーターを設定する際に使う表です。方向が 2 つある ことを先に確認してください — ほとんどは キオスクからサーバーへ出ていきますが、リモート制御だけが逆方向で入ってきます。
キオスク → サーバー(送信方向)
Section titled “キオスク → サーバー(送信方向)”| ポート | 用途 | 接続先 | 塞がれると |
|---|---|---|---|
| 8443 | CMS セキュア接続 — 登録・設定・編成・コンテンツのダウンロード | CMS(または MqttEdge) | 画面が新しい編成に切り替わりません |
| 8080 | CMS 平文接続 — https を使わない現場 | CMS | 〃 |
| 8883 | MQTT(TLS) — リモートコマンド・状態報告 | CMS ブローカー(または MqttEdge) | リモート制御・即時反映ができません。再生自体は続きます |
| 53000 から | 同期再生 — シンクプールごとにポート 1 つ | SyncServer | 複数画面の再生がずれます |
⚠️ https(8443)で運用する現場は 8080 を外部に開けません — 平文の入口だからです。そのため現場の外(別のネットワーク)に
いるキオスクは CMS のアドレスとコンテンツアドレスの両方を https://…:8443 に してください。機器設定で CMS のアドレスだけを変更すると、
コンテンツアドレスは CMS が追従して変更します — 両方が同じ入口だった場合は https://…:8443/data のように ポートまで 変わります。
⚠️ Android 7.0 以下の機器には TreeTview Android 2026.9.135 以上が必要です — CMS が Let’s Encrypt 証明書を使う現場(https 8443)の場合です。それらの機器は Let’s Encrypt のルート証明書(ISRG Root X1)を認識できず、 CMS を信頼できないため接続できません(実測: Galaxy Note4・Android 6、2026-09-22)。2026.9.135 以降はアプリがその ルート証明書を直接搭載しているため接続できます。それより低い版がインストールされた機器は CMS に接続できないため CMS からは アップデートできず、新しい版を直接インストールする必要があります。
⚠️ 53000 番台は現場内だけでやり取りされます — インターネットへ出ていかないため、ルーターに穴を開ける 必要はありません。プールを追加すると 53001・53002…と 1 つずつ増えます(CMS が空いている番号を見つけます)。
サーバー → キオスク(受信方向)
Section titled “サーバー → キオスク(受信方向)”| ポート | 用途 | 塞がれると |
|---|---|---|
| 5900 | VNC リモート制御 — その画面を直接見て操作します | リモート制御ボタンが開きません |
🔴 これだけが方向が逆です。 他のポートをすべて開けても、これを忘れるとリモート制御だけができません —
そして残りは正常に動くため、原因を見つけにくいです。機器ごとに異なるポートを使う場合は 機器管理(기기관리) →
機器ページ上部の 基本情報を編集 → リモート接続 欄に アドレス[:ポート] で入力します(管理者以上)。
管理者側だけで使うポート(キオスクとは無関係)
Section titled “管理者側だけで使うポート(キオスクとは無関係)”| ポート | 用途 |
|---|---|
| 4822・8080 | Guacamole 内部通信 |
| 5500・5901 | VNC リピーター(閉域網構成でサーバー側・ビューアー側) |
🔵 データベースポート(3306)は外部に開けません。 スタック内だけでやり取りされます。
MqttEdge を使う現場
Section titled “MqttEdge を使う現場”エッジがある場合、キオスクは エッジにのみ 接続し、CMS に直接接続しません。エッジが現場側に 8883(MQTT)と 8443(コンテンツプロキシ)を開け、外部へは エッジが中央へ出ていく接続 1 つ だけがあります。
⭐ そのため閉域網でも ルーターに入ってくる穴を開ける必要はありません — エッジが外へ 出ていく方向だからです。
🔵 この順番どおりに行ってください。 特に 2 と 3 を入れ替えてはいけません — CMS のアドレスは プレーヤーの画面で 入力するため、プレーヤーが先にインストールされている必要があります。
- CMS のインストール — CMS ホストにサーバーを立ち上げ、接続アドレス(IP/ドメイン + ポート)を確定 します。 → CMS サーバーのインストール
- キオスクにプログラムをインストール — プレーヤー(+ 監視プログラム、必要ならシンクサーバー)をインストールします。 → 下記 「キオスク PC へのインストール」
- CMS のアドレスを入力 — プレーヤーの画面で F8。監視プログラム・シンクサーバーは インストール時に 入力するか(該当する版から)、後でコマンド・ファイルで入力します。 → 下記 「CMS のアドレスを入力する」・「ほかのプログラムにも CMS のアドレスが必要です」
- 🔴 反映されたか確認 — プレーヤーのログの
[사이트설정] 확인の行を 目で確認します。 → 下記 「正しく反映されたかを確認する方法」。この手順を飛ばすと、後で原因を突き止められません。 - (HTTPS + IP アドレスの現場のみ)サーバー証明書の信頼登録 — 下記 「アドレスに IP を使う現場」。
- 機器の登録 + 編成 — アドレスが正しければ、プレーヤーが 自ら CMS に登録 されます(機器証明書も 自動で発行されます)。CMS の管理画面でコンテンツ・編成を決めます。プログラムの新しい版は CMS の更新方式(自動・手動)に従ってすべての機器が一緒に受け取ります (管理画面)。
インストールとアップデート
Section titled “インストールとアップデート”プログラムごとに 必要な権限が異なります。 インストールの順番を決める際に、あらかじめ把握しておいてください。
| プログラム | インストール権限 | インストール先 |
|---|---|---|
| TreeTview(プレーヤー) | 一般ユーザー | そのユーザーの個人フォルダー |
| 🔴 SyncServer(同期) | 管理者 | プログラムフォルダー(共用) |
| 🔴 Watchdog(監視) | 管理者 | プログラムフォルダー(共用) |
| 🔴 MqttEdge(閉域網中継) | 管理者 | 共用フォルダー |
一般ユーザーでインストールするのはプレーヤーだけで、アカウントごとに別々にインストール されます — 同じ PC を複数の人が使う場合は、 その人のアカウントでログインしてインストールする必要があります。
ビューアーの画面からアップデートする
Section titled “ビューアーの画面からアップデートする”インストーラーを直接実行する代わりに、ビューアーの画面で確認してインストール することもできます。 CMS がその機器に渡す新しい版があれば(プログラムの版)、 現場で次のように操作します:
- ビューアーで F8 を押して設定画面を開きます。
- 프로그램 업데이트(プログラムアップデート) の項目で [확인](確認) を押します — 現在のバージョンと状態が表示されます。
- 受け取るものがあれば [지금 설치](今すぐインストール) が有効になります。
Linux 機器のアップデート — インストーラーはありません
Section titled “Linux 機器のアップデート — インストーラーはありません”Linux には Windows のようなインストールファイル(.exe)はありません。インストール本体は 1 つの圧縮ファイル(.tar.gz)で、
その中に ファイルごとの検査値を記載したリストと、そのリストの署名 が一緒に入っています。
CMS から新しい版を受け取る方法(運用時間外・[지금 설치](今すぐインストール))は Windows と同じです。
| Windows | Linux | |
|---|---|---|
| 受け取るもの | インストールファイル(.exe) | 圧縮ファイル(.tar.gz)+ 署名されたファイルリスト |
| インストール方法 | インストールファイルを静かに実行 | 新しいフォルダーに展開して フォルダーを入れ替え |
| 確認すること | ファイルの署名 | リストの署名 + ファイルごとの検査値 |
| 起動しない場合 | 人が確認する必要があります | 自動で古いフォルダーに戻します |
キオスク PC へのインストール
Section titled “キオスク PC へのインストール”CMS が立ち上がった後、画面を表示する キオスク PC ごとに 行います。
インストールファイルはパッケージ一式の 설치파일\(インストールファイル)フォルダーにあります(C:\treet\설치파일\)
— CMS インストールマニュアルの 「始める前に」 を参照。
🔴 そのフォルダーを丸ごとキオスク PC に移し、その PC で実行します — インストーラーは
自分が置かれているフォルダーを基準に 動作します。
⚠️ パッケージ一式の TreeT_코드서명_공개인증서.cer(コード署名の公開証明書)も一緒に持っていってください。これを先に登録
しないと、自動アップデートが黙って失敗します(上記 「インストールとアップデート」 を参照)。
何をインストールするか
Section titled “何をインストールするか”| 順番 | プログラム | 必須か |
|---|---|---|
| 1 | TreeTview — 画面を表示するプレーヤー | ✅ 必須 |
| 2 | Watchdog — プレーヤーが終了したら再起動し、新しい版を代わりにインストールします | ✅ 推奨(無人の現場では事実上必須) |
| 3 | SyncServer — 複数の画面を 同じタイミングで 切り替える場合のみ | 必要な現場のみ |
| 4 | 🔴 UltraVNC — CMS からこの機器の画面を見る場合 | ✅ 推奨 |
タスクバー・通知が画面の上に出てこないように
Section titled “タスクバー・通知が画面の上に出てこないように”プレーヤーが 全画面(キオスク) のときは、タスクバーより 上 にあります。通知や他のウィンドウが一瞬フォーカスを奪っても、タスクバーはプレーヤーの上に出てきません。ショートカットで全画面を抜けて ウィンドウモード になると、普通のウィンドウのように下がります。
| Windows | Linux(Raspberry Pi) | |
|---|---|---|
| プレーヤーが全画面のとき | プレーヤーがタスクバーの上を覆います | ウィンドウマネージャー(labwc)がタスクバーを自ら隠します — プレーヤーはタスクバーを止めません |
| 通知 | Watchdog が通知を切っておき、オンになれば戻します | — |
| タッチ画面の端からのスワイプ | キオスク設定(Settings_All.cmd)が切ります — コンピューター全体の設定なので、Watchdog はずれていれば 報告のみ します | — |
| 電源を入れた直後 | — | インストール時のハードニングがタスクバーを 自動起動から外します |
| ウィンドウモードのとき | — | カーソル非表示がオンなら、プレーヤーがタスクバーを止めます(予備) |
⚠️ カーソルはプレーヤーのウィンドウの上でだけ隠れます — プレーヤーが覆わない画面(2 台目のモニターなど)では見えます(Windows · Linux 共通)。
🔵 プレーヤーが画面にないときは、タスクバー・カーソルが表示されます — プレーヤーを終了する(F4)か隠す(F11)と、タスクバーとカーソルが戻り、その PC をすぐに使えます。プレーヤーが再び表示されると ユーザーが選んだとおり(F9 · F10 で選んだもの — 選んでいなければ両方とも非表示)に戻ります。プレーヤーが突然終了した場合も、Watchdog がタスクバー・カーソルを元に戻します。
インストール後に確認すること
Section titled “インストール後に確認すること”プレーヤーを初めて起動すると、自ら CMS を探して登録 します。人が登録する必要はありません。
CMS 管理画面の 機器管理 一覧にその機器が表示されれば成功です。
インストール検査を実行する — check-install.ps1
Section titled “インストール検査を実行する — check-install.ps1”パッケージ一式(C:\treet)には、インストールが正しく行われたかを測るスクリプト が同梱されています。
画面に映像が出るだけではわからない点を確認します。
キオスク PC で PowerShell を開き、1 行ずつ実行します。
インストール 前に — 現在の値を基準として記録します(これがあってはじめて 「設定が保持されたか」 を判断できます):
powershell -ExecutionPolicy Bypass -File C:\treet\check-install.ps1 -Beforeインストール 後に — 事後条件を確認します:
powershell -ExecutionPolicy Bypass -File C:\treet\check-install.ps1 -After-Before を記録していなくても -After は実行できます。ただし 「現在の値はこうだ」 までしかわからず、
何が変わったか はわかりません。
CMS のアドレスを入力する — プレーヤーの画面で(初回 1 回)
Section titled “CMS のアドレスを入力する — プレーヤーの画面で(初回 1 回)”プレーヤーはインストール直後は 開発用の既定値(127.0.0.1) を持っています。その PC で一度
入力してはじめて CMS を見つけられます。手作業で行うのはこの 1 回だけで、それ以降は CMS から変更します。
キーボードのショートカットキーで操作します — ファイルを開く必要はありません。
| キー | 動作 |
|---|---|
| F8 | 設定画面 を開きます ← ここで CMS のアドレスを入力します |
| F11 | 画面を一時的に隠します(最小化) |
| F10 | 全画面のオン・オフ — 選んだ状態を記憶します(再起動後もそのまま) |
| F9 | マウスカーソル・タスクバーの表示・非表示(Linux — Raspberry Pi のタスクバーを含む) — 選んだ状態を記憶します |
| F4 | プレーヤーの終了 |
- プレーヤーが起動している状態で F8 を押します。
- CMS 주소(CMS のアドレス) 欄に、その現場の CMS のアドレスを入力します — 例:
http://192.168.0.10:8080 - 🔴
MQTT 사이트(MQTT サイト)欄も一緒に入力します — CMS のインストール時に尋ねられた サイト名 とまったく同じに (大文字・小文字まで)。⚠️ 空欄のままだと、画面は表示されるのにリモートコマンドだけが永遠に届きません — ブローカーが トピックの権限で拒否し、エラーは何も表示されません。 - MQTT 주소(MQTT アドレス) 欄は、CMS と同じマシンなら CMS のアドレスの ホスト部分 だけを入力します(例:
192.168.0.10)。 - 保存すると、プレーヤーがそのアドレスで CMS を探して 自ら登録 します。
Raspberry Pi・Linux に日本語・韓国語フォントがなくても、設定画面・起動画面の韓国語・日本語・中国語が表示されます — プレーヤーがフォントを同梱しています。インターネットから取得しないため、閉域網でも動作します。
正しく反映されたかを確認する方法(飛ばさないでください)
Section titled “正しく反映されたかを確認する方法(飛ばさないでください)”プレーヤーを再起動した後、その PC の
%APPDATA%\TreeTview\logs\main_<今日の日付>.logを開き、一番下のほうの [사이트설정] の行を見てください。
| 表示される行 | 意味 |
|---|---|
[사이트설정] 확인 — CMS 주소·MQTT·CA 설정에 걸리는 것 없음. | ✅ 合格 |
✗ CMS 주소가 아직 개발 기본값입니다 (http://127.0.0.1) | ❌ path.baseUrl が反映されていません |
✗ mqtt.host 가 아직 개발 기본값입니다 (127.0.0.1) | ❌ mqtt.host に開発用の既定値が残っています。🔵 直し方は値を入れることではなく空にすることです(そうすれば baseUrl に追従します)。閉域網のエッジブローカーを使うときだけアドレスを書きます |
✗ mqtt.site 가 기본값 "site" 입니다 | ❌ MQTT 사이트 欄が空です — リモートコマンドが届きません |
· 사이트 CA 가 아직 없습니다 | 初回登録の前なら 正常 です(エラーではありません) |
🔴 アドレスが間違っているときの症状は「故障」のようには見えません。 画面は全画面で問題なく表示され、 Watchdog が 数分おきにプレーヤーの再起動を繰り返します。 見た目は 「電源は入っているのに内容だけ 表示されない」 状態です。上のログの行が 唯一の正確なシグナル です。
機器証明書は 人が入れるものではありません
Section titled “機器証明書は 人が入れるものではありません”プレーヤーは CMS に初めて登録するときに、自ら鍵を作成し、証明書の発行を受けて 保存します。 準備やコピーが必要なものはありません — アドレスさえ正しければ、残りは自動で行われます。
人が入れる必要があるかもしれないのは、https の現場のサイト CA 1 つだけです (下記 「アドレスに IP を使う現場」 を参照)。
ほかのプログラムにも CMS のアドレスが必要です
Section titled “ほかのプログラムにも CMS のアドレスが必要です”プレーヤーを設定しただけでは終わりではありません。一緒にインストールしたプログラムも、それぞれ CMS を参照します。
| プログラム | 編集するファイル | 編集する項目 |
|---|---|---|
| Watchdog | C:\ProgramData\TreeT\Watchdog\watchdog.json | appCheck.cmsUrl |
| SyncServer(使用する現場のみ) | C:\Program Files\TreeT\SyncServer\SyncServer.json | cms.url |
| MqttEdge(閉域網の現場のみ) | インストールフォルダーの conf.d\site.conf | 中央ブローカーのアドレス |
コマンドで直す方法 — ファイルを開かずにアドレスだけを変更できます。 管理者 の PowerShell で 1 行ずつ:
& "C:\Program Files\TreeT\Watchdog\Watchdog.exe" --configure 192.168.0.10& "C:\Program Files\TreeT\SyncServer\SyncServer.exe" --configure 192.168.0.10- アドレスだけを書くと
https://192.168.0.10:8443になります。http の現場では--scheme=httpを付けます(http://192.168.0.10:8080)。 - 先に確認だけしたいときは
--dry-runを付けます — 変わる箇所の数だけを表示し、書き込みません。 - 変更前の元ファイルは同じフォルダーに
.bakとして残ります。 - 古い版の Watchdog では、このコマンドが
watchdog.json 을 못 찾았습니다(ファイルが見つからない)で止まります — そのときは下のようにメモ帳で直します。 - コマンドでもメモ帳でも、変更後は 再起動 しないと反映されません(下の表)。 メモ帳で直す方法 — メモ帳を 管理者として 開き、そのファイルのアドレスだけを変更します。
ポートは 2 つの欄に あらかじめ入っています — httpPort(平文の入口、既定 8080)・httpsPort(セキュアな入口、既定 8443)。CMS が別のポートを使う現場だけ変更します。
https で接続する場合(例: https://192.168.0.10:8443)、caFile は 空のままにします — Watchdog が httpPort で CMS からサイト CA を一度受け取って保存し、
その フィンガープリントをログに残します。CMS 設定画面のサイト CA フィンガープリントと一度照合してください。
watchdog.json は [ で始まる リスト で、アドレスは 一番最初の { … } のまとまりの中の appCheck にあります。
その 1 行だけを変更し、ほかの値はそのままにします — 特に signerThumbprints を空にすると自動アップデートが無効になります。
以下は CMS が 192.168.0.10:8080 である現場の ファイル全体 です。
[ { "autoHide": true, "updateLock": { "file": "%APPDATA%\\TreeTview\\update.lock", "maxHoldMinutes": 10 }, "startupDelayMs": 30000, "appCheck": { "cmsUrl": "http://192.168.0.10:8080", "caFile": "", "httpPort": 8080, "httpsPort": 8443, "tokenFile": "%APPDATA%\\TreeTview\\data\\device-token.json", "intervalMs": 600000, "autoApply": true, "downloadDir": "%APPDATA%\\TreeTview\\data\\update", "signerThumbprints": [ "1CAE827334F20023B720E10A3460FEA788F2DD8B" ], "nodeHeartbeatInterval": 60000 } }, { "processName": "TreeTview.exe", "execPath": "%LOCALAPPDATA%\\TreeT\\TreeTview\\TreeTview.exe", "execArgv": [], "heartbeatTimeout": 30000, "scheduledTask": "TreeTview" }, { "processName": "SyncServer.exe", "execPath": "%ProgramFiles%\\TreeT\\SyncServer\\SyncServer.exe", "execArgv": [], "program": "SyncServer" }, { "processName": "mosquitto.exe", "execPath": "C:\\ProgramData\\TreeT\\MqttEdge\\vendor\\win64\\mosquitto.exe", "execArgv": ["-c", "mosquitto.conf"], "workingDir": "C:\\ProgramData\\TreeT\\MqttEdge", "program": "MqttEdge", "logFile": "logs/mosquitto.log" }]- パスの
\\は JSON の文法なので、2 つのまま にします。 mosquitto.exeのまとまりは、MqttEdge がない PC では Watchdog が自動的にスキップします — 削除しなくても構いません。- 保存時のエンコードは UTF-8 です。
SyncServer は cms のまとまりの 1 行です(こちらにはもともと /treetweb はありません):
"cms": { "url": "http://192.168.0.10:8080",変更後、そのプログラムを 再起動 すると反映されます。
| プログラム | 再起動の方法 |
|---|---|
| Watchdog | タスク スケジューラ → Watchdog タスク → 終了 してから 実行(管理者) |
| SyncServer | タスク スケジューラ → SyncServer タスク → 同じ方法。またはログオフしてからログオン |
| TreeTview(ビューアー) | タスク スケジューラ → TreeTview タスク → 終了 してから 実行。監視プログラムが 10 秒以内に自動で再起動することもあります |
正しく反映されたかを確認 — Watchdog は起動時に自分のログにアドレスを記録します:
C:\Program Files\TreeT\Watchdog\logs\server_<今日の日付>.log| 表示される行 | 意味 |
|---|---|
업데이트 확인 시작 (10분 주기, CMS http://192.168.0.10:8080) | ✅ そのアドレスを参照しています(周期の数値は intervalMs によって異なります) |
업데이트 확인이 설정돼 있지 않습니다(watchdog.json 의 appCheck.cmsUrl) | ❌ 項目が空です |
CMS で確認するほうが確実です — ログのアドレスが正しくても、パス(/treetweb)が間違っていれば登録されません。
機器管理(기기관리) でその PC の機器を開くと、機器設定 タブの この PC のプログラム に Watchdog・SyncServer が 1〜2 分以内に 表示され、
最終応答が 방금(たった今)〜1분 전(1 分前) であれば完了です(まだ PC に結び付いていなければ、機器管理一覧の上の PC 미확인 프로그램 の行に先に出ます)。表示されない場合は、まずアドレスを見直します。
PowerShell(管理者)で再起動する場合は、1 行ずつ:
Stop-Process -Name Watchdog -ForceStart-ScheduledTask -TaskName WatchdogStop-Process -Name SyncServer -ForceSyncServer は Watchdog がすぐに再起動します — そのため、直後にダッシュボードに 「SyncServer.exe 이(가) 죽어 있어 다시 띄웠습니다」(停止していたため再起動しました)が 1 行表示されるのは 正常 です。
インストールすると、その PC にログインしたときに自動で起動するよう 登録されます。別途行う作業はありません。
アドレスに IP を使う現場(HTTPS)
Section titled “アドレスに IP を使う現場(HTTPS)”CMS のアドレスに ドメイン を使えば公開証明書を使えるため、追加の作業はありません。 一方、IP アドレス で接続する現場ではそのサイト専用の証明書を使うため、キオスクがそれを 信頼するよう 一度 登録する必要があります。
登録は導入時に提供されるツールで行い、現場のご担当者は フィンガープリントの照合 だけを行えば十分です。