オプション A: Docker(推奨)
ローカルの Python または Node.js は不要です。すべてコンテナ内でビルドされます。fim-data、fim-uploads)に永続化され、コンテナの再起動後も保持されます。
注意: Docker モードはホットリロードをサポートしていません。コード変更にはイメージの再ビルド(docker compose up --build -d)が必要です。ライブリロード機能を備えたアクティブな開発には、以下のオプション B を使用してください。
オプション B: ローカル開発
前提条件: Python 3.11+、uv、Node.js 18+、pnpm。設定
FIM One は任意の OpenAI 互換 LLM プロバイダーで動作します — OpenAI、DeepSeek、Anthropic、Qwen、Ollama、vLLM など。
Jina AI は Web 検索/取得、埋め込み、および完全な RAG パイプラインを実現します(無料ティアあり)。
最小限の
.env:
本番環境へのデプロイ
Docker(推奨)
docker compose up -d は必要なすべてをセットアップします — 手動でのサービス設定は不要です:
ワーカーでのスケーリング
デフォルトでは、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ソケットをマウントします:
Cloudflare Tunnel
ゼロオープンポートセットアップの場合は、Nginx の代わりに Cloudflare Tunnel を使用してください。すべてのトラフィックは Cloudflare のエッジを通じて流れます。ポート 80/443 を公開したり、SSL 証明書を管理したり、ファイアウォールルールを設定する必要はありません。1
トンネルを作成する
Cloudflare Zero Trust → Networks → Tunnels → Create a tunnel に移動します。
コネクタタイプとして Cloudflared を選択します。
2
パブリックホスト名を設定する
トンネル設定で、パブリックホスト名を追加します:
その他のすべての設定(HTTP Host Header、Chunked Encoding、Timeouts、Access)はデフォルトのままにしておきます。
URL は
localhost ではなく Docker サービス名 fim-one を使用します。これは cloudflared が同じ Docker ネットワーク内の別のコンテナとして実行されるためです。3
トンネルトークンをコピーする
トンネルの Configure ページで、インストールコマンドを見つけます。これには
eyJ... で始まるトークンが含まれています。それをコピーします。4
トークンを .env に追加する
5
トンネルオーバーレイでデプロイする
docker-compose.tunnel.yml オーバーレイは cloudflared サイドカーコンテナを追加します。ベースの docker-compose.yml は変更されません。Cloudflare を使用しないコミュニティユーザーは、引き続き docker compose up -d を使用できます。6
古い DNS レコードを削除する
ドメインに以前にサーバーの IP を指すA レコードがあった場合は、Cloudflare DNS で削除してください。トンネルは自動的にそのエッジエンドポイントを指す CNAME レコードを作成します。
7
サーバーポートを閉じる
サーバーの
docker-compose.yml から ports セクションを削除(またはコメントアウト)します。トラフィックはトンネルを通じてのみ流れます。インバウンドポートは不要です。スクリプトデプロイメント(ベアメタル)
ベアメタルサーバーまたはカスタムプロセスマネージャーの場合、./start.sh を直接使用します: