コンテンツにスキップ

Ollama セットアップガイド(Mac / Windows)

📁 docs/dev-environment/artifact/ollama-setup-guide.md

関連Issue: KZ55230/MyLab#303 親Issue: KZ55230/MyLab#95


概要

Mac と Windows の両環境で Ollama を運用し、ローカルLLMを活用する。

目的: - インターネット接続不要のオフライン推論(プライバシー保護・コスト削減) - Gemini API の代替として Claude Code スキルとの連携 - Windows(高性能GPU搭載)を推論サーバとして使い、Macからリモート呼び出し

構成イメージ:

Mac (Claude Code / ollama-continue-sync スキル)
  └──[LAN]──→ Windows (Ollama サーバ, OLLAMA_HOST=0.0.0.0:11434)
  └──[localhost]──→ Mac (Ollama ローカル, 軽量モデル)

Mac環境セットアップ

インストール方法

Homebrew 経由(推奨):

brew install ollama

curl 経由(Homebrew がない場合):

curl -fsSL https://ollama.com/install.sh | sh

セットアップスクリプトを使う場合:

chmod +x scripts/setup_ollama_mac.sh
./scripts/setup_ollama_mac.sh

Ollamaの起動

# バックグラウンドで起動
ollama serve &

# または Homebrew サービスとして起動(自動起動設定後)
brew services start ollama

モデルのpull

# 推奨モデル(14B / Apple Silicon M2以上で快適に動作)
ollama pull qwen3:14b

# 軽量モデル(M1など低スペック向け)
ollama pull qwen3:7b

# 動作確認
ollama run qwen3:14b "こんにちは"

Claude Code スキルとの連携

ollama-continue-sync スキル

.claude/skills/ に配置されている ollama-continue-sync スキルを使うことで、Claude Code セッション間でOllamaとの会話履歴を引き継ぐことができる。

使い方:

# Claude Code内で呼び出す
/skill ollama-continue-sync

secure-llm スキル

ローカルLLMを安全に使うためのプロンプト管理スキル。機密情報をクラウドに送らずにLLMを呼び出す場面で活用する。

/skill secure-llm

launchdによる自動起動設定

Macの再起動後も Ollama を自動起動するには、launchd を使う。

plistファイルの作成:

~/Library/LaunchAgents/com.ollama.serve.plist を作成する:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.ollama.serve</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/ollama</string>
        <string>serve</string>
    </array>
    <!-- ログ出力先 -->
    <key>StandardOutPath</key>
    <string>/tmp/ollama.log</string>
    <key>StandardErrorPath</key>
    <string>/tmp/ollama.error.log</string>
    <!-- ログイン時に自動起動 -->
    <key>RunAtLoad</key>
    <true/>
    <!-- クラッシュ時に自動再起動 -->
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>

注意: Homebrew でインストールした場合、ollama のパスは /opt/homebrew/bin/ollama(Apple Silicon)または /usr/local/bin/ollama(Intel)になる。which ollama で確認すること。

launchdに登録・起動:

# 登録
launchctl load ~/Library/LaunchAgents/com.ollama.serve.plist

# 起動確認
launchctl list | grep ollama

# 停止する場合
launchctl unload ~/Library/LaunchAgents/com.ollama.serve.plist

Homebrew サービスを使う方法(より簡単):

# 自動起動設定
brew services start ollama

# 自動起動の停止
brew services stop ollama

# 状態確認
brew services list | grep ollama

Windows環境セットアップ

外部公開設定(OLLAMA_HOST)

Ollamaのデフォルトは localhost:11434 で、同一PC内からしかアクセスできない。MacなどLAN上の他PCからアクセスするには OLLAMA_HOST=0.0.0.0:11434 を設定する。

セキュリティ注意: 0.0.0.0 は全ネットワークインターフェースに公開する設定。自宅LAN等の内部ネットワークのみで使用すること。公共Wi-Fiや VPNなしの環境では設定しないこと。

PowerShell(管理者権限)で実行:

# ユーザー環境変数として永続化
[System.Environment]::SetEnvironmentVariable("OLLAMA_HOST", "0.0.0.0:11434", "User")

# 現在のセッションにも反映
$env:OLLAMA_HOST = "0.0.0.0:11434"

セットアップスクリプトを使う場合(管理者権限で実行):

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\scripts\setup_ollama_windows_external.ps1

ファイアウォール設定

ポート 11434 を内部ネットワーク(Privateプロファイル)に開放する。

