メインコンテンツへスキップ

Documentation Index

Fetch the complete documentation index at: https://docs.fim.ai/llms.txt

Use this file to discover all available pages before exploring further.

☁️ オプション 0: クラウド(セットアップ不要) セルフホストしたくない場合は、cloud.fim.ai で FIM One を今すぐお試しください — Docker、API キー、設定は不要です。サインインするだけで準備完了です。アーリーアクセス。

オプション A: Docker(推奨)

ローカルの Python または Node.js は不要です。すべてコンテナ内でビルドされます。
git clone https://github.com/fim-ai/fim-one.git
cd fim-one

# Configure — only LLM_API_KEY is required
cp example.env .env
# Edit .env: set LLM_API_KEY (and optionally LLM_BASE_URL, LLM_MODEL)

# Build and run (first time, or after pulling new code)
docker compose up --build -d
http://localhost:3000 を開きます。初回起動時は、管理者アカウントの作成ガイドが表示されます。以上です。 初回ビルド後、その後の起動には以下のみが必要です:
docker compose up -d          # start (skip rebuild if image unchanged)
docker compose down           # stop
docker compose logs -f        # view logs
データは Docker の名前付きボリューム(fim-datafim-uploads)に永続化され、コンテナの再起動後も保持されます。 注意: Docker モードはホットリロードをサポートしていません。コード変更にはイメージの再ビルド(docker compose up --build -d)が必要です。ライブリロード機能を備えたアクティブな開発には、以下のオプション B を使用してください。

オプション B: ローカル開発

前提条件: Python 3.11+、uv、Node.js 18+、pnpm。
git clone https://github.com/fim-ai/fim-one.git
cd fim-one

cp example.env .env
# Edit .env: set LLM_API_KEY

# Install
uv sync --all-extras
cd frontend && pnpm install && cd ..

# Launch (with hot reload)
./start.sh
コマンド起動内容URL
./start.shNext.js + FastAPIhttp://localhost:3000 (UI) + :8000 (API)
./start.sh dev同じ、ホットリロード付き (Python --reload + Next.js HMR)同じ
./start.sh dev:apiAPI のみ、開発モード (--reload)http://localhost:8000/api
./start.sh dev:uiNext.js のみ、開発モード (HMR)http://localhost:3000
./start.sh apiFastAPI のみ (ヘッドレス、統合またはテスト用)http://localhost:8000/api

設定

FIM One は任意の OpenAI 互換 LLM プロバイダーで動作します — OpenAI、DeepSeek、Anthropic、Qwen、Ollama、vLLM など。
プロバイダーLLM_API_KEYLLM_BASE_URLLLM_MODEL
OpenAIsk-...(デフォルト)gpt-4o
DeepSeeksk-...https://api.deepseek.com/v1deepseek-chat
Anthropicsk-ant-...https://api.anthropic.com/v1claude-sonnet-4-6
Ollama (ローカル)ollamahttp://localhost:11434/v1qwen2.5:14b
Jina AI は Web 検索/取得、埋め込み、および完全な RAG パイプラインを実現します(無料ティアあり)。 最小限の .env:
LLM_API_KEY=sk-your-key
# LLM_BASE_URL=https://api.openai.com/v1   # default — change for other providers
# LLM_MODEL=gpt-4o                         # default — change for other models

JINA_API_KEY=jina_...                       # unlocks web tools + RAG
すべての設定オプションの完全なリストについては、環境変数リファレンスを参照してください。

本番環境へのデプロイ

Docker(推奨)

docker compose up -d は必要なすべてをセットアップします — 手動でのサービス設定は不要です
サービス目的設定方法
fim-oneAPI + フロントエンド.env(LLMキーなど)
Redisワーカー間割り込みリレーcompose により自動設定
docker compose up --build -d   # first time / after code changes
docker compose up -d           # subsequent starts
docker compose logs -f         # view logs
docker compose down            # stop all services

ワーカーでのスケーリング

