はじめに
Crowi 2.0 をローカルで動かすまでの 5 分間クイックスタート
このページでは、Crowi 2.0 (コードネーム Reignite) を手元のマシンで 起動するまでの最短手順を説明します。所要時間はおよそ 5 分です。
注意: Crowi v2 は現在 alpha 開発中です。安定版リリースはまだ ありません。本番環境では使用しないでください。 ここで説明するのは あくまで開発・評価用のローカル起動手順です。本番向けの詳細な インストールは インストール を参照して ください。
動作環境
ローカル開発には以下が必要です。
| ソフトウェア | バージョン | 用途 |
|---|---|---|
| Node.js | 24.x | ランタイム (リポジトリの .nvmrc / engines で固定) |
| pnpm | 9.15.9 (corepack 経由) | パッケージマネージャ (monorepo は pnpm workspaces) |
| Docker / Docker Compose | 最新 | MongoDB / Redis / Elasticsearch / PlantUML をコンテナで起動 |
Crowi 本体が必要とするミドルウェア (MongoDB / Redis / Elasticsearch /
PlantUML) は、リポジトリ同梱の docker-compose.yml でまとめて立ち上げる
ため、個別にインストールする必要はありません。
Tip: Node.js のバージョンは
.nvmrcに24と記載されています。nvmを使っているなら、リポジトリのルートでnvm useを実行すると 正しいバージョンに切り替わります。
1. リポジトリの取得
git clone https://github.com/crowi/crowi.git
cd crowi2. 依存パッケージのインストール
pnpm installpnpm install の過程で lefthook の Git フック (pre-commit / pre-push) も
自動でセットアップされます。
3. ミドルウェアの起動
docker compose up -d で、開発に必要なミドルウェアをバックグラウンドで
起動します。
docker compose up -dデフォルトでは以下の 4 サービスが立ち上がります。アプリ本体 (api / web)
はホスト側で pnpm dev から起動するため、ここでは含まれません。
| サービス | ポート | 用途 |
|---|---|---|
| MongoDB | 27017 | ページ・リビジョン・ユーザーなどの永続化先 |
| Redis | 6379 | セッション / リアルタイム共同編集の pub/sub |
| Elasticsearch | 9200 | 全文検索バックエンド (任意) |
| PlantUML | 8080 | PlantUML 図のレンダリングサーバ (任意) |
4. 環境変数ファイルの用意
リポジトリルートの .env.example を .env にコピーします。api は起動時に
ルートの .env を dotenv で読み込みます。
cp .env.example .envローカル開発では .env.example の初期値のままでも起動できますが、
CROWI_ENCRYPTION_KEY の設定を強く推奨します。未設定の場合、機密設定
(OAuth シークレットなど) が平文で保存され、起動時に警告が出ます。
pnpm --filter @crowi/api crypto:gen-keyで 32 バイトの AES-256 鍵を生成し、出力値を .env の
CROWI_ENCRYPTION_KEY に貼り付けてください。詳細は
設定の暗号化 を参照してください。
5. 開発サーバの起動
pnpm devpnpm dev は Turborepo 経由で api・web・各プラグインを並行起動します。
api は tsx watch で起動するため、初回起動はおよそ 1 秒で完了します
(以前の ts-node + nodemon 構成では約 30 秒かかっていました)。起動後、
以下の URL でアクセスできます。
| サービス | URL |
|---|---|
| Web (フロントエンド) | http://localhost:4302 |
| API | http://localhost:4301 |
ブラウザで http://localhost:4302 を開くと Crowi の画面が表示されます。 初回はインストーラ画面が出るので、管理者ユーザーを作成してください。
片側だけ起動したい場合は、次の絞り込みスクリプトも使えます。
pnpm dev:api # api + プラグインのみ (Next.js なし)
pnpm dev:web # Next.js フロントエンドのみ
pnpm dev:site # crowi.wiki LP + ドキュメント (このサイト、:4303)