# 管理者権限が必要
New-NetFirewallRule `
    -DisplayName "Ollama API (Port 11434)" `
    -Direction Inbound `
    -Protocol TCP `
    -LocalPort 11434 `
    -Action Allow `
    -Profile Private `
    -Description "Ollama API サーバーへのアクセスを内部ネットワークから許可する"

既存ルールの確認:

Get-NetFirewallRule -DisplayName "Ollama API*" | Format-Table DisplayName, Enabled, Profile, Direction

Ollamaサービス再起動

環境変数を変更後は、Ollamaプロセスを再起動して設定を反映する:

# プロセス停止
taskkill /IM ollama.exe /F

# 再起動(最小化ウィンドウで起動)
Start-Process -FilePath "ollama" -ArgumentList "serve" -WindowStyle Minimized

ollamaサービス自動起動設定

Windowsの起動時にOllamaを自動起動するには、タスクスケジューラに登録する。

タスクスケジューラへの登録(PowerShell):

$action = New-ScheduledTaskAction -Execute "ollama" -Argument "serve"
$trigger = New-ScheduledTaskTrigger -AtLogOn
$settings = New-ScheduledTaskSettingsSet -ExecutionTimeLimit (New-TimeSpan -Hours 0) -RestartCount 3
$principal = New-ScheduledTaskPrincipal -UserId $env:USERNAME -LogonType Interactive

Register-ScheduledTask `
    -TaskName "OllamaServe" `
    -Action $action `
    -Trigger $trigger `
    -Settings $settings `
    -Principal $principal `
    -Description "Ollamaサーバーをログイン時に自動起動する"

確認・削除:

# 登録確認
Get-ScheduledTask -TaskName "OllamaServe"

# 削除する場合
Unregister-ScheduledTask -TaskName "OllamaServe" -Confirm:$false

MacからWindowsへのリモート接続テスト

接続テストスクリプトの使い方

scripts/test_ollama_remote.py を使う:

# デフォルト(localhost)への接続テスト
python scripts/test_ollama_remote.py

# WindowsのIPアドレスを指定(例: 192.168.1.100)
python scripts/test_ollama_remote.py --host 192.168.1.100 --port 11434

出力例(成功時):

==================================================
 Ollama 接続テスト
==================================================
  接続先: http://192.168.1.100:11434
  タイムアウト: 10秒
  実行日時: 2026-03-30 12:00:00

[INFO] /api/tags エンドポイントに接続中...
[OK] 接続成功!

利用可能なモデル: 3 件

  モデル名             サイズ        変更日時
  ----------------     ----------    --------------------
  qwen3:14b            8.2 GB        2026-03-28 10:30:00
  qwen3:7b             4.7 GB        2026-03-27 09:15:00
  gemma3:12b           7.8 GB        2026-03-26 08:00:00

curlで手動確認

# モデル一覧の取得
curl http://192.168.1.100:11434/api/tags

# チャット(ストリーミング)
curl http://192.168.1.100:11434/api/chat \
  -H "Content-Type: application/json" \
  -d '{"model": "qwen3:14b", "messages": [{"role": "user", "content": "こんにちは"}]}'

Pythonコードからリモート接続

import ollama

# WindowsのIPアドレスを指定してクライアントを生成
client = ollama.Client(host="http://192.168.1.100:11434")

response = client.chat(
    model="qwen3:14b",
    messages=[{"role": "user", "content": "こんにちは"}]
)
print(response["message"]["content"])

推奨モデル表

モデル名 サイズ 用途 推奨環境
qwen3:14b ~8 GB 汎用・コーディング・日本語対応 Mac M2以上 / Windows
qwen3:7b ~5 GB 軽量・高速推論・日本語対応 Mac M1 / 低スペックPC
gemma3:12b ~8 GB マルチモーダル・汎用 Mac M2以上 / Windows

補足: Windows に 30B モデルを導入済みの場合は、MacからWindowsへリモート接続してそちらを使うことで、Macのメモリ消費を抑えつつ高精度な推論が可能。


トラブルシューティング

Macで ollama: command not found

# Homebrewでインストールした場合はPATHを確認
echo $PATH | grep -o "/opt/homebrew/bin\|/usr/local/bin"

# PATHが通っていない場合は ~/.zshrc に追加
echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

Macで Error: listen tcp 127.0.0.1:11434: bind: address already in use

# 既存のollamaプロセスを確認・停止
pgrep -a ollama
pkill -f "ollama serve"

WindowsからMacへ接続できない

  1. ollama serve が起動しているか確認:
    curl http://<MacのIP>:11434/api/tags
    
  2. Mac側の OLLAMA_HOST0.0.0.0:11434 になっているか確認:
    echo $OLLAMA_HOST
    
  3. Macのファイアウォールでポート 11434 が許可されているか確認: システム設定 → ネットワーク → ファイアウォール

WindowsでOLLAMA_HOSTを設定したのに接続できない

環境変数の変更は、Ollamaプロセスの再起動後に有効になる。

# プロセスを確実に停止してから再起動する
taskkill /IM ollama.exe /F
Start-Sleep -Seconds 2
Start-Process "ollama" -ArgumentList "serve"

モデルのpullが途中で止まる

# 再実行すると続きからpullされる(レジューム対応)
ollama pull qwen3:14b

ollama run が遅い / タイムアウトする

  • Mac: Metalアクセラレーションを使っているか確認。ollama ps でGPUの使用状況を確認できる。
  • Windows: GPU(CUDA)が認識されているか確認: ollama psGPU の表示があればOK。
  • リモート接続の場合: LAN速度がボトルネックになる場合がある。有線LAN接続を推奨。