メインコンテンツまでスキップ

app.properties リファレンス

PlantPulse Edge のすべてのランタイム設定。場所:

  • コンテナモード (2026.05+): 正本はホスト /etc/kopens/conf/app.properties (bind mount、chmod 0640 root)。 /etc/kopens/app.properties はそれを指す シンボリックリンク だ — 編集はどちら側でも同じファイルになる。 ファイルがない場合はインストール時に image default で一度 seed し、その後は上書きしない(オペレーターの編集がイメージアップグレードを超えて保存される)。
  • ネイティブモード: $PE_HOME/conf/app.properties。 $PE_HOME/app/plantpulse-edge-web/WEB-INF/classes/app.properties は classpath ローディング用 runtime mirror。

コンテナモードは install.sh が初回インストール時に165行の full template を生成します (16セクション + 16〜32文字 ボックスごとのランダムパスワード)。本ページのデフォルト値は reference — 実運用ボックスの値はボックス内ファイルを直接確認してください。

変更の適用方法​

# 컨테이너 모드
sudo bash /opt/kopens/install/bin/config.sh --set edge.rest.api.auth false
sudo bash /opt/kopens/install/bin/config.sh --restart

# native 모드
sudo vi /opt/kopens/plantpulse-edge/conf/app.properties
sudo /opt/kopens/plantpulse-edge/bin/restart.sh

EDGE 識別 / 運用​

edge.id=EDGE_00303
edge.site_id=SITE_00001
edge.ttl=30
edge.always-on=false
キー意味
edge.idエッジ固有 ID (必須、サイト内で一意)
edge.site_idサイト ID — プラットフォームに事前登録されている必要がある
edge.ttlheartbeat TTL (秒)
edge.always-on起動直後に collector を開始するかどうか (false なら画面/REST で明示的に開始)

管理者アカウント​

edge.admin_login_id=${ENV:EDGE_ADMIN_USER:admin}
edge.admin_password=${SECRET:EDGE_ADMIN_PASSWORD_HASH}

管理者パスワードは PBKDF2 hash を EDGE_ADMIN_PASSWORD_HASH_FILE または EDGE_ADMIN_PASSWORD_HASH で注入してください。

Collector​

edge.collector.plc.thread_pool_count=4
edge.collector.plc.connection_reset_ms=0
edge.collector.plc.connection_warn_ms=1000
edge.collector.plc.address_scan_thread_warn_ms=200
edge.collector.plc.address_map_scan_thread_warn_ms=5000
キー意味
thread_pool_countOPC ごとの read ワーカープールサイズ
connection_reset_ms接続自動リセット周期 (0 = off)
connection_warn_ms接続時間がこの値を超えると WARN ログ
address_scan_thread_warn_ms単一アドレス read 時間しきい値
address_map_scan_thread_warn_ms一周期全体の read 時間しきい値

テスト/デモデータ​

内蔵 OPCUA/MODBUS シミュレーターの自動起動はサポートしていません。テスト/デモデータは外部 plantpulse-simulator またはテストタグを使用してください。

診断送信​

edge.diagnostic.send.enabled=true

エッジ自身の診断(システムメトリクスなど) の platform 送信トグル。

OPC-UA サーバー (自ノード発行)​

opc.ua.server.domain=127.0.0.1
opc.ua.server.tcp.port=12000
opc.ua.server.tls.port=12443
opc.ua.server.user=${ENV:OPCUA_USER:edge}
opc.ua.server.password=${SECRET:OPCUA_PASSWORD}
opc.ua.server.keystore.password=${ENV:CERT_PASS:}
opc.ua.server.anonymous=yes
opc.ua.server.security.none=yes

エッジが自らの OPC-UA サーバー として動作し、収集したタグをノードとして公開します。外部 SCADA が OPC-UA クライアントとして 接続して read 可能。 anonymous=yes なら匿名接続を許可(旧誤字キー ananymous は新キーがない場合のみ読む)、security.none=yes ならセキュリティなし(None/None)のセッションエンドポイントを TCP ポートに開く。どちらもデフォルト yes。

TSE (Time Series Engine)​

tse.server.host=127.0.0.1
tse.server.port=7800
tse.server.user=tse
tse.server.password=tse123!

