オプション A: Docker(推奨)
ローカルの Python または Node.js は不要です。すべてがコンテナ内でビルドされます。設定 — LLM_API_KEY のみが必須です
cp example.env .env.env を編集: LLM_API_KEY を設定 (オプションで LLM_BASE_URL、LLM_MODEL も設定)
ビルドと実行(初回、または新しいコードをプルした後)
fim-data、fim-uploads)に永続化され、コンテナの再起動後も保持されます。
注記: Docker モードはホットリロードをサポートしていません。コード変更にはイメージの再ビルド(docker compose up --build -d)が必要です。ライブリロード付きのアクティブな開発には、以下のオプション B を使用してください。
オプション B: ローカル開発
前提条件: Python 3.11+、uv、Node.js 18+、pnpm。.envを編集: LLM_API_KEYを設定
インストール
uv sync —all-extras cd frontend && pnpm install && cd ..起動(ホットリロード付き)
./start.sh本番環境へのデプロイ
Docker(推奨)
docker compose up -d は必要なすべてのものを起動します — 手動でのサービス設定は不要です:
| サービス | 目的 | 設定者 |
|---|---|---|
| fim-one | API + フロントエンド | .env(LLMキーなど) |
| Redis | ワーカー間割り込みリレー | compose により自動設定 |
ワーカーでのスケーリング
デフォルトでは、APIは単一のワーカープロセスで実行されます。より多くの同時ユーザーを処理するには、.envでワーカー数を増やします:
- PostgreSQL — SQLiteはシングルライターであり、同時書き込みをサポートしていません。
DATABASE_URLをPostgreSQL接続文字列に設定してください。 - Redis — Docker Composeに既に含まれています(自動設定)。ワーカー間の割り込み/注入リレーを処理します。
WORKERS=1(デフォルト)の場合、RedisやPostgreSQLは不要です。SQLiteで問題なく動作します。
Nginx リバースプロキシ
HTTPS とカスタムドメインの場合、Nginx リバースプロキシをフロントに配置します:/api/* リクエストを自動的にプロキシします。ポート 3000 のみを公開する必要があります。
コード実行サンドボックス
コード実行サンドボックス(CODE_EXEC_BACKEND=docker)を使用する場合は、Dockerソケットをマウントします:
スクリプトデプロイメント(ベアメタル)
ベアメタルサーバーまたはカスタムプロセスマネージャーの場合、./start.sh を直接使用します: