Open Notebookは、資料を使った学習と調査のためのオープンソースアプリです。PDF、Webページ、音声、動画、Office文書を取り込み、それらのソースを基に検索、チャット、ノート整理、Podcast生成を行えます。一般的なチャットツールとの違いは、資料、引用、モデル設定、ノートを自分のワークスペースで管理できる点です。
セルフホストは完全オフラインと同義ではありません。OpenAI、Anthropic、Googleなどのクラウドモデルを選ぶと、モデルに渡すコンテキストは外部サービスへ送信されます。処理経路をローカルに保つには、アプリとモデルの両方をローカル運用する必要があります。
導入前の準備
公式クイックスタートではDocker Desktopが必要です。LinuxサーバーではDocker EngineとComposeプラグインを利用できます。最初に確認します。
|
|
さらに次を用意します。
- データベースとアプリデータを保存する永続化ディレクトリ。
- ランダムな
OPEN_NOTEBOOK_ENCRYPTION_KEY。 - 外部公開する場合はドメイン、HTTPS、アクセス制御。
- クラウドモデルのAPI Key、または接続可能なOllama/LM Studioサービス。
公式Composeファイルを取得する
無関係なプロジェクトにデータを混在させないよう、専用ディレクトリを作ります。
|
|
古いブログ記事からComposeをコピーしないでください。イメージ、ポート、データベース設定は変わる可能性があるため、公式リポジトリの現行ファイルを使います。
起動前に必ず変更する設定
docker-compose.yml または対応する .env で暗号化キーを設定します。
|
|
このキーはデータベース内のAPI Keyを保護します。導入後に不用意に変更すると、保存済みの認証情報を復号できなくなる可能性があります。
公式のローカル例ではSurrealDBに root:root を使えますが、localhostに限定したテスト用です。LANや公開環境ではデータベースのユーザーとパスワードも設定します。
|
|
データベースのデバッグポートは 127.0.0.1:8000 に限定したままにします。利便性だけを理由に 0.0.0.0:8000 へ変更しないでください。
コンテナを起動して確認する
|
|
起動を待ってから次を開きます。
|
|
8502 はWeb UI、5055 はREST API、8000 はSurrealDBのローカルデバッグポートです。docker compose ps でアプリとデータベースの両方が稼働していることを確認します。
ページを開けない場合は、先にログを確認します。
|
|
最初のモデルを設定する
Web UIで次の操作を行います。
- Modelsを開く。
- OpenAI、Anthropic、Google、Ollama、LM StudioなどのProviderを選ぶ。
- API Keyまたはローカルサービスのアドレスを追加する。
- Testで接続を確認する。
- Sync Modelsでモデル一覧を同期し、使用するモデルを選ぶ。
- Default Model Assignmentsで既定モデルを自動または手動で割り当てる。
すべてのProviderがLLM、Embedding、音声認識、音声合成を同時に提供するわけではありません。チャットは動くのに資料検索が失敗する場合、チャットモデルを交換し続けるのではなくEmbeddingモデルを確認してください。
小さな資料セットで検証する
最初から全資料を取り込まないでください。テスト用Notebookを作り、次の3点だけを追加します。
- テキストをコピーできる短いPDF。
- 公開Webページ1件。
- 手書きのテストノート1件。
次を順番に確認します。
- ソースの解析が完了する。
- PDF内の特徴的な文を検索できる。
- 回答にソースまたは引用が表示される。
- 新しいノートを再度開ける。
- コンテナ再起動後も資料が残る。
最後の確認により、surreal_data や notebook_data などの永続化ディレクトリが機能していると判断できます。
よくある問題
8502番ポートが使用中
Composeのホスト側ポートを変更します。
|
|
変更後は http://localhost:18502 を開きます。コンテナ内部のポートは 8502 のままです。
データベースが再起動を繰り返す
最初にSurrealDBのログを確認します。Linuxでは、マウント先に書き込み権限がない、または古いデータベースファイルと新しいイメージの互換性がないことが主な原因です。権限を変更する前にデータをバックアップし、最初の対処として永続化ディレクトリを削除しないでください。
モデルのTestは成功するがQ&Aが失敗する
既定LLM、Embeddingモデル、ソース解析状態の順に確認します。プライベートなモデルサーバーでは、コンテナからホストへ接続できるかも確認してください。コンテナ内の localhost はそのコンテナ自身であり、OllamaやLM Studioを実行するホストとは限りません。
更新とバックアップ
更新前にCompose、.env、データベース、アプリデータをバックアップし、次を実行します。
|
|
docker-compose.yml だけのバックアップでは不十分です。復旧には永続化データ、暗号化キー、データベース認証情報が必要です。
Open NotebookとNotebookLMの選び方
サーバーを管理せずすぐに使いたく、Googleによるホスティングを受け入れられるならNotebookLMが簡単です。セルフホスト、複数Provider、REST API、独自ワークフロー、ローカルモデルが必要ならOpen Notebookが適しています。その代わり、アップデート、バックアップ、アクセス制御、モデル費用を自分で管理します。