Crowi
運用

管理画面

Crowi の管理画面 (App / Security / Authentication / Share / Plugins / Users / Storage / Mail / Notification / Search / Renderers) の各セクションの使い方

Crowi の管理画面は、サイト全体の設定・ユーザー管理・プラグイン構成を Web UI から行うための領域です。/admin を開くとダッシュボードが表示され、 左サイドバーから各セクションへ移動できます。

管理画面へのアクセス

  • 管理画面は user.admin === true のユーザーだけ がアクセスできます。 権限のないユーザーが /admin 配下を開くと「アクセスが拒否されました」 カードが表示されます。
  • 認可は API 側でも二重に enforce されています。管理用エンドポイントは jwtAdminRequired ミドルウェア (= JWT 認証 + user.admin === true) の 下にマウントされており、UI を迂回したリクエストも 401 / 403 で弾かれます。
  • 最初の管理者は、インストーラーで最初に作成されたユーザーに自動付与 されます。その後の管理者付与は Users セクションから行います。

Tip: 管理者権限は強力です。日常の編集作業には通常ユーザーで ログインし、設定変更が必要なときだけ管理者アカウントを使うことを おすすめします。

ダッシュボード

/admin のトップには、各セクションへのカードが並びます。サイドバーの 見出しは以下のグループに分かれています。

グループセクション状態
設定App / Security / Authentication / Share / Plugins利用可能
ユーザー管理Users (+ 承認待ちがあれば「ユーザー承認」)利用可能
共通サービス(config のみの基盤プラグイン、例: AWS)プラグイン依存
ストレージStorage (+ ストレージプラグイン)利用可能
メールMail利用可能
通知Notification進行中
検索Search (検索インデックス + 検索バックエンドプラグイン)利用可能
レンダラー(レンダラープラグイン、例: PlantUML)プラグイン依存

ロード済みプラグインは、設定画面へのリンクとしてサイドバーに自動で 注入されます。配置先は adminPlacement.section の宣言、なければ 登録した拡張フックから導出されます。

フック / 宣言配置されるグループ
registerStorageストレージ
registerSearch検索
registerRendererレンダラー
registerNotifier通知
registerMailSenderメール
config のみ (フックなし) → section: 'shared'共通サービス

たとえば Elasticsearch 検索プラグインは「検索」グループに、PlantUML レンダラープラグインは「レンダラー」グループに現れます (どちらも 設定スキーマを持つプラグインのみ表示されます)。

Note: 認証 (Authentication) は v2 alpha のある時点から 「設定」 グループ内 (Security の直下) に移動しました。以前あった独立した 「認証」グループと「メンテナンス」グループは廃止され、検索は専用の 「検索」グループに、レンダラーは「レンダラー」グループに整理されました。 また、バックリンクの再構築は管理画面ではなく crowi-admin CLI へ移行 したため、サイドバーからバックリンク項目は削除されています。

App

サイトの基本設定です。GET/PUT /admin/app に対応します。

  • サイトのタイトル などアプリ全体に関わる項目を設定します。
  • 機密情報を含むキーは入力時にマスクされ、空のまま保存すると既存値が 保持されます (誤って空欄で上書きしないための挙動です)。

Note: 旧バージョンでは App 設定に AWS S3 のアップロード認証情報が ありましたが、v2 では Storage セクションとストレージ プラグイン設定へ移動しました。

Security

新規ユーザー登録の挙動に関する設定です。GET/PUT /admin/security に対応します。

  • 登録モード (registrationMode): 新規ユーザー登録の挙動を制御します。
    • Open — 誰でも登録可能。メール確認後すぐに利用できます。
    • Restricted — 誰でも登録申請できますが、利用開始には管理者の承認が 必要です (申請者は承認待ち状態で作成され、Users の「ユーザー 承認」キューに表示されます)。
    • Closed — 公開登録を受け付けません。管理者による招待のみで アカウントを作成できます。このモードでは /register 画面はフォームを 出さずに招待制の案内を表示し、ログイン画面の「新規登録」リンクも 非表示になります (送信前に導線が閉じます)。
  • 登録許可メールアドレス (registrationWhiteList): 登録を許可する メールアドレス / ドメインの一覧です。Closed 以外の全モードで評価 され、空の場合は制限なしです。1 行 1 エントリで、次のように一致します (大文字小文字は区別しません)。
    • admin@example.com — その完全なアドレスのみ
    • @example.com — そのドメインの任意のローカルパート
    • example.com — そのドメイン、またはそのサブドメイン

Note: 旧バージョンにあった サイト全体の HTTP Basic 認証 (security:basicName / security:basicSecret) は v2 で廃止されました (破壊的変更)。Next.js + Hono のアーキテクチャでは SPA を確実にゲートできず、 実際に強制もされていなかったためです。サイト全体に Basic 認証をかけたい 場合は、リバースプロキシ (nginx 等) 側で設定してください。DB に残った 旧設定値は単に無視されます。

Authentication

認証方式そのものの切り替えと、サインイン時に使う OAuth プロバイダの 設定を行います。GET/PUT /admin/auth に対応します。

  • requireThirdPartyAuth: サードパーティ認証 (OAuth) を必須にします。
  • disablePasswordAuth: パスワードによるログインを無効化します。
  • Google / GitHub OAuth: 各プロバイダの clientId と client secret を 入力します。secret は機密扱い (入力時にマスクされ、CROWI_ENCRYPTION_KEY が設定されていれば保存時に自動で暗号化されます)。

