Google notebookLMを使ったことがあるが、APIがないためプログラムから自動処理ができないのが残念。
そこで同様の機能があるらしいopen notebookを導入してみたメモ。
- open notebook https://github.com/lfnovo/open-notebook/blob/main/docs/0-START-HERE/quick-start-local.md を見ながら以下を実行した。Step2の赤字部分を変更した。
- Prerequisites
- Docker Desktop installed これは必要
- Local LLM – Choose one: Ollama を使うことにする。
- Step 1: Choose Your Setup
- Local Machine (Same Computer) で実施することにする。
- Step 2: Create Configuration (1 min)
- 適当なフォルダに次のdocker-compose.ymlファイルを作成しておく。ただし
- surrealdb:
- user: root
- restart: always 少なくともuser: rootの1行はsurrealdb:セクションに追加しないとsurrealdbコンテナが起動しなかった(permission deniedのエラーで落ちる)
- surrealdb:
- 同じフォルダ上で、docker compose up -d を実行する。
- 以上により、open notebook と ollama と surrealdbの3つのdocker コンテナが動く状態で稼働する。
- 適当なフォルダに次のdocker-compose.ymlファイルを作成しておく。ただし
- Prerequisites
services:
surrealdb:
image: surrealdb/surrealdb:v2
command: start --user root --pass password --bind 0.0.0.0:8000 rocksdb:/mydata/mydatabase.db
ports:
- "8000:8000"
volumes:
- ./surreal_data:/mydata
user: root
restart: always
open_notebook:
image: lfnovo/open_notebook:v1-latest-single
pull_policy: always
ports:
- "8502:8502" # Web UI (React frontend)
- "5055:5055" # API (required!)
environment:
# NO API KEYS NEEDED - Using Ollama (free, local)
- OLLAMA_API_BASE=http://ollama:11434
# Database (required)
- SURREAL_URL=ws://surrealdb:8000/rpc
- SURREAL_USER=root
- SURREAL_PASSWORD=password
- SURREAL_NAMESPACE=open_notebook
- SURREAL_DATABASE=open_notebook
volumes:
- ./notebook_data:/app/data
- ./surreal_data:/mydata
depends_on:
- surrealdb
restart: always
ollama:
image: ollama/ollama:latest
ports:
- "11434:11434"
volumes:
- ./ollama_models:/root/.ollama
environment:
# Optional: set GPU support if available
- OLLAMA_NUM_GPU=0
restart: always
- メモ
- command: start –user root –pass password –bind 0.0.0.0:8000 rocksdb:/mydata/mydatabase.db
- surrealDBというマルチモーダルなデータベースエンジンを使用して、mydatabase.dbという名前でデータベスを作成する。データベースへのアクセスuserはroot、パスワードはpasswordとし、コンテナで外部アドレスに8000番ポートで公開。このuserとpasswordはコンテナOSやホストOSのユーザ名とは関係はなく、データベースアクセス用のuserとpasswordなので、なんでもよいし、このままでよい。
- user: root これは、コンテナOSのrootユーザでsurrealDBを起動するということらしい。これが追加必須だった。
- command: start –user root –pass password –bind 0.0.0.0:8000 rocksdb:/mydata/mydatabase.db
- 起動後のdocker ps コマンドの出力は次のようになっていたら、無事起動ということだと思われる。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
abc862898493 lfnovo/open_notebook:v1-latest-single "/usr/bin/supervisor…" 3 days ago Up 3 days 0.0.0.0:5055->5055/tcp, [::]:5055->5055/tcp, 0.0.0.0:8502->8502/tcp, [::]:8502->8502/tcp open-notebook-local-open_notebook-1
dc64340ac7e8 ollama/ollama:latest "/bin/ollama serve" 3 days ago Up 3 days 0.0.0.0:11434->11434/tcp, [::]:11434->11434/tcp open-notebook-local-ollama-1
0e145563abfc surrealdb/surrealdb:v2 "/surreal start --us…" 3 days ago Up 3 days 0.0.0.0:8000->8000/tcp, [::]:8000->8000/tcp open-notebook-local-surrealdb-1
- メモ
- コンテナ open-notebook-local-open_notebook-1 :
- 5055番ポートで外部からopen notebook APIにアクセスできる。
- 8502番ポーロで外部からopne notebookのWebUIにアクセスできる。
- コンテナ open-notebook-local-ollama-1 :
- 11434番ポートで外部からollama APIにアクセスできる。
- コンテナ open-notebook-local-surrealdb-1 :
- 8000番ポートで外部からsurrealDBにアクセスできる。
- コンテナ open-notebook-local-open_notebook-1 :
- 上記の状態になっているので、ホストOS(DGX Spark OS)のFirewallが上記ポートを開けているのであれば、他のPCからネットワーク越しに以下のアクセスできるようになる。
- テスト: 同じマシンまたは別のPCから、http://DGX SparkのIPアドレス:8502 でopen notebook にアクセスできるはず。
- ここまでで、open notebook が動くようになった。続きは次回。
- open noteboook → ollama → selected model (LLM例:gpt-oss:120b、gemma3:12b)(Embedding model例:mxbai-embed-large) という呼び出し関係で動作する。