> ## 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.

# クイックスタート

> FIM Oneを数分で実行するか、クラウド版を今すぐお試しください。

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

## オプション A: Docker（推奨）

ローカルの Python または Node.js は不要です。すべてコンテナ内でビルドされます。

```bash theme={null}
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](http://localhost:3000) を開きます。初回起動時は、管理者アカウントの作成ガイドが表示されます。以上です。

初回ビルド後、その後の起動には以下のみが必要です：

```bash theme={null}
docker compose up -d          # start (skip rebuild if image unchanged)
docker compose down           # stop
docker compose logs -f        # view logs
```

データは Docker の名前付きボリューム（`fim-data`、`fim-uploads`）に永続化され、コンテナの再起動後も保持されます。

**注意：** Docker モードはホットリロードをサポートしていません。コード変更にはイメージの再ビルド（`docker compose up --build -d`）が必要です。ライブリロード機能を備えたアクティブな開発には、以下の**オプション B** を使用してください。

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

前提条件: Python 3.11+、[uv](https://docs.astral.sh/uv/)、Node.js 18+、pnpm。

```bash theme={null}
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.sh`         | Next.js + FastAPI                              | [http://localhost:3000](http://localhost:3000) (UI) + :8000 (API) |
| `./start.sh dev`     | 同じ、ホットリロード付き (Python `--reload` + Next.js HMR) | 同じ                                                                |
| `./start.sh dev:api` | API のみ、開発モード (`--reload`)                      | [http://localhost:8000/api](http://localhost:8000/api)            |
| `./start.sh dev:ui`  | Next.js のみ、開発モード (HMR)                         | [http://localhost:3000](http://localhost:3000)                    |
| `./start.sh api`     | FastAPI のみ (ヘッドレス、統合またはテスト用)                   | [http://localhost:8000/api](http://localhost:8000/api)            |

## 設定

FIM One は**任意の OpenAI 互換 LLM プロバイダー**で動作します — OpenAI、DeepSeek、Anthropic、Qwen、Ollama、vLLM など。

| プロバイダー            | `LLM_API_KEY` | `LLM_BASE_URL`                 | `LLM_MODEL`         |
| ----------------- | ------------- | ------------------------------ | ------------------- |
| **OpenAI**        | `sk-...`      | *(デフォルト)*                      | `gpt-4o`            |
| **DeepSeek**      | `sk-...`      | `https://api.deepseek.com/v1`  | `deepseek-chat`     |
| **Anthropic**     | `sk-ant-...`  | `https://api.anthropic.com/v1` | `claude-sonnet-4-6` |
| **Ollama** (ローカル) | `ollama`      | `http://localhost:11434/v1`    | `qwen2.5:14b`       |

**[Jina AI](https://jina.ai/)** は Web 検索/取得、埋め込み、および完全な RAG パイプラインを実現します（無料ティアあり）。

最小限の `.env`:

```bash theme={null}
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
```

すべての設定オプションの完全なリストについては、[環境変数](/configuration/environment-variables)リファレンスを参照してください。

## 本番環境へのデプロイ

### Docker（推奨）

`docker compose up -d` は必要なすべてをセットアップします — **手動でのサービス設定は不要です**：

| サービス        | 目的            | 設定方法            |
| ----------- | ------------- | --------------- |
| **fim-one** | API + フロントエンド | `.env`（LLMキーなど） |
| **Redis**   | ワーカー間割り込みリレー  | compose により自動設定 |

```bash theme={null}
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`でワーカーを増やします：

```bash theme={null}
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ソケットをマウントします：

```yaml theme={null}
# docker-compose.yml
volumes:
  - /var/run/docker.sock:/var/run/docker.sock
```

#### Cloudflare Tunnel

ゼロオープンポートセットアップの場合は、Nginx の代わりに [Cloudflare Tunnel](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/) を使用してください。すべてのトラフィックは Cloudflare のエッジを通じて流れます。ポート 80/443 を公開したり、SSL 証明書を管理したり、ファイアウォールルールを設定する必要はありません。

<Warning>
  **中国本土ユーザー**: Cloudflare Free/Pro/Business プランは**中国本土に PoP（Points-of-Presence）がありません**。中国本土からのトラフィックは海外エッジ（通常は US West）にルーティングされ、頻繁に 502 エラーが発生し、レイテンシが高くなります。主なユーザーが中国本土にいる場合は、Cloudflare Tunnel を**使用しないでください**。中国本土への信頼できるアクセスには、China Network（JD Cloud パートナーシップ）を備えた Cloudflare Enterprise が必要です。
</Warning>

```
User → Cloudflare Edge (SSL) → Tunnel → cloudflared → fim-one:3000
```

**セットアップ:**

<Steps>
  <Step title="トンネルを作成する">
    [Cloudflare Zero Trust](https://one.dash.cloudflare.com/) → Networks → Tunnels → **Create a tunnel** に移動します。
    コネクタタイプとして **Cloudflared** を選択します。
  </Step>

  <Step title="パブリックホスト名を設定する">
    トンネル設定で、パブリックホスト名を追加します:

    | フィールド    | 値              |
    | -------- | -------------- |
    | **Type** | `HTTP`         |
    | **URL**  | `fim-one:3000` |

    その他のすべての設定（HTTP Host Header、Chunked Encoding、Timeouts、Access）はデフォルトのままにしておきます。

    <Note>URL は `localhost` ではなく Docker サービス名 `fim-one` を使用します。これは `cloudflared` が同じ Docker ネットワーク内の別のコンテナとして実行されるためです。</Note>
  </Step>

  <Step title="トンネルトークンをコピーする">
    トンネルの **Configure** ページで、インストールコマンドを見つけます。これには `eyJ...` で始まるトークンが含まれています。それをコピーします。
  </Step>

  <Step title="トークンを .env に追加する">
    ```bash theme={null}
    # Add to your .env file on the server
    CLOUDFLARE_TUNNEL_TOKEN=eyJhIjoiNj...
    ```
  </Step>

  <Step title="トンネルオーバーレイでデプロイする">
    ```bash theme={null}
    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` を使用できます。
  </Step>

  <Step title="古い DNS レコードを削除する">
    ドメインに以前にサーバーの IP を指すA レコードがあった場合は、Cloudflare DNS で**削除してください**。トンネルは自動的にそのエッジエンドポイントを指す CNAME レコードを作成します。
  </Step>

  <Step title="サーバーポートを閉じる">
    サーバーの `docker-compose.yml` から `ports` セクションを削除（またはコメントアウト）します。トラフィックはトンネルを通じてのみ流れます。インバウンドポートは不要です。
  </Step>
</Steps>

<Tip>
  Cloudflare Tunnel は Free を含むすべてのプランで無料です。帯域幅またはトラフィック制限はありません。
</Tip>

### スクリプトデプロイメント（ベアメタル）

ベアメタルサーバーまたはカスタムプロセスマネージャーの場合、`./start.sh` を直接使用します：

```bash theme={null}
./start.sh           # production mode
./start.sh portal    # same as above (explicit)
./start.sh api       # API only (headless)
```

このモードでは、Redis は自動的に含まれません。システムはデフォルトでシングルワーカー、インプロセスモードで実行されます。これは低トラフィックのデプロイメントに適しています。

ローカルでマルチワーカーと Redis を有効にするには：

```bash theme={null}
# 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
```
