パスワード · API キー変更
Studio が使用する DB アカウントと AI キーは、初期値がすべてのインストールで同じです。コミッショニング時に一度変更して 終わりです。 その後は変更する必要がありません。
変更ツールは bin/passwd.sh ひとつです。platform · ai · studio の 3 製品が同じ名前、
同じ使い方で持っています。
/etc/kopens/plantpulse-studio.env ひとつであるこのプロダクトの秘密は /etc/kopens/plantpulse-studio.env にあります。インストールディレクトリ
(/opt/kopens/plantpulse-studio-docker) 内ではなく repo ツリーの外にあり、権限は 0600
です。
インストールディレクトリルートの .env は旧パスです。現在は誰も読みません — ここを修正してもスタックは変わりません。
2026-08-16 より前は passwd.sh が /etc/kopens/plantpulse-studio.env に書き込み、
compose とその他のスクリプトは repo ルートの .env を読み込みしていました。そのため rotation が静かに無効になり、passwd.sh は成功したと言うのにスタックは旧値で動き続けていました
(ANTHROPIC_API_KEY · AI_API_KEY がその状態でした)。旧パスに書き込まないでください。
アプリログインアカウントはこのドキュメントの対象ではありません
2つを混同しないでください。
| 内容 | 変更場所 | |
|---|---|---|
| アプリログインアカウント | 人が Studio にログインするアカウント | アプリ内の環境設定 → ユーザー管理 |
| インフラ · API キー | バンドル PostgreSQL アカウント、AI キー | このドキュメント — bin/passwd.sh |
.env でアプリアカウントを変更しようとしないでください — 無効な値になりますStudio サーバーはログイン時に ①DB → ②環境変数 の順で確認します。DB にアカウントが見つかるとそこで終わるため、その後に env の STUDIO_LOCAL_USERS を修正しても効果がありません。
アプリアカウントは環境設定 → ユーザー管理で作成し、ロールを割り当て、パスワードをリセットします。
詳細は 環境設定(管理者) のユーザー管理セクションを
参照してください。ソースが 환경변수 のアカウントは画面で修正・削除できません。
ブートストラップアカウント(STUDIO_LOCAL_USERS)は初回アクセス用の一時的な手段です。運用アカウントが準備できたら
削除して再起動してください。
何を変更できるか
まずリストを確認します。引数なしで実行しても同じです。
cd /opt/kopens/plantpulse-studio-docker
bin/passwd.sh --list
キー · ID · 現在値(先頭 3 文字のみ) · 対象 · その値がどこにあるかが表示されます。
全体の値を確認する必要がある場合は --list --show です。
| キー | 内容 | どのように変更されるか |
|---|---|---|
PG_PASSWORD | バンドル PostgreSQL | サーバーアカウントが正本 — ALTER ROLE (psql) |
ANTHROPIC_API_KEY | Anthropic API キー | ファイル — agent-server 起動時にロード |
AI_API_KEY | OpenAI 互換 API キー | ファイル — agent-server 起動時にロード |
キー名は環境変数名そのものです。 postgres のようなエイリアスはありません — エイリアスを使うと
名前と変数を結びつけるテーブルを別途管理する必要があり、そのテーブルは必ず実際と齟齬が生じるためです。
PG_PASSWORD がリストにない場合は正常ですPG_PASSWORD はバンドル PostgreSQL を起動するインストールでのみこのプロダクトが所有しています
(COMPOSE_PROFILES に bundled-pg がある場合)。プラットフォーム・共有 PG を使用するインストールの場合、その
パスワードは他の所有物であるためリストから除外され、代わりにその事実が通知されます。
プラットフォームの PP_* もここにはありません。入力した場合、タイプミスと同じように拒否されます。
変更する
値を省略してプロンプトで入力することが推奨される方法です。 パスワードが ps 出力やシェル
ヒストリに残りません。2回入力を受け付けて一致を確認します。
bin/passwd.sh PG_PASSWORD
値を引数として直接指定することもできます。
bin/passwd.sh ANTHROPIC_API_KEY=<new-value>
複数の値を一度に渡すと再起動が 1 回にまとめられます。 コミッショニング時はこの形式を使用してください。
bin/passwd.sh PG_PASSWORD=<new-password> ANTHROPIC_API_KEY=<new-value>
何が変更されるかだけを確認してなにも変更しない場合は --dry-run です。
bin/passwd.sh --dry-run PG_PASSWORD=<new-password>
実行すると変更対象と影響をまず表示してから [y/N] で確認を受けます。自動化では
確認をスキップするには --yes です。
スクリプト・cron のようにターミナルがない環境で値を省略するとプロンプトを表示できず、エラーで終了します。その場合は KEY=<value> 形式で指定してください。
実行されると何が起こるか
順序が決まっています。
| 順序 | 処理内容 |
|---|---|
| 1 | サーバーアカウントが正本であることから — PG_PASSWORD なら PostgreSQL 内でアカウントをまず変更します |
| 2 | /etc/kopens/plantpulse-studio.env を新しい値で更新します (権限 0600 を維持) |
| 3 | docker compose up -d --wait — コンテナを再作成して新しい値を起動します |
サーバー側をまず変更してファイルを合わせる順序です。逆の順序にするとサーバーは旧値なのにファイルは新値となり、 再起動までの間、接続が断たれたままになります。
この間 Studio へのアクセスが切断されます。 メンテナンスウィンドウで実行してください。
途中で失敗した場合
| 段階 | 状態 | 対応 |
|---|---|---|
| 1段階 (PostgreSQL アカウント変更) | ファイルは変更せず中断します | bin/status.sh でバンドル PG が起動しているか確認してから再実行 |
| 3段階 (再起動) | ファイルはすでに新値です | bin/status.sh で状態を確認して起動失敗の原因を対処 |
PG_PASSWORD を手動で修正しないでくださいバンドルモードでファイルの PG_PASSWORD だけを変更すると、既存データディレクトリのアカウントと矛盾してスタックが起動しません。passwd.sh がサーバーアカウントをまず変更する理由がこれです。
確認
bin/passwd.sh --list
現在値の先頭 3 文字が変更されていれば反映されています。デフォルト値のままかどうかを一目で確認できるよう先頭 3 文字を残しています。