環境変数リファレンス
PlantPulse のすべての設定は 環境変数一箇所 から始まります。このページはインストール・運用時に出会う変数をカテゴリ別に整理したリファレンスです。
このページは インフラ/デプロイ環境変数(
PP_*·DOCKER_PP_*) を扱います。アプリケーション動作プロパティ(engine.*,websocket.*など)は プロパティリファレンス を参照してください。
1. 設定ファイルはどこにありますか?
プラットフォームは Docker Compose スタック として動作し、値の 定義元は2つ です。
| 定義元 | 何がここにあるか | 誰が読むか |
|---|---|---|
plantpulse-platform-docker/bin/env.sh | ホストで決まる値 — 資格情報のデフォルト値、docker ランタイム、ネットワーク、ホストで 計算される リソース値 | ホストの運用スクリプト |
plantpulse-platform-docker/compose/docker-compose.yml | コンテナが実際に見る値 | コンテナ |
env.sh を読みませんアプリ6つ(plantpulse-server-web · plantpulse-batch-web · plantpulse-warehouse · plantpulse-plugin-opcua-server · plantpulse-plugin-aasx-server · plantpulse-ha)は env.sh を source しません。アプリが見る定義元は compose 一つだけです。
つまり env.sh のみに存在し compose にない名前は、アプリに 届かず、アプリは jar/WAR 内蔵のデフォルト値で動作します。実際にデータレイクだけ識別子を変えたサイトで、アプリ5つが古い名前を使い続けた事故がありました(2026-08-29)。
ティアごとに値が決定される方式が異なります。
| ティア | 何が値を決めるか |
|---|---|
plantpulse-datalake | compose が渡した値 → コンテナの pd が ${VAR:-기본값} として受け取ります。渡した値が勝ちます |
| アプリ6つ | compose が渡した環境変数が jar/WAR 内蔵のデフォルト値を上書きします |
plantpulse-certs | compose の PP_TLS_* のみを見ます。ファイルを source しません |
優先順位 — 何が何に勝つか
ホスト側では bin/env.sh が上から下へ回る順序がそのまま優先順位になります。
| 優先順位 | 出所 | 勝つ理由 |
|---|---|---|
| 1 (最上位) | /etc/kopens/plantpulse-platform.env (シークレットサイドカー) | export VAR=값 無条件代入 のためシェル export も上書きします |
| 2 | /etc/kopens/platform.node.env (ノード別) | サイドカーの次に source され、同じく無条件代入 |
| 3 | 呼び出しシェルの export | デフォルト値の :- に勝ちます — ただし 1・2 がその名前を記述していない場合のみ |
| 4 (最下位) | bin/env.sh の ${VAR:-기본값} | unset の場合のみ |
インストールが終わったノードで PP_PG_PASSWORD=새값 bin/up.sh は 静かに無視されます。 サイドカーがすでにその名前を保持しているからです。値を変える方法は bin/passwd.sh / bin/rotate-secret.sh のみです。
🔑 秘密値の正本は /etc/kopens/ の下にある
サービスアカウントのパスワード(PP_PG_PASSWORD · PP_CASSANDRA_PASSWORD · PP_MQ_PASSWORD など)と API キーの実際の値は repo ツリー外 のサイドカーファイルにあります。
| ファイル | 状態 |
|---|---|
/etc/kopens/plantpulse-platform.env | 現行正本 — platform · ai · studio 3製品共通規約(plantpulse-<product>.env)、権限 0600 |
/opt/kopens/plantpulse-platform.env | 旧パス (2026-08-25 ~ 08-29 の間のみ存在) — 読みも書きもしません。残っていればインストールスクリプトが正本へ戻します |
ls -l /etc/kopens/ で正本が存在するか先に確認してください。
サイドカーが bin/env.sh に勝ちます。 env.sh は先頭で先にサイドカーを source し、それ以下の値がすべて ${VAR:-기본값} 形式だからです。そのため env.sh のパスワードだけを直しても 何も起こりません — サイドカーの古い値が引き続き勝ちます。
install.sh は bin/env.sh のデフォルト値をそのままサイドカーに載せます。ですから コミッショニング時に必ず差し替える 必要があります → 初期パスワード
compose はパスワードを ${PP_X:?} として要求するため、値が空であればスタックが「半分だけ設定された状態で起動」することなく そもそも立ち上がりません。
サイドカーを直すだけでは反映は完了しません。PostgreSQL · Cassandra のように サーバー側アカウントが正本 となる値はサーバー側も併せて変える必要があり、順序を誤るとプラットフォームが起動しません。
専用手順を使ってください — パスワード変更(クレデンシャルローテーション)。コミッショニング時に一度 変更して終わる作業です。
🔑 マークは 秘密値 です。git・イシュー・チャットに原文を入れないでください。
1.5 コンテナランタイム・ホストリソース (DOCKER_*)
bin/env.sh が決める値です。以下のリソース値は 固定デフォルト値ではなくホストを見て計算されます — 定数を使うと小規模ホストでは起動自体が拒否されたり(--cpus が実コア数より大きいと docker が拒否します)、起動中に OOM-kill されるためです。ボックスごとに指定した値が常に勝ちます。
| 変数 | どう決まるか |
|---|---|
DOCKER_CMD | docker (podman も可能) |
DOCKER_REGISTRY | docker.kopens.io/pp — スタックイメージ8つのレジストリ prefix |
PP_IMAGE_TAG | latest。リリース時には 2026.08 のような固定タグを推奨します |
DOCKER_PP_CPUS | nproc (読み取り失敗時 8) |
DOCKER_PP_CLUSTER_CORES | DOCKER_PP_CPUS - 2、最小4・最大30。コンテナに PP_CLUSTER_CORES として渡されます |
DOCKER_PP_MEMORY | ホスト RAM の 90%、最小 8G |
DOCKER_DATALAKE_MEMORY | 80G。ホストがそれより小さければ RAM の90%(2026-09-04 に 64G から引き上げられました — アーカイバの spark-submit がこのコンテナ内で動くようになり、64g 上限で OOM が発生したためです。実測ピーク 63.9G) |
DOCKER_PW_MEMORY | DOCKER_DATALAKE_MEMORY と同じ値 — ワーカーがデータレイクと同じイメージを使うため同じ予算を与えます |
DOCKER_PP_DATA_DISK_NAME | / を支える実ディスクを findmnt + lsblk で逆追跡(LVM/dm も物理ディスクまで)。失敗時 sda |
DOCKER_PP_EXTERNAL_IP | デフォルト空値。 NAT 環境でのみ実際の公開IP |
DOCKER_PP_EXTERNAL_IP に無効な IP を入れないでくださいこの値は PP_SERVICE_IP を経由して TLS 証明書の SAN に入ります。形式が正しくない IP が一つでも混じると openssl が拡張ファイル全体を拒否し、証明書が一枚も生成されなくなります。
ネットワーク
| 変数 | デフォルト値 | 説明 |
|---|---|---|
DOCKER_PP_NETWORK | pp-net | docker network 名 |
DOCKER_SUBNET | 10.99.0.0/24 | サブネット(他のコンテナ網と重ならないように) |
DOCKER_GATEWAY | 10.99.0.1 | ゲートウェイ |
DOCKER_PP_IP | 10.99.0.100 | データレイクの固定 IP |
アプリ別メモリ上限 — compose が決めます
アプリごとに mem_limit を別々に持つことが コンテナ分離の第一の目的(OOM 隔離) です。あるアプリが上限に達しても他のアプリとインフラは生き続けます。
| 変数 | デフォルト値 | サービス |
|---|---|---|
DOCKER_SERVER_MEMORY / DOCKER_SERVER_HEAP | 16g / 12g | plantpulse-server-web |
DOCKER_BATCH_MEMORY / DOCKER_BATCH_HEAP | 4g / 3g | plantpulse-batch-web |
DOCKER_WAREHOUSE_MEMORY | 8g | plantpulse-warehouse |
DOCKER_OPCUA_MEMORY | 4g | plantpulse-plugin-opcua-server |
DOCKER_AASX_MEMORY | 4g | plantpulse-plugin-aasx-server |
DOCKER_HA_MEMORY | 2g | plantpulse-ha |
DOCKER_DATALAKE_MEMORY | 80g | plantpulse-datalake |
ボリューム
| 変数 | デフォルト値 | 用途 |
|---|---|---|
DOCKER_PP_DATA_VOLUME | pp-data | データ永続保存 |
DOCKER_PP_TEMP_VOLUME | pp-temp | 一時データ |
DOCKER_PP_BACKUP_VOLUME | pp-backup | バックアップストレージ |
DOCKER_PP_SECURITY_VOLUME | pp-security | TLS 資材 |
DOCKER_PP_PROXY_CERTS_VOLUME | pp-proxy-certs | プロキシ証明書 |
install.sh 一回限りのオプション
| 変数 | 効果 |
|---|---|
SKIP_OS=1 | OS セットアップ省略 |
SKIP_LOGIN=1 | レジストリログイン省略 |
SKIP_FW=1 | ファイアウォール設定省略 |
DOCKER_DATA_DIR | Docker data-root パス(デフォルト /data1/docker-data) |
2. 最低限これだけは確認してください
新規単一サーバーインストールで実際に触るものはわずかです。リソース値はインストールがホストを見て計算するためです。
| 何を | どこで | 備考 |
|---|---|---|
🔑 各種 *_PASSWORD · API キー | bin/passwd.sh / bin/rotate-secret.sh | コミッショニング時に 必ず差し替え。ファイル編集では変わりません |
PP_LANG | bin/env.sh | 韓国語運用であれば ko (デフォルト en) |
PP_TZ | bin/env.sh | 韓国運用は Asia/Seoul を維持 |
DOCKER_PP_EXTERNAL_IP | bin/env.sh | NAT 環境の場合のみ。 それ以外は空値のまま |
DOCKER_DATALAKE_MEMORY | bin/env.sh | デフォルト 80G。ホストが小さければ自動的に下がります |
PP_* は「コンテナが見る名前」ですPP_HOST_IP · PP_DATA_DIR · PP_CLUSTER_CORES のような値はコンテナ内部で通用する名前であり、ホストでその値を決めるのは compose と bin/env.sh の DOCKER_* です(§1.5)。例えばコア数は DOCKER_PP_CLUSTER_CORES が計算してコンテナに PP_CLUSTER_CORES として渡されます。
ホストで PP_CLUSTER_CORES だけを直しておいて反映されることを期待しないでください — 渡さなければ 16 vCPU のボックスが存在もしない 30 コアを信じて Kyuubi が永遠に立ち上がりません。
3. プラットフォーム基本 / ネットワーク / リソース
| 変数 | デフォルト値 | 説明 |
|---|---|---|
PP_HOME | /opt/kopens/plantpulse-platform | インストールルート(コンテナ内部同一) |
PP_SCHEME | PP | デプロイ識別スキーム |
PP_MODE | MASTER | ノード役割(MASTER / ワーカー) — クラスタリング(水平スケール)軸 |
PP_TIER | FULL | このノードが起動する 階層ゲート(FULL / DATALAKE / APP) — PP_MODE と直交。FULL=インフラ+アプリオールインワン、DATALAKE=インフラのみ、APP=アプリのみ(リモートデータレイク接続)。詳細は 2ノード分離インストール |
PP_OPTIONS | {} | 個別サービス on/off 専用 JSON。階層ゲートは PP_TIER に移管(下記 §3.3 参照) |
PP_HOST_IP | 127.0.0.1 | このノードの IP |
PP_SERVICE_IP | 127.0.0.1 | サービスバインド IP |
PP_MASTER_IP | 127.0.0.1 | ワーカー/APP ティアが見る マスター(データレイク) IP。Kafka advertised.listeners のソースでもある。DATALAKE ティアインストール時に未指定であればホスト IP に自動検出 |
PP_DATALAKE_ANCHOR | (派生) | データストア HOST 5種のデフォルト IP アンカー。APP ティア=PP_MASTER_IP(リモートデータレイク)、それ以外(FULL/DATALAKE)=PP_HOST_IP(自分の IP)。直接設定しない派生値(下記 §3.2 参照) |
PP_PUBLIC_IP | 127.0.0.1 | 外部公開 IP(NAT 環境) |
PP_DATA_DIR | /data1/pp-data | データルート |
PP_TEMP_DIR | /data1/pp-temp | 一時ファイルルート |
PP_BACKUP_DIR | /data1/pp-backup | バックアップルート |
PP_DATA_DISK_NAME | sdb | データディスクデバイス名 |
PP_CLUSTER_CORES | 30 | 使用コア数 |
PP_CLUSTER_MEMORY_BY_CORE | 2G | コアあたりメモリ割り当て |
PP_LANG | en | デフォルト言語 |
PP_TZ | Asia/Seoul | タイムゾーン(全 java プロセスに自動適用) |
3.1 PP_TIER — 階層起動ゲート
PP_TIER はこのノードが どの階層を起動するか を決めるゲートです。クラスタリング軸である PP_MODE(MASTER/WORKER)とは完全に独立しています。
PP_TIER | 起動階層 |
|---|---|
FULL (デフォルト) | インフラ + アプリケーション(単一ボックスオールインワン — 未指定時は既存インストールと同一) |
DATALAKE | インフラ階層のみ(Cassandra/PG/Kafka/MQTT/Redis/MinIO/Spark/Hive/TSE/CEP/Data Gateway/Temporal/Kestra/Monitor) |
APP | アプリケーション階層のみ(Server/Batch/Warehouse/OPC-UA/AASX/HA — リモートデータレイク接続) |
データレイク/アプリケーションを2台のボックスに分ける手順は 2ノード分離インストール を参照してください。
3.2 PP_DATALAKE_ANCHOR — データストアアンカー(派生値)
概念:
PP_REDIS_HOST·PP_POSTGRES_HOST·PP_CASSANDRA_HOST·PP_MINIO_HOST·PP_TSE_HOST·PP_TEMPORAL_HOST·PP_KESTRA_HOST·PP_DATA_GATEWAY_HOST·PP_CEP_HOSTのデフォルトホストはすべて${PP_DATALAKE_ANCHOR}に解決されます。
APPティアでは、ストレージがリモート(データレイクノード)であるためPP_DATALAKE_ANCHOR = PP_MASTER_IP。- それ以外(
FULL/DATALAKE)では、自分の IP にバインドするためPP_DATALAKE_ANCHOR = PP_HOST_IP。この値は
PP_TIERから自動的に派生するため直接設定しません。APPノードはPP_MASTER_IPだけ指定すれば、すべてのデータストアホストが自動的にデータレイクを指すようになります。
3.3 PP_OPTIONS — 個別サービス on/off
PP_OPTIONS は 個別コンポーネントをオン・オフする JSON です。デフォルト値 {} であり、未指定のキーはすべて true(有効)とみなされます。階層単位の有効化(旧 use-infra / use-app)は PP_TIER に移管されました。
例)外部管理型 Redis を使用して内蔵 Valkey をオフにするには:
export PP_OPTIONS='{"enable-valkey":false}'
利用可能な enable-* キー(すべてデフォルト true):
enable-messaging · enable-valkey · enable-postgres · enable-cassandra · enable-spark · enable-minio · enable-tse · enable-cep · enable-workflow · enable-data-gateway · enable-sql · enable-hive · enable-gravitino · enable-kyuubi · enable-grafana · enable-monitor
4. データストア
| 変数 | デフォルト値 | 説明 |
|---|---|---|
PP_REDIS_HOST / PP_REDIS_PORT | ${PP_DATALAKE_ANCHOR} / 6379 | Valkey/Redis(TLS リスナー 6380) |
PP_REDIS_USER / 🔑 PP_REDIS_PASSWORD | redis / — | Redis アカウント |
PP_POSTGRES_HOST / PP_POSTGRES_PORT | ${PP_DATALAKE_ANCHOR} / 5432 | PostgreSQL 18(Percona) |
PP_PG_USER / 🔑 PP_PG_PASSWORD | plantpulse / — | PostgreSQL アカウント |
PP_CASSANDRA_HOST / PP_CASSANDRA_PORT | ${PP_DATALAKE_ANCHOR} / 9042 | Cassandra |
PP_CASSANDRA_USER / 🔑 PP_CASSANDRA_PASSWORD | cassandra / — | Cassandra アカウント |
PP_STORAGE_PORT | 9042 | ストレージ階層クライアントが再利用する Cassandra ポート |
PP_MINIO_HOST / PP_MINIO_PORT | ${PP_DATALAKE_ANCHOR} / 9000 | MinIO オブジェクトストレージ |
PP_MINIO_USER / 🔑 PP_MINIO_PASSWORD | minio / — | MinIO アカウント |
PP_MINIO_BUCKET | plantpulse | デフォルトバケット |
PP_DB_NAME | pp | PostgreSQL データベース名 |
PP_KEYSPACE | pp | Cassandra キースペース名 |
PP_HIVE_DB | hive-metastore-230 | Hive メタストア DB |
5. メッセージング
| 変数 | デフォルト値 | 説明 |
|---|---|---|
PP_MQ_USER / 🔑 PP_MQ_PASSWORD | mq / — | Kafka・MQTT 共用アカウント(Kafka 専用アカウントはありません) |
PP_TOPIC_PREFIX | pp | Kafka トピック接頭辞(pp-tag-point など) |
PP_KAFKA_HOST / PP_KAFKA_PORT | PP_MASTER_IP / 9092 | Kafka ブローカー |
PP_KAFKA_TLS_PORT | 9094 | Kafka 外部 TLS |
PP_KAFKA_CONTROLLER_PORT | 9093 | Kafka KRaft コントローラー |
PP_MQTT_HOST / PP_MQTT_PORT | PP_MASTER_IP / 1883 | MQTT(HiveMQ) |
PP_MQTT_TLS_PORT | 1884 | MQTT TLS |
ブラウザリアルタイムプッシュが SSE に変わり、STOMP ブローカーがデータレイクイメージから除外されました。PP_STOMP_* 変数と 61000/61004 ポートは もはやサービスされていません。 古いファイアウォールルールに残っていれば整理してください。
6. 処理・時系列・分析・ワークフロー
| 変数 | デフォルト値 | 説明 |
|---|---|---|
PP_CEP_HOST / PP_CEP_PORT / PP_CEP_TLS_PORT | ${PP_DATALAKE_ANCHOR} / 7400 / 7401 | CEP サーバー |
PP_CEP_PROTOCOL | http | CEP 接続プロトコル。分散/コンテナは https 推奨 |
PP_CEP_CONNECT_PORT | (派生) | server-web→CEP 接続ポート。プロトコルに自動整列(http→7400、https→7401)。明示すればその値が優先 |
PP_DATA_GATEWAY_HOST / PP_DATA_GATEWAY_PORT / PP_DATA_GATEWAY_TLS_PORT | ${PP_DATALAKE_ANCHOR} / 5500 / 5501 | Data Gateway |
PP_DATA_GATEWAY_PROTOCOL | http | DGW 接続プロトコル(内部 loopback デフォルト http) |
PP_DATA_GATEWAY_CONNECT_PORT | (派生) | DGW 接続ポート。プロトコルに自動整列(http→5500、https→5501)。明示すればその値が優先 |
PP_TSE_HOST / PP_TSE_PORT / PP_TSE_TLS_PORT | ${PP_DATALAKE_ANCHOR} / 7800 / 7801 | 時系列エンジン(TSE)。サーバーは http 7800・https 7801 両方 listen |
PP_TSE_PROTOCOL | http | TSE クライアント接続プロトコル。内部区間通信のため平文 http がデフォルト — TLS マスタースイッチ(PP_TLS_ENABLED)と分離(2026-08) |
PP_TSE_CONNECT_PORT | (未設定) | env.sh が export しないオペレータ明示オーバーライドフック。テンプレートが ${PP_TSE_CONNECT_PORT:7800} フォールバックとして消費 |
PP_TSE_JDBC_SCHEME | ts | JDBC scheme。平文 ts がデフォルト(jdbc.tse.url テンプレートは ts ハードコード) |
PP_TSE_USER / 🔑 PP_TSE_PASSWORD | tse / — | TSE アカウント |
PP_ANALYTICS_USER / 🔑 PP_ANALYTICS_PASSWORD | spark / — | 分析(Spark/Kyuubi クライアント)アカウント。Kyuubi 内部メタストア(PP_HIVE_*)とは分離された別の資格情報 |
PP_HIVE_HOST / PP_HIVE_PORT | PP_MASTER_IP / 9083 | Hive メタストア |
PP_HIVE_USER / 🔑 PP_HIVE_PASSWORD | hive / — | Hive アカウント |
PP_SPARK_HOST / PP_SPARK_PORT | PP_MASTER_IP / 7077 | Spark マスター |
PP_KYUUBI_PORT | 10000 | Kyuubi SQL ゲートウェイ |
PP_GRAVITINO_USER / 🔑 PP_GRAVITINO_PASSWORD | gravitino / — | Gravitino カタログ |
PP_TEMPORAL_HOST / PP_TEMPORAL_PORT | ${PP_DATALAKE_ANCHOR} / 7233 | Temporal エンジン(Web UI 8233) |
PP_TEMPORAL_USER / 🔑 PP_TEMPORAL_PASSWORD | temporal / — | Temporal アカウント |
PP_KESTRA_HOST / PP_KESTRA_PORT | ${PP_DATALAKE_ANCHOR} / 8380 | Kestra スケジューラー |
PP_KESTRA_ADMIN_EMAIL / 🔑 PP_KESTRA_ADMIN_PASSWORD | admin@plantpulse.io / — | Kestra 管理者 |
PP_KESTRA_DB_USER / 🔑 PP_KESTRA_DB_PASSWORD | kestra / — | Kestra メタ DB |
7. プラグイン・観測・Web 階層
| 変数 | デフォルト値 | 説明 |
|---|---|---|
PP_OPCUA_PORT / PP_OPCUA_TCP_PORT | 11004 | OPC-UA opc.tcp プロトコルポート |
PP_OPCUA_TLS_PORT | 11005 | OPC-UA TLS |
PP_AAS_V3_PORT | 8090 | AAS(BaSyx V3) API。UI は 8091、Registry/AAS ポート(4800/4801)はコードに固定されており env では変わりません |
PP_GRAFANA_PORT | 3000 | Grafana ダッシュボード |
PP_GRAFANA_ADMIN_USER / 🔑 PP_GRAFANA_ADMIN_PASSWORD | admin / — | Grafana 管理者 |
PP_WEBSOCKET_PORT / PP_WEBSOCKET_PORT_SSL | 8000 / 8004 | リアルタイムプッシュ WebSocket |
PP_WEBSOCKET_USER / 🔑 PP_WEBSOCKET_SERVER_PASSWORD | ws / — | WebSocket サーバーアカウント |
PP_MAIL_SMTP_PORT | 25 | アラーム/レポートメール送信 SMTP |
PP_MAIL_SMTP_USER / 🔑 PP_MAIL_SMTP_PASSWORD | webmaster@kopens.com / — | SMTP アカウント |
PP_MAIL_SMTP_AUTH / PP_MAIL_SMTP_STARTTLS | false / false | SMTP 認証・STARTTLS |
8. TLS / SSL
| 変数 | デフォルト値 | 説明 |
|---|---|---|
PP_TLS_ENABLED | true | TLS マスタースイッチ — サービスクライアントのデフォルトプロトコルを決定 |
PP_DEFAULT_PROTOCOL | (派生: PP_TLS_ENABLED) | サービスクライアントデフォルトプロトコル。PP_TLS_ENABLED=true→https、false→http。TSE などがこの値を継承し、プロトコル/ポートがスイッチと矛盾しないようにする |
PP_TLS_CERT_DIR | /var/security/plantpulse | 証明書ディレクトリ |
PP_TLS_DOMAIN | plantpulse.io | 証明書ドメイン |
🔑 PP_TLS_KEYSTORE_PASSWORD / 🔑 PP_TLS_TRUSTSTORE_PASSWORD | — | keystore/truststore パスワード(全ノード同一である必要あり) |
PP_TLS_VALID_DAYS | 3650 | 証明書有効期間(日) |
PP_TLS_SAN_IPS | PP_HOST_IP,…,127.0.0.1 | 証明書 SAN IP。運用では外部接続 IP(例:パブリック IP)を必ず含める |
PP_TLS_SAN_DNS | localhost,<hostname>,<domain> | 証明書 SAN DNS |
PP_TLS_NODE_NAMES | master worker-1 … worker-5 | クラスタノード名 |
PP_TLS_FORCE_REGENERATE | false | true 時に証明書を強制再生成 |
9. API キー / AI ゲートウェイ
すべて開発用デフォルト値(fallback)があります。運用/顧客納品時には Docker
-eまたはexportで必ず差し替えてください。
| 変数 | 説明 |
|---|---|
🔑 PP_API_KEY | プラットフォーム内部 API キー(サーバー ↔ エッジエージェント認証) |
🔑 PP_DATA_GATEWAY_API_KEY | server-web → data-gateway JDBC 認証 |
🔑 PP_CEP_API_KEY | server-web → CEP サーバー X-API-Key(CEP サーバー cep.api.key と一致する必要あり) |
🔑 PP_FLOW_WEBHOOK_API_KEY | Flow Engine 外部 Webhook 認証 |
PP_AI_OPENAI_ENABLED | AI ゲートウェイ有効化(デフォルト false) |
PP_AI_OPENAI_BASE_URL | OpenAI 互換 LLM プロキシ URL(デフォルト https://api.openai.com) |
🔑 PP_AI_OPENAI_API_KEY | LLM API キー(PP_AI_OPENAI_ENABLED=true の場合に必要) |
PP_AI_OPENAI_MODEL | 使用するモデル(デフォルト gpt-5-mini) |
10. 変更後の適用手順
cd /opt/kopens/plantpulse-platform-docker/bin
vi env.sh # 호스트 쪽 값 (DOCKER_* · PP_LANG · PP_TZ 등)
./restart.sh # 스택 재시작 — 준비될 때까지 대기 (종료 코드 0 = 쓸 수 있다)
コンテナが見る値を変える必要があれば compose/docker-compose.yml を直した後、同じ方法で再起動します。設定テンプレートはホストの /etc/kopens/conf にバインドマウントされているためホストから直接編集でき、再インストールしても保持されます。
変数を変えたのに反映されない場合は順番に確認してください。
| 確認 | 内容 |
|---|---|
| ① サイドカーが勝っていないか | /etc/kopens/plantpulse-platform.env に同じ名前があれば env.sh もシェル export も負けます → 優先順位 |
| ② アプリに届く名前か | アプリ6つは env.sh を読みません。compose にないとアプリに届きません |
| ③ 再起動したか | ロケール・タイムゾーンを含め、ほとんどの値は 起動時にのみ 反映されます |
| ④ パスワードか | パスワードはファイル編集では変わりません → パスワードローテーション |
詳しい手順は スタートガイド を参照してください。
env-reset.sh をコンテナ内で実行しないでくださいデータレイクコンテナ内の env-reset.sh は、すべての PP_* を unset した後に env.sh を再度読み込む 開発専用ツール です。ここで実行すると compose が注入した値まで消え、イメージ内蔵のデフォルト値に戻ってしまいます。