管理画面
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 (+ ストレージプラグイン) | 利用可能 |
| メール | 利用可能 | |
| 通知 | Notification | 進行中 |
| 検索 | Search (検索インデックス + 検索バックエンドプラグイン) | 利用可能 |
| レンダラー | (レンダラープラグイン、例: PlantUML) | プラグイン依存 |
ロード済みプラグインは、設定画面へのリンクとしてサイドバーに自動で
注入されます。配置先は adminPlacement.section の宣言、なければ
登録した拡張フックから導出されます。
| フック / 宣言 | 配置されるグループ |
|---|---|
registerStorage | ストレージ |
registerSearch | 検索 |
registerRenderer | レンダラー |
registerNotifier | 通知 |
registerMailSender | メール |
config のみ (フックなし) → section: 'shared' | 共通サービス |
たとえば Elasticsearch 検索プラグインは「検索」グループに、PlantUML レンダラープラグインは「レンダラー」グループに現れます (どちらも 設定スキーマを持つプラグインのみ表示されます)。
Note: 認証 (Authentication) は v2 alpha のある時点から 「設定」 グループ内 (Security の直下) に移動しました。以前あった独立した 「認証」グループと「メンテナンス」グループは廃止され、検索は専用の 「検索」グループに、レンダラーは「レンダラー」グループに整理されました。 また、バックリンクの再構築は管理画面ではなく
crowi-adminCLI へ移行 したため、サイドバーからバックリンク項目は削除されています。
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 エラーで拒否しますが、設定変更時は 別ブラウザでログイン状態を保ったまま行うと安全です。
メール送信 (SMTP / AWS SES) の設定です。GET/PUT /admin/mail と
POST /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.jsonのstorage.driverを書き換えて api を再起動します。 - ドライバ間のファイル移行は
crowi-admin rebuild storage copy --from <a> --to <b>CLI で行います。
ストレージ全般の設定とプラグインについては ストレージ設定 を 参照してください。
Plugins
ロード済みプラグインの一覧と、各プラグインの設定編集を行います。
/admin/pluginsでロード済みプラグインを一覧表示します。/admin/plugins/edit?name=<プラグイン名>で個別プラグインの設定を 編集します。フォームはプラグインの Zod スキーマから自動生成され、 機密フィールドは「値が設定済みか」だけが往復し、平文は表示されません。- フィールドのラベルと説明は、プラグインが
configI18nを同梱していれば 管理画面の表示言語に合わせてローカライズされます (未対応の言語や フィールドは Zod の.describe()の既定文言にフォールバック)。 - レンダリング結果のキャッシュをプラグイン単位 / 全体でクリアする操作も ここから行えます。
プラグインの導入・管理は プラグインの管理 を、 プラグインの仕組みは プラグイン概要 を参照して ください。
Search
検索ドライバの状態を確認する画面です。GET /admin/search に対応します。
- 現在アクティブな検索ドライバと、インデックスの状態を表示します。
- インデックスの再構築は管理画面ではなく
crowi-admin rebuild searchCLI で行います。 - Elasticsearch などの検索バックエンドプラグインは、
registerSearchから 自動でこの「検索」グループに設定画面リンクとして注入されます。
詳細は 検索バックエンドのセットアップ を参照してください。
Note: 以前「メンテナンス」グループにあった バックリンク の 再構築画面は廃止されました。バックリンクの再構築は
crowi-admin backlink rebuild系の CLI 操作で行います。
進行中のセクション
以下は v2 alpha 時点ではまだ完成していません。
- Notification (通知) — Slack 連携を含むグローバル通知設定の管理画面は 進行中です。サイドバーに項目は表示されますが、機能は順次実装されます。
Crowi 2.0 (Reignite) は alpha 開発中のため、管理画面の構成は今後も
変化します。最新の状況はリポジトリの TODO.md を参照してください。