デフォルトでは、APIは単一のワーカープロセスで実行されます。より多くの同時ユーザーを処理するには、.envでワーカーを増やします:
WORKERS=4   # number of Uvicorn worker processes
マルチワーカーの要件:
  • PostgreSQL — SQLiteはシングルライターであり、同時書き込みをサポートしていません。DATABASE_URLをPostgreSQL接続文字列に設定します。
  • Redis — Docker Composeに既に含まれています(自動設定)。ワーカー間の割り込み/注入リレーを処理します。
WORKERS=1(デフォルト)の場合、RedisやPostgreSQLは不要です — SQLiteで問題なく動作します。

Nginx リバースプロキシ

HTTPS とカスタムドメインの場合は、Nginx リバースプロキシをフロントに配置します:
User → Nginx (443/HTTPS) → localhost:3000
API は内部的にポート 8000 で実行されます — Next.js は /api/* リクエストを自動的にプロキシします。ポート 3000 のみを公開する必要があります。

コード実行サンドボックス

コード実行サンドボックス(CODE_EXEC_BACKEND=docker)を使用する場合は、Dockerソケットをマウントします:
# docker-compose.yml
volumes:
  - /var/run/docker.sock:/var/run/docker.sock

Cloudflare Tunnel

ゼロオープンポートセットアップの場合は、Nginx の代わりに Cloudflare Tunnel を使用してください。すべてのトラフィックは Cloudflare のエッジを通じて流れます。ポート 80/443 を公開したり、SSL 証明書を管理したり、ファイアウォールルールを設定する必要はありません。
中国本土ユーザー: Cloudflare Free/Pro/Business プランは中国本土に PoP(Points-of-Presence)がありません。中国本土からのトラフィックは海外エッジ(通常は US West)にルーティングされ、頻繁に 502 エラーが発生し、レイテンシが高くなります。主なユーザーが中国本土にいる場合は、Cloudflare Tunnel を使用しないでください。中国本土への信頼できるアクセスには、China Network(JD Cloud パートナーシップ)を備えた Cloudflare Enterprise が必要です。
User → Cloudflare Edge (SSL) → Tunnel → cloudflared → fim-one:3000
セットアップ:
1

トンネルを作成する

Cloudflare Zero Trust → Networks → Tunnels → Create a tunnel に移動します。 コネクタタイプとして Cloudflared を選択します。
2

パブリックホスト名を設定する

トンネル設定で、パブリックホスト名を追加します:
フィールド
TypeHTTP
URLfim-one:3000
その他のすべての設定(HTTP Host Header、Chunked Encoding、Timeouts、Access)はデフォルトのままにしておきます。
URL は localhost ではなく Docker サービス名 fim-one を使用します。これは cloudflared が同じ Docker ネットワーク内の別のコンテナとして実行されるためです。
3

トンネルトークンをコピーする

トンネルの Configure ページで、インストールコマンドを見つけます。これには eyJ... で始まるトークンが含まれています。それをコピーします。
4

トークンを .env に追加する

# Add to your .env file on the server
CLOUDFLARE_TUNNEL_TOKEN=eyJhIjoiNj...
5

トンネルオーバーレイでデプロイする

docker compose -f docker-compose.yml -f docker-compose.tunnel.yml build
docker compose -f docker-compose.yml -f docker-compose.tunnel.yml up -d
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 セクションを削除(またはコメントアウト)します。トラフィックはトンネルを通じてのみ流れます。インバウンドポートは不要です。
Cloudflare Tunnel は Free を含むすべてのプランで無料です。帯域幅またはトラフィック制限はありません。

スクリプトデプロイメント(ベアメタル)

ベアメタルサーバーまたはカスタムプロセスマネージャーの場合、./start.sh を直接使用します:
./start.sh           # production mode
./start.sh portal    # same as above (explicit)
./start.sh api       # API only (headless)
このモードでは、Redis は自動的に含まれません。システムはデフォルトでシングルワーカー、インプロセスモードで実行されます。これは低トラフィックのデプロイメントに適しています。 ローカルでマルチワーカーと Redis を有効にするには:
# Start a Redis instance (Docker or system package)
docker run -d --name redis -p 6379:6379 redis:7-alpine

# Add to .env
REDIS_URL=redis://localhost:6379/0
WORKERS=4
DATABASE_URL=postgresql+asyncpg://user:pass@localhost/fim_one