Pocket-ID(ログイン基盤)障害復旧手順
This content is not available in your language yet.
社内のログイン基盤 Pocket-ID(https://ai241-auth.as-link.com)が停止・異常動作した場合の復旧手順です。
Smart Record・Smart Expense など Pocket-ID でログインする全サービスの「新規ログイン」に影響します。
- Slack
#ai-ops-criticalに Uptime-Kuma から通知が届きます(監視名 Pocket-ID (auth)、60秒間隔・リトライ2回 = 停止から約3分で通知) - 手動確認:
https://ai241-auth.as-link.com/healthzをブラウザで開く(正常 = 白画面 / HTTP 204。エラー画面や応答なし = 異常)
影響範囲(慌てないために)
Section titled “影響範囲(慌てないために)”| 対象 | 影響 |
|---|---|
| ログイン済みの利用者 | 影響なし。各アプリのセッションはアプリ側で保持しており(Smart Record は使い続ける限り14日延長)、Pocket-ID 停止中も通常どおり使えます |
| 新規ログイン・別端末・ログアウト後 | ❌ 不可(ログイン画面が開けない) |
| 招待メールのリンク | ❌ 不可(復旧後に再送不要でそのまま使える場合もあるが、期限切れなら再招待) |
対象サービス: Smart Record(record.cloud / beta / dev)、Smart Expense、OpenWebUI、AnythingLLM、Langfuse、iDempiere SSO ログイン等。 業務データは失われません(各アプリのデータは Pocket-ID とは別に保存されています)。
構成の基礎知識
Section titled “構成の基礎知識”| 項目 | 値 |
|---|---|
| コンテナ | aslink-pocket-id(ai241、再起動ポリシー unless-stopped = クラッシュ時は自動復帰) |
| compose 定義 | /opt/as-link-ai-platform/compose/edge/pocket-id.yml |
| データ実体 | Postgres(aslink-postgres コンテナ内の DB pocketid_db)— ユーザー・パスキー・OIDC クライアント設定はすべてここ |
| 画像類 | volume aslink-edge_pocket_id_data(プロフィール/アプリ画像のみ) |
| バックアップ | 毎日 03:00 に pg_dump(/var/backups/aslink-postgres/pocketid_db_*.dump、7世代)→ Backrest(repo aslink-local、plan postgres-dumps)+ MinIO。画像 volume は plan pocket-id-data |
Step 1: 状態確認(1分)
Section titled “Step 1: 状態確認(1分)”ai241 で:
docker ps --format '{{.Names}}\t{{.Status}}' | grep -E 'pocket|postgres'curl -s -o /dev/null -w '%{http_code}\n' https://ai241-auth.as-link.com/healthz- 両コンテナが
Up (healthy)で healthz が204→ 復旧済み(自動再起動が効いた可能性。Step 4 の検証へ) aslink-postgresが落ちている → 原因は Postgres 側。先に Postgres を復旧(他サービスにも影響が出ているはず)
Step 2: 再起動(まずはこれ・1分)
Section titled “Step 2: 再起動(まずはこれ・1分)”docker restart aslink-pocket-id30秒ほど待って healthz が 204 に戻れば完了(Step 4 へ)。戻らない場合はログを確認:
docker logs aslink-pocket-id --since 15m 2>&1 | tail -30connection refused/ DB 系エラー →docker restart aslink-postgres後に再度 Pocket-ID を再起動- 設定エラー(環境変数等)→ 直前に compose や
.envを変更していないか確認し、変更を戻してdocker compose -f /opt/as-link-ai-platform/compose/edge/pocket-id.yml up -d
Step 3: データ復元(DB 破損時のみ・要 ai241 Claude Code 推奨)
Section titled “Step 3: データ復元(DB 破損時のみ・要 ai241 Claude Code 推奨)”再起動で直らず、ログに DB 破損・データ不整合が疑われる場合のみ。前日 03:00 時点に巻き戻ります(それ以降に登録したユーザー・パスキーは消えるため、実行前に要判断):
# 最新の dump を確認(毎日 03:00 取得・7世代)ls -t /var/backups/aslink-postgres/pocketid_db_*.dump | head -3
# Pocket-ID を止めて DB を巻き戻し → 起動docker stop aslink-pocket-iddocker exec -i aslink-postgres pg_restore -U postgres -d pocketid_db --clean --if-exists \ < /var/backups/aslink-postgres/pocketid_db_YYYYMMDD-030001.dumpdocker start aslink-pocket-idローカル 7世代より古い時点が必要な場合は Backrest(repo aslink-local / plan postgres-dumps)から dump ファイルを取り出して同様に restore。
Step 4: 復旧の検証(2分)
Section titled “Step 4: 復旧の検証(2分)”https://ai241-auth.as-link.com/healthz→ 204- 実ログイン確認: シークレットウィンドウで
https://record.cloud.as-link.com/を開き、Pocket-ID のログイン画面が表示 → ログインできること - Slack
#ai-ops-criticalの Uptime-Kuma 通知が Up に変わること
長期停止になってしまう場合
Section titled “長期停止になってしまう場合”既存利用者はログイン済みのまま使えるため、サービス全停止ではありません。「新しくログインできない」旨を利用者へ案内し、復旧を優先します。パスワード方式の裏口ログインは(解約遮断を迂回してしまうため)設けない方針です。
- 監視: Uptime-Kuma(
https://ai241.as-link.com配下の監視画面)に Pocket-ID (auth) / Smart Record (prod) を登録済み(2026-07-09) - Pocket-ID のバージョンアップは事前にバックアップ確認のうえ計画的に実施(v2 系は設定 API の仕様変更が多いため)
- 認証情報(管理者アカウント等)は Bitwarden で管理。本ページには記載しません