インストール
Docker / 手動での Crowi のインストール手順
このページでは、Crowi 2.0 (codename Reignite) を自分の環境で動かすための セットアップ手順を説明します。
注意: Crowi v2 は現在 alpha 開発中です。安定版リリースはまだないため、 特定のバージョンに固定し、十分に検証したうえで利用してください。評価・ 開発・移行検証の用途を主に想定しています。v1.x からの移行を検討して いる場合は v1 からのアップグレード もあわせて 参照してください。
動作環境
Crowi 2.0 は Turborepo + pnpm のモノレポ構成で、API・Web フロントエンド・ ドキュメントサイトの 3 つのアプリケーションを含みます。ローカルで動かすには 以下が必要です。
| ソフトウェア | バージョン | 用途 |
|---|---|---|
| Node.js | 24.x | API / Web の実行ランタイム |
| pnpm | 9.15.9 (corepack 経由) | パッケージマネージャ (packageManager は pnpm@9.15.9) |
| MongoDB | 7 以降 (開発用イメージは mongo:8) | Wiki データの永続化 |
| Redis | 7 以降 | セッション・リアルタイム共同編集の pub/sub |
| Elasticsearch | 任意 | 全文検索バックエンド (プラグイン駆動) |
| Docker / Docker Compose | 任意 | ローカルインフラの起動に利用 |
Node.js のバージョンはルート package.json の engines で 24.x に固定
されています。nvm などのバージョンマネージャを使っている場合は、Node.js
24 系を有効にしてから作業してください。
Tip: MongoDB / Redis / Elasticsearch をホストに直接インストールする 必要はありません。後述の
docker compose up -dで開発用インフラがまとめて 立ち上がります。
クイックスタート (Docker インフラ + ホストで開発サーバ)
最も手軽な構成は、ミドルウェアだけ Docker で起動し、API と Web は
pnpm dev でホスト側で動かす 方法です。コードを編集しながら開発する
場合はこれを推奨します。
# 1. リポジトリを取得
git clone https://github.com/crowi/crowi.git
cd crowi
# 2. 依存関係をインストール
pnpm install
# 3. 開発用インフラ (MongoDB / Redis / Elasticsearch / PlantUML) を起動
docker compose up -d
# 4. 環境変数ファイルを用意
cp .env.example .env
# MONGO_URI / REDIS_URL / CROWI_ENCRYPTION_KEY などを必要に応じて編集
# 5. すべて起動 (API :4301 / Web :4302 / プラグインの watch ビルド)
pnpm devapi は tsx watch で起動するため、初回起動はおよそ 1 秒で完了します。
起動後、ブラウザで http://localhost:4302 を開くとインストーラ画面が
表示されます。最初の管理者アカウントを作成すると Wiki が使えるように
なります。
ポート構成
pnpm dev で立ち上がる各アプリのデフォルトポートは次のとおりです。
| アプリ | ポート | 内容 |
|---|---|---|
@crowi/api | 4301 | Hono API サーバ |
@crowi/web | 4302 | Next.js 16 フロントエンド |
@crowi/crowi-site | 4303 | crowi.wiki LP + ドキュメント (任意) |
ドキュメントサイトは開発時には不要です。必要なときだけ pnpm dev:site
で個別に起動してください。
開発用インフラの中身
docker compose up -d (プロファイル指定なし) で起動するのは、アプリ本体
ではなく 依存ミドルウェアのみ です。
| サービス | イメージ | ホスト側ポート |
|---|---|---|
mongodb | mongo:8 | 27017 |
redis | redis:7 | 6379 |
elasticsearch | カスタムイメージ (9.4.0 + analysis-kuromoji) | 9200 |
plantuml | plantuml/plantuml-server | 8080 |
Elasticsearch イメージは日本語形態素解析プラグイン analysis-kuromoji を
あらかじめ同梱したカスタムビルドです。詳細は 検索のセットアップ
を参照してください。
個別に起動する
API と Web を片方ずつ動かしたい場合は次のスクリプトが使えます。
pnpm dev:api # API + プラグインのみ (Next.js は起動しない)
pnpm dev:web # Next.js フロントエンドのみ
pnpm dev:site # crowi.wiki の LP + ドキュメント (:4303)全スタックを Docker で起動する
API と Web も含めてすべて Docker コンテナで動かしたい場合は、app
プロファイルを指定します。
docker compose --profile app up -d --buildこの場合の挙動:
api/webサービスのイメージがpackages/{api,web}/Dockerfileから ビルドされます。apiイメージはリファレンスの ランナープロジェクトapps/crowi-runnerからビルドされ、そのプロジェクトのcrowi.config.jsonをイメージに焼き込みます。compose ファイルは さらにapps/crowi-runner/crowi.config.jsonを/app/crowi.config.jsonに再マウントするため、再ビルドなしでドライバ選択を上書きできます。 プラグイン構成は運用者がこのファイルで制御します。- コンテナ内ではホスト名ベースの URI (
mongodb://mongodb:27017/crowiなど) が.envのlocalhost値を上書きします。 - ホスト側ポートは
pnpm devと揃えてあり、API が4301、Web が4302にマッピングされます (コンテナ内部はいずれも3000)。
api サービスは .env ファイルを env_file として読み込むため、
CROWI_ENCRYPTION_KEY や WS_TOKEN_SECRET などの機密値は .env に
記述しておきます。詳しくは 設定 を参照してください。
公式 Docker イメージのビルド
@crowi/api は プラグインを同梱しません — SDK とコアのみを出荷し、
ストレージ / 検索 / メール / レンダラのドライバは同梱しません。ドライバは
小さな ランナープロジェクト が所有します。@crowi/api と必要な
@crowi/plugin-* パッケージを依存に持つ package.json、各ドライバを
どのプラグインで提供するかを選択する crowi.config.json、そして .env
からなります。api は起動時にランナープロジェクトの node_modules/ から
プラグインを解決するため、プラグインの追加・削除に api の再ビルドは
不要です。ランナープロジェクト方式の詳細は 設定 を
参照してください。
モノレポは 2 つのリファレンスランナープロジェクトを同梱しており、公式
イメージは packages/api/Dockerfile を build arg でパラメータ化して、
次の 2 種類のいずれかとしてビルドします。
# full (デフォルト): first-party の全 12 ドライバを同梱。
# ドライバの切り替えは crowi.config.json の編集だけ — 再ビルド不要。
docker build -f packages/api/Dockerfile -t crowi:full .
# slim: implicit-default の 3 ドライバ
# (storage-local + search-mongo + mail-smtp) のみ — MongoDB だけで動作し、
# フルカスタマイズの土台になります。
docker build -f packages/api/Dockerfile -t crowi:slim \
--build-arg RUNNER_APP=@crowi/runner-app-slim \
--build-arg RUNNER_APP_DIR=apps/crowi-runner-slim .どちらのイメージも WORKDIR=/app (デプロイされたランナープロジェクトの
ルート = api の projectDir) を設定し、node node_modules/@crowi/api/dist/app.js
をコンテナ内ポート 3000 で実行します。full イメージは app compose
プロファイルがビルドするものです。slim イメージは Elasticsearch も S3 も
なしで起動できます。
ビルド・テスト・型チェック
開発中によく使うスクリプトは次のとおりです。すべてリポジトリルートで 実行します。
pnpm build # 全パッケージをビルド
pnpm test # 全パッケージのテスト (API は Jest)
pnpm type-check # API + Web + Site の型チェック
pnpm lint # Lint (errors=0 が必須)pnpm install 時に lefthook の Git フックがインストールされ、コミット時に
Biome のフォーマット、プッシュ時に pnpm lint が自動で走ります。
次のステップ
- 設定 — 環境変数と
crowi.config.jsonの全体像 - 機密設定の暗号化 —
CROWI_ENCRYPTION_KEYのセットアップ - ストレージドライバ — ローカル / S3 の切り替え
- メール / SMTP 設定 — メール送信の設定
- プラグインの管理 — プラグインの追加・有効化
- v1 からのアップグレード — 既存 Crowi からの移行