ホーム › 記事一覧 › ミニPCでOllama + Open WebUIを動かす:CPUだけで使えるモデルサイズの目安とLAN内への公開

Ollama

ミニPCでOllama + Open WebUIを動かす:CPUだけで使えるモデルサイズの目安とLAN内への公開

公開 2026-10-30読了 5 分

Photo: Steve A Johnson / Pexels

この記事でわかること
GPUのないN100クラスのミニPCで、OllamaとOpen WebUIをDocker Composeで動かす手順。CPUだけで現実的に使えるモデルサイズの目安、メモリ量の考え方、家族がLAN内のブラウザから使えるようにする公開方法までまとめます。

先に結論です。GPU のない N100 クラスのミニPCでも、3B〜4B パラメータ程度の量子化モデルなら、チャット用途で「待てる」速度で動く とされています。7B〜8B も動きますが、返答が出てくるまでの待ち時間が長くなります。構成は Ollama と Open WebUI を同じ Docker Compose にまとめ、Open WebUI のポートだけを LAN に出す 形にすると、設定が単純で安全です。

CPUだけで使えるモデルサイズの目安

ローカル LLM で一番効くのは、CPU の速さよりも メモリの量と速さ です。モデルは丸ごとメモリに載せて動かすため、載らないサイズはそもそも動きません。

Ollama で配布されている標準のモデルは 4bit 程度に量子化されていて、ファイルサイズの目安は次のとおりです。

パラメータ数モデルの大きさ(目安)必要なメモリの目安CPUだけでの体感
1B〜2B1〜2GB8GB で余裕軽い。要約・言い換え向き
3B〜4B2〜3GB8GB でも可、16GB 推奨普段使いの本命
7B〜8B5GB 前後16GB 以上動くが待ち時間が長い
14B 以上9GB 以上32GB 以上CPU だけでは実用的でないことが多い

実際に必要なメモリは、モデルの大きさに加えて会話の長さ(コンテキスト)の分と、OS・他のコンテナの分が乗ります。モデルの大きさの 1.5〜2 倍の空きメモリ を見ておくと安心です。

N100 のミニPCはメモリが 1 スロット(最大 16GB 程度とされる機種が多い)のものが多いため、3B〜4B を中心に使い、必要なときだけ 7B〜8B を試す くらいが現実的な線だと私は考えています。最初に試すなら qwen3:4b、gemma3:4b、llama3.2:3b あたりが候補になります。日本語の出来はモデルによって差が大きいので、2〜3 種類を入れて比べてみてください。

また、メモリはシングルチャネルよりデュアルチャネルのほうが生成速度が出るとされています。これから買うなら、メモリを 2 枚挿せるミニPCを選ぶのも一つの手です。メモリ増設できるミニPC(デュアルチャネル対応)

Docker Composeで2つをまとめて立てる

Ollama はホストに直接インストールする方法もありますが、自宅サーバーで他のコンテナと並べて管理するなら、Compose にまとめるほうが更新や作り直しが楽です。

services:
  ollama:
    image: ollama/ollama
    container_name: ollama
    restart: unless-stopped
    volumes:
      - ./ollama:/root/.ollama        # ダウンロードしたモデルの置き場
    # ports は書かない(LANには出さない)

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    restart: unless-stopped
    depends_on:
      - ollama
    ports:
      - "3000:8080"
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
    volumes:
      - ./open-webui:/app/backend/data  # ユーザー・会話履歴の保存先

ポイントは 2 つです。

  • Ollama の 11434 番ポートは公開しない:Open WebUI からは Compose 内のサービス名 ollama で届くので、外に出す必要がありません。Ollama の API には認証がないため、LAN に出すと誰でもモデルを動かせる状態になります
  • OLLAMA_BASE_URL は環境変数で指定する:古い記事にある OLLAMA_API_BASE_URL は今の版では使われていないとされています

起動してモデルを取得します。

docker compose up -d
docker exec -it ollama ollama pull qwen3:4b
docker exec -it ollama ollama list

モデルは数 GB あるので、取得には回線次第で数分〜十数分かかります。保存先の ./ollama は、システム用 SSD の空き容量に余裕がある場所にしてください。

Ollamaをホストに入れている場合

すでにホストに Ollama をインストールしている場合は、Open WebUI のコンテナから localhost では届きません(コンテナの中の localhost を指すため)。次のように書き換えます。

  open-webui:
    extra_hosts:
      - "host.docker.internal:host-gateway"
    environment:
      - OLLAMA_BASE_URL=http://host.docker.internal:11434

あわせて、ホスト側の Ollama が 127.0.0.1 だけで待ち受けていると繋がらないため、sudo systemctl edit ollama で Environment="OLLAMA_HOST=0.0.0.0:11434" を足して再起動する必要があります。この場合は 11434 番が LAN にも開くので、ファイアウォール(ufw など)で他の機器からの接続を閉じておきます。

LAN内の家族が使えるようにする

ブラウザで http://<ミニPCのIPアドレス>:3000 を開くと、Open WebUI の画面が出ます。

最初に作ったアカウントが管理者になる ので、セットアップしたらすぐ自分のアカウントを作ってください。そのうえで次の設定をしておきます。

  • 新規登録を止める:管理者パネルの設定で新規サインアップを無効にし、家族のアカウントは管理者から作る。環境変数 ENABLE_SIGNUP=false でも止められるとされています
  • 使えるモデルを絞る:重い 7B〜8B を家族が選ぶと、その間ほかの人の返答が止まったように遅くなります。普段使い用に 1 つ既定のモデルを決めておくと混乱が減ります
  • 管理画面に保存した接続先を確認する:Open WebUI は管理画面で保存した Ollama の接続先が環境変数より優先されることがあり、Compose を書き換えても繋がらないときはここを見ます

http://192.168.x.x:3000 のままだと覚えにくいので、Nginx Proxy Manager などでサブドメインを振ると家族にも案内しやすくなります。外出先から使いたい場合は、ポート開放ではなく Tailscale 経由にするのが安全です。

遅い・止まるときに見るところ

  • docker stats でメモリを見る:メモリが足りずにスワップしていると、極端に遅くなります。1 つ小さいモデルに替えるのが一番効きます
  • モデルを複数同時に読み込んでいないか:docker exec -it ollama ollama ps で、今メモリに載っているモデルを確認できます
  • CPU 温度:生成中は CPU がほぼ全力で回るため、ファンが回り続けたり温度で速度が落ちたりします。長時間使うなら置き場所と冷却も見直してください

まとめ

  • GPU なしの N100 クラスなら、3B〜4B の量子化モデルが普段使いの中心。7B〜8B は 16GB 以上のメモリで「動くが待つ」と考える
  • 必要メモリはモデルの大きさの 1.5〜2 倍を目安にし、他のコンテナの分も残す
  • Ollama と Open WebUI は同じ Compose にまとめ、LAN に出すのは Open WebUI の 3000 番だけにする
  • 最初のアカウントが管理者になるので、作成後すぐに新規登録を止め、家族のアカウントは管理者から作る

運営者が作った Excel テンプレートを BOOTH で配布しています。IT 資産管理台帳(無料 Lite 版あり) / IT 資格の学習管理シート

部長(本業: IT インフラ) 家でも同じことをして遊んでいます。記事は実機で試してから書き、失敗もそのまま載せます。