はじめに
GoogleのNotebookLMのように「ドキュメントを読ませて対話できるツール」をクラウドに出さずローカルで完結させたいと思い、
OSSの Open Notebook をDocker+Ollamaで構築しました。
本記事では、
- Windows + WSL2 + Docker Desktop
- LLM 本体は Ollama(ローカルモデル)
- UI と API は Open Notebook の Docker コンテナ
という構成で、実際に動かすところまでの手順を残します。
※本記事は備忘的な記事です。
ゴール
最終的にこういう状態を目指します。
- ブラウザで
http://localhost:8502を開くと Open Notebook の画面が出る -
http://localhost:5055/docsで API(FastAPI の Swagger UI)が開く - Open Notebook の「Settings」から Ollama をプロバイダとして選べる
- PDF やテキストをアップロードして、
- 「この資料を要約して」
- 「この規程のポイントを教えて」
- 「このノートにある情報だけで、○○の手順書を作って」
といった対話ができる
前提環境
試した環境は以下です。
- Windows 11
- Ubuntu
- Docker Desktop
Step 1. Ollamaをインストール & モデルを用意
1-1. Ollamaインストール
-
https://ollama.com から Windows 用インストーラをダウンロード
-
OllamaSetup.exeを実行してインストール -
PowerShell で動作確認:
ollama --versionエラーにならなければOKです。
1-2. ローカルモデルをpull
今回は例として:
- チャット用:
qwen2.5:3b - 埋め込み用:
mxbai-embed-large
を使用しました。
# チャット用
ollama pull qwen2.5:3b
# 埋め込み用
ollama pull mxbai-embed-large
APIが生きてるかも確認しておきます。
curl http://localhost:11434/api/tags
⇒JSONが返ってくればOKです。
Step 2. WSL側:Open Notebook を clone & env 設定
2-1. リポジトリをclone
git clone https://github.com/lfnovo/open-notebook.git
2-2. docker.envを修正
# OpenAI は使わなくても、ダミー値でOKらしいです
OPENAI_API_KEY=dummy_key
# 単一コンテナ用 SurrealDB 設定(公式 Quick Start ベース)
SURREAL_URL="ws://localhost:8000/rpc"
SURREAL_USER="root"
SURREAL_PASSWORD="root"
SURREAL_NAMESPACE="open_notebook"
SURREAL_DATABASE="production"
# Ollama を使う
OLLAMA_API_BASE="http://host.docker.internal:11434"
# Open Notebook ログイン用パスワード
OPEN_NOTEBOOK_PASSWORD=*****
Step 3. Dockerコンテナを起動
起動と状態の確認
docker compose -f docker-compose.single.yml up -d
docker compose -f docker-compose.single.yml ps
こんな感じで動作していればOKです。
docker compose ps だけ実行するとno configuration file provided: not found
となりました。
-f docker-compose.single.yml を毎回付ける必要があります。
Step 4. ブラウザから動作確認
4-1. API(5055)の確認
ブラウザで以下を開きます。
http://localhost:5055/docs
FastAPI の Swagger UI が開けば OK です。
4-2. Open Notebook UI(8502)の確認
ブラウザで以下を開きます。
http://localhost:8502
初回はログイン/パスワード入力画面が出るので、
docker.env で設定した OPEN_NOTEBOOK_PASSWORD を入力します。
↓こんな感じのページが開いたら、

OpenNotebookの起動までは完了です!
Step 5. Open NotebookからOllamaを使う設定
5-1. Ollama API を再確認(Windows)
念のため、PowerShell で再度確認しておきます。
curl http://localhost:11434/api/tags
モデル一覧の JSON が返ってくれば OK です。
5-2. Open NotebookのSettingsでOllamaを追加
-
http://localhost:8502にログイン - 左のメニューからSettingsを開く
- Models の設定画面でOllamaを追加
- Language Models / Embedding Models を設定
例:
Step 6. NotebookLM っぽく使ってみる
ここからは使い方の話です。
だいたいNotebookLMと同じ雰囲気で使えます。
6-1. Notebook を作成
- 左メニューのNotebooksからNew Notebook
- Add Source から以下のいずれかを選び、ソースを追加する
6-2. チャットで質問する
Notebook内のチャット欄から、たとえば以下のような質問を投げます。
- 「このノートに入っている資料の要点を 5 個にまとめてください」
- 「アップロードした資料をもとに、60 分の勉強会用スライド構成案を作ってください」
「このノートにある情報だけを使って回答してください」と明示すると、
NotebookLM 的な「クローズドな知識ベース」を前提にした回答になりやすいです。
おまけ:自分が躓いたポイントまとめ
最後に、自分が実際に躓いたところを箇条書きで残しておきます。
-
docker compose psが動かない
→no configuration file provided: not found
→-f docker-compose.single.ymlを付けて実行する必要があった -
http://localhost:5055/docsで「ページが動作していません」「データが送信されませんでした」
→ SurrealDB接続エラーによりAPIが立ち上がりきっていなかった
→ 上記 URL 修正+コンテナ再起動で解消 -
Open NotebookからOllamaに繋がらない
→OLLAMA_API_BASEやProviderのBase URLをhttp://localhost:11434にしていた
→http://host.docker.internal:11434に変更して解決
さいごに
以上、Open Notebook + Docker + Ollama でローカル版 NotebookLM っぽい環境を作る までの手順でした。
個人的には、
- 社内規程・通達を突っ込んで FAQ を作る
- 業務知識をまとめて対話ベースで思考の助けになるようなチャットボットを作る
といった用途でかなり便利に使えそうだと感じています。
が…今軽く触ってみていますが、とにかく重い…
モデルが悪いのかシンプルにPCのメモリが足りてないのかわかっていませんが、一回のチャット回答に30秒ほどかかります。
もうちょい改善できたらいいな…



