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

パスワード · 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_KEYAnthropic API キーファイル — agent-server 起動時にロード
AI_API_KEYOpenAI 互換 API キーファイル — agent-server 起動時にロード

キー名は環境変数名そのものです。 postgres のようなエイリアスはありません — エイリアスを使うと 名前と変数を結びつけるテーブルを別途管理する必要があり、そのテーブルは必ず実際と齟齬が生じるためです。

PG_PASSWORD がリストにない場合は正常です

PG_PASSWORDバンドル PostgreSQL を起動するインストールでのみこのプロダクトが所有しています (COMPOSE_PROFILESbundled-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 を維持)
3docker 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 文字を残しています。


関連ドキュメント