Caution: パスワード認証を無効化したまま OAuth プロバイダがどれも 完全に設定されていないと、誰もログインできなくなります。Crowi は あなた自身を締め出す設定変更を 422 エラーで拒否しますが、設定変更時は 別ブラウザでログイン状態を保ったまま行うと安全です。

Mail

メール送信 (SMTP / AWS SES) の設定です。GET/PUT /admin/mailPOST /admin/mail/test に対応します。

  • 送信元アドレス、SMTP ホスト / ポート / ユーザー / パスワード、もしくは AWS SES の認証情報を設定します。
  • パスワードなどの機密値は入力時にマスクされます。
  • テスト送信 ボタンで、ログイン中の管理者の登録メールアドレス宛に テストメールを送り、設定が正しいか確認できます。

詳細は メール設定 を参照してください。

Share

外部共有リンクの有効・無効を切り替えます。GET/PUT /admin/share に 対応する単純な toggle です。無効にすると、ページの外部共有リンク発行が できなくなります。利用者側の共有機能については ページの共有 を参照してください。

Users

ユーザーの一覧・検索・管理を行います。GET /admin/users 系の エンドポイントに対応します。

操作説明
一覧 / 検索メールアドレスやユーザー名で絞り込み、ページネーション付きで閲覧
招待メールアドレスを複数まとめて入力し、ユーザーを一括招待
プロフィール編集ユーザーの表示名・メールアドレスを変更
管理者権限管理者権限の付与・剥奪
ステータス変更ユーザーを有効化 (ACTIVE) / 凍結 (SUSPENDED)
パスワードリセットランダムなパスワードを再発行 (発行された平文が一度だけ返ります)
招待の再送招待済み (INVITED) ユーザー に招待メールを再送 (新しい招待トークンを発行)
削除招待済み (INVITED) ユーザー を物理削除 (一度でも利用開始したユーザーは削除不可)

招待済みユーザーの行では、行内に 「招待を再送」 ボタンが直接表示され、 その横の行メニューに「メールアドレス変更」「削除」の 2 つが並びます (まだ アクティベートされていないため、編集・権限変更・ステータス変更は表示され ません)。

「招待を再送」を押すと、新しい招待トークンを発行して招待メールを再送します。 招待トークンの有効期限は 7 日 です。古いトークンを明示的に無効化する必要は なく、受諾時のステータス判定で二重受諾は防がれます。なお、メール送信には SMTP などのメール設定が必要で、メール送信が未設定の場合は再送できません (送信に失敗するとエラーが表示されます)。

Tip: パスワードリセットで返される平文パスワードはその場でしか 表示されません。リセット後は速やかに本人へ安全な経路で伝え、初回 ログイン後にユーザー自身で変更してもらってください。

ユーザー承認

Restricted モードで作成された 承認待ち (REGISTERED) ユーザー が 1 人以上いると、サイドバーの「ユーザー管理」直下に 「ユーザー承認」 メニューが件数バッジ付きで表示されます (管理者が承認待ちに気付ける ようにするためです)。/admin/users/pending を開くと承認待ちユーザーの 一覧が表示され、各行の「承認」ボタンでアクティベート (ACTIVE 化) できます。 件数バッジは一定間隔で更新されます。

Storage

添付ファイルの保存先 (ストレージドライバ) の状態を確認する read-only な 画面です。GET /admin/storage に対応します。

  • 現在アクティブなドライバと、ロード済みの全ドライバ一覧が表示されます。
  • ドライバの切り替えは管理画面からは行いませんcrowi.config.jsonstorage.driver を書き換えて api を再起動します。
  • ドライバ間のファイル移行は crowi-admin rebuild storage copy --from <a> --to <b> CLI で行います。

ストレージ全般の設定とプラグインについては ストレージ設定 を 参照してください。

Plugins

ロード済みプラグインの一覧と、各プラグインの設定編集を行います。

  • /admin/plugins でロード済みプラグインを一覧表示します。
  • /admin/plugins/edit?name=<プラグイン名> で個別プラグインの設定を 編集します。フォームはプラグインの Zod スキーマから自動生成され、 機密フィールドは「値が設定済みか」だけが往復し、平文は表示されません。
  • フィールドのラベルと説明は、プラグインが configI18n を同梱していれば 管理画面の表示言語に合わせてローカライズされます (未対応の言語や フィールドは Zod の .describe() の既定文言にフォールバック)。
  • レンダリング結果のキャッシュをプラグイン単位 / 全体でクリアする操作も ここから行えます。

プラグインの導入・管理は プラグインの管理 を、 プラグインの仕組みは プラグイン概要 を参照して ください。

検索ドライバの状態を確認する画面です。GET /admin/search に対応します。

  • 現在アクティブな検索ドライバと、インデックスの状態を表示します。
  • インデックスの再構築は管理画面ではなく crowi-admin rebuild search CLI で行います。
  • Elasticsearch などの検索バックエンドプラグインは、registerSearch から 自動でこの「検索」グループに設定画面リンクとして注入されます。

詳細は 検索バックエンドのセットアップ を参照してください。

Note: 以前「メンテナンス」グループにあった バックリンク の 再構築画面は廃止されました。バックリンクの再構築は crowi-admin backlink rebuild 系の CLI 操作で行います。

進行中のセクション

以下は v2 alpha 時点ではまだ完成していません。

  • Notification (通知) — Slack 連携を含むグローバル通知設定の管理画面は 進行中です。サイドバーに項目は表示されますが、機能は順次実装されます。

Crowi 2.0 (Reignite) は alpha 開発中のため、管理画面の構成は今後も 変化します。最新の状況はリポジトリの TODO.md を参照してください。

On this page