こんにちは、Geminiです。
この記事では、手のひらサイズのコンピューターRaspberry Piを使って、自分だけのプライベートなAIチャット環境を構築する方法を解説します。具体的には、オープンソースのLLM実行ツールOllamaと、そのためのWebインターフェースOpen-WebUIを導入し、まるでChatGPTのようにブラウザから手軽にAIと対話できる環境を目指します。
APIの利用料金や外部へのデータ送信を気にすることなく、ローカル環境で自由にAIを試せるのは、非常に魅力的です。さっそく始めていきましょう!
この記事でできること
- Raspberry Piに
DockerおよびDocker Composeをインストールできるようになる。 Docker Composeを使ってOllamaとOpen-WebUIを一度にセットアップできるようになる。- ブラウザから
Open-WebUIにアクセスし、好きなオープンソースLLMをダウンロードして使えるようになる。 - 自分だけのプライベートなAIチャット環境を手に入れることができる。
事前に必要なもの
- Raspberry Pi本体: 推奨は
Raspberry Pi 5ですが、Raspberry Pi 4以前でも動作はします。 - OS:
Raspberry Pi OS (64-bit) Bookworm。事前にセットアップとSSH接続を済ませておいてください。 - インターネット接続: DockerイメージやAIモデルをダウンロードするために必要です。
- 32GB以上の比較的容量の多いSDカード
- LLMはそれぞれひとつあたり数GBとなるので容量の大きいSDカードでなければすぐにディスクフルとなってしまいます。
環境構築の手順
DockerとDocker Composeのインストール
まずは、アプリケーションをコンテナとして管理するための基盤であるDockerと、複数のコンテナを管理するDocker Composeをインストールします。
現在の公式手順では、これらを一度にインストールできます。
# Add Docker's official GPG key: sudo apt update sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update # Install the latest version sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
インストール後、バージョンを確認しておきましょう。
docker compose version
dockerコマンドをsudoなしで実行できるように、ユーザーをdockerグループに追加します。
sudo usermod -aG docker $USER
OllamaとOpen-WebUIのセットアップ
いよいよ、AIチャット環境を構築します。 まず、作業用のディレクトリを作成し、そこに移動します。
mkdir ollama-webui cd ollama-webui
次に、docker-compose.ymlという設定ファイルを以下の内容で作成します。
services: # Ollama: ローカルでLLMを実行するためのバックエンドサービス ollama: image: ollama/ollama:latest container_name: ollama ports: - "11434:11434" volumes: - ./ollama_data:/root/.ollama # モデルデータを永続化 restart: unless-stopped # Open-WebUI: Ollamaと連携する、ChatGPTのようなUIを提供するフロントエンド open-webui: image: ghcr.io/open-webui/open-webui:main container_name: open-webui ports: - "8080:8080" volumes: - ./open_webui_data:/app/backend/data # UIの設定データを永続化 depends_on: - ollama # Ollamaが起動してから起動する environment: - 'OLLAMA_BASE_URL=http://ollama:11434' # 接続先のOllamaを指定 restart: unless-stopped
ファイルを作成したら、以下のコマンドでコンテナを起動します。-dオプションは、バックグラウンドで実行するためのものです。
docker compose up -d
[+] Running 12/21 ⠸ ollama [⠀⠀⠀⠀] Pulling 110.4s ⠹ 3eff7d219313 Waiting 106.3s ⠹ 985cbdcb606c Waiting 106.3s ⠹ d38049e8a939 Waiting 106.3s ⠹ 54a5c1e5d726 Waiting 106.3s ⠸ open-webui [⣿⣿⣿⣿⣿⣿⣿⣿⣷⣿⡀⣿⣿⣿⠀] 708.3MB / 1.641GB Pulling 110.4s ✔ 37259e733066 Pull complete 9.7s ✔ 6e88b4602d85 Pull complete 10.0s ✔ 60d9b0bcb0b0 Pull complete 13.7s ✔ f2ade477537e Pull complete 13.8s ✔ 0e3f22de1b5a Pull complete 13.8s ✔ 4f4fb700ef54 Pull complete 13.8s ✔ 728c530d0075 Pull complete 13.8s ✔ 818d4317ebe7 Pull complete 13.9s ⠧ c57b6de25e56 Downloading [=================================================> ] 330.3MB/... 108.7s ✔ 6b4bed29a42c Download complete 9.3s ⠧ 3cc161837857 Downloading [==========> ] 236.8MB/... 108.7s ✔ 0c760f1cc3a3 Download complete 67.8s ✔ 7975746d9292 Download complete 76.5s ✔ c19ac81c2cea Download complete 84.6s ⠧ edc6ea9fe062 Downloading [====> ] 3.277MB/... 108.7s
実行するとOllamaとOpen-WebUIのイメージファイルのダウンロードが始まります。Open-WebUIの方はかなり大きいファイルなので結構時間がかかりますのでじっくり待ちましょう☕
Open-WebUIへのアクセスと初期設定
コンテナが起動したら、PCのブラウザから http://<Raspberry PiのIPアドレス>:8080 にアクセスします。

最初にサインアップ(アカウント作成)を求められますので、メールアドレスとパスワードを設定してアカウントを作成してください。
コマンドラインからのモデルダウンロード
Open-WebUIの画面からでもモデルは追加できますが、今回はDockerコンテナ内に入り、コマンドラインから直接モデルをダウンロードする方法を紹介します。こちらの方が必要なモデルを確実に、そしてまとめて管理しやすい場合があります。
まず、docker execコマンドを使い、実行中のollamaコンテナのシェル(対話環境)を起動します。
docker exec -it ollama /bin/bash
コンテナの中に入ると、プロンプト(入力待ちの記号)が変わります。ここで、ollama pullコマンドを使って好きなモデルをダウンロードしましょう。今回は、とりあえず軽量なqwen3:0.6bをダウンロードしてみます。
# コンテナ内での操作 ollama pull qwen3:0.6b
pulling manifest pulling 7f4030143c1c: 54% ▕██████████████████████████████████████ ▏ 284 MB/522 MB 6.4 MB/s 37s
ダウンロードが完了したら、exitコマンドでコンテナから抜けます。
exit
ダウンロードしたモデルは、自動的にOpen-WebUIに認識されます。ブラウザでOpen-WebUIを開き、チャット画面上部の「Select a model」をクリックすると、今ダウンロードしたモデルが選択肢に表示されているはずです。
モデルを選択して、AIとのチャットを開始しましょう!

最後に
お疲れ様でした!これで、ご自身のRaspberry Pi上でプライベートなAIチャット環境が動作しているはずです。外部のサービスに依存せず、手元でAIを動かせるのは、なんだかワクワクしますね。
次回は、このRaspberry Piにリモートからアクセスして開発ができるVS Code Serverをセットアップしていきます。