任意。別の時系列エンジン (plantpulse-timeseries-engine) と連携する場合に使用。

MQTT 発行​

mqtt.enable=true
mqtt.server.host=127.0.0.1
mqtt.server.port=1883
mqtt.server.user=${ENV:MQTT_USER:edge}
mqtt.server.password=${SECRET:MQTT_PASSWORD}
mqtt.server.topic=/edge/point
  • mqtt.enable=true なら MQTTQueueTransfer がキュー処理時に publish。
  • 単一トピック (/edge/point) にすべての Point が流れます。

Sparkplug B​

sparkplug.enable=false
sparkplug.group.id= # 비우면 site_id
sparkplug.edge.node.id= # 비우면 EdgeContext.id
sparkplug.device.strategy=per-opc # per-opc | single (현재 per-opc 만 구현)
sparkplug.qos=0 # DDATA 빈번 → 0 권장
sparkplug.bdseq.path= # 비우면 ./data/sparkplug/bdseq
sparkplug.alias.enable=true # Phase 2 토글 (현 무영향)
sparkplug.cmd.enable=false # Phase 3 토글 (현 무영향)

ブローカー接続情報は mqtt.server.* をそのまま再利用します。詳細は Sparkplug ドキュメント を参照。

Plantpulse Server API​

server.host=192.168.0.41
server.port=80
server.ssl=false
server.username=
server.api_key=${SECRET:PLANTPULSE_SERVER_API_KEY}
server.messaging=MQTT
キー意味
server.host/portプラットフォーム API ホスト
server.sslHTTPS かどうか
server.api_keyプラットフォーム API token 認証。 PLANTPULSE_SERVER_API_KEY_FILE 推奨
server.messagingMQTT または API。 MQTT なら APIQueueTransfer が補助役割

開発モード​

dev.mode=EDGE

EDGE(デフォルト) と STANDALONE をサポートします。 PLATFORM は拒否されます。

コマンド/イベントハンドラー / SQL パス​

app.es.scan.package=plantpulse.app
app.sql.path=classpath:resouces/sql
誤字 (互換性維持)

app.sql.path の resouces は誤字ですが、ディレクトリも同じ名前 (/WEB-INF/resouces/sql/) で 維持されているため動作します。変更時は両方を同時に修正する必要があります。

API 使用​

api.use=true

REST コントローラー有効化トグル。

Cassandra DB​

app.db.host=127.0.0.1
app.db.port=9042
app.db.username=${ENV:CASSANDRA_USER:cassandra}
app.db.password=${SECRET:CASSANDRA_PASSWORD:cassandra}
app.db.keyspace=pe
app.db.replication=1
app.db.scheme_ddl=/WEB-INF/db/scheme.cql

oltp.cassandra.driver=plantpulse.cassandra.jdbc.CassandraDriver
oltp.cassandra.url=jdbc:cassandra://127.0.0.1:9042/pe
oltp.cassandra.user=${ENV:CASSANDRA_USER:cassandra}
oltp.cassandra.password=${SECRET:CASSANDRA_PASSWORD:cassandra}
キー意味
app.db.*Cassandra ネイティブドライバー (com.datastax.oss.driver) 接続
oltp.cassandra.*JDBC アダプター接続 (アプリの一部コードが使用)
app.db.scheme_ddl起動時に自動適用する DDL ファイルパス

ホスト / ユーザー / パスワードは両方一致させる必要があります。

ファイルアップロード​

file.upload.dir=/tmp/

ファイルアップロードコンポーネントが使用する一時パス。運用環境では別ディレクトリ推奨。


推奨変更チェックリスト​

項目変更理由
edge.admin_passwordEDGE_ADMIN_PASSWORD_HASH_FILE で PBKDF2 hash を注入
mqtt.server.password / opc.ua.server.passwordMQTT_PASSWORD_FILE / OPCUA_PASSWORD_FILE で注入
app.db.passwordCASSANDRA_PASSWORD_FILE で注入
sparkplug.bdseq.path絶対パス推奨 (/opt/kopens/.../data/sparkplug/bdseq)
server.host / passwordPlantpulse Platform 接続情報