Open Notebook 开源部署指南:接入 Gemini API 管理本地文档
介绍在 Mac 环境下通过 Docker 部署开源项目 Open Notebook,并集成 Google Gemini API 实现本地文档智能管理。步骤涵盖创建目录、获取 API Key、编写配置文件、启动容器及验证。提供 Web 界面访问、模型配置、测试及常见问题排查指南,帮助用户搭建隐私优先的 NotebookLM 替代品。

介绍在 Mac 环境下通过 Docker 部署开源项目 Open Notebook,并集成 Google Gemini API 实现本地文档智能管理。步骤涵盖创建目录、获取 API Key、编写配置文件、启动容器及验证。提供 Web 界面访问、模型配置、测试及常见问题排查指南,帮助用户搭建隐私优先的 NotebookLM 替代品。

Open Notebook 是一款开源项目,可作为 NotebookLM 的隐私优先替代品。本文介绍如何通过 Docker 部署并接入 Gemini 模型。
所有操作均在 /Users/open-notebook 目录下完成,先通过终端创建、进入该目录:
mkdir -p /Users/open-notebook
cd /Users/open-notebook



需创建 2 个配置文件:docker.env(环境变量,含 Gemini 密钥)和 docker-compose.yml(容器部署配置),配置内容固定可直接复用。
touch docker.env && open -e docker.env
GEMINI_API_KEY 为你的有效密钥,保存时需选择'格式→制作纯文本':# 核心配置:Gemini API Key(必填,替换为你的有效密钥)
GEMINI_API_KEY=你上一步复制的的 Gemini 有效 API Key
# 数据库配置(固定不变,直接保留)
SURREAL_ADDRESS=localhost
SURREAL_PORT=8000
SURREAL_USER=root
SURREAL_PASS=root
SURREAL_NAMESPACE=open_notebook
SURREAL_DATABASE=production
作用:定义容器镜像、端口映射、数据持久化等部署规则,无需修改。
touch docker-compose.yml && open -e docker-compose.yml
粘贴以下配置内容,直接保存(纯文本格式):
version: '3.8'
services:
open_notebook:
# 官方单容器镜像(稳定兼容 Gemini,无需修改)
image: lfnovo/open_notebook:v1-latest-single
# 端口映射:8502(Web 界面)、5055(API 服务,必需)
ports:
- "8502:8502"
- "5055:5055"
# 加载当前目录的 docker.env 环境变量
env_file:
- ./docker.env
# 数据持久化:本地文件夹保存笔记和数据库,删除容器不丢失数据
volumes:
- ./notebook_data:/app/data
- ./surreal_single_data:/mydata
# 容器异常自动重启(保障服务稳定性)
restart: always
首次运行会自动拉取官方镜像,视网络情况需 1-5 分钟,耐心等待:
# 彻底启动(先停止删除旧容器,再后台启动新容器,确保配置生效)
docker compose down && docker compose up -d
启动成功标识:终端输出 Container open-notebook-open_notebook-1 Started 或末尾显示「Done」。
# 查看容器状态,STATUS 列显示「running」即为正常
docker compose ps
若 STATUS 显示「exited」,说明启动失败,执行以下命令查看日志排查:
# 实时查看容器日志,按 Ctrl+C 退出
docker compose logs -f open_notebook
确认容器已读取到有效密钥:
docker compose exec open_notebook env | grep GEMINI_API_KEY
正常输出:GEMINI_API_KEY=你的有效密钥(说明加载成功)。
http://localhost:8502

若 8502 端口被占用,修改 docker-compose.yml 中 8502:8502 为 8503:8502,重启容器后访问 http://localhost:8503。
优先选择兼容模型(避免新模型可用性问题),操作如下:



gemini-2.0-flash、gemini-2.5-pro-preview-06-05gemini-2.5-flash-preview-tts、gemini-2.5-pro-preview-ttstext-embedding-004
在输入框输入测试指令(如'解释 Docker 的核心优势''Vite 与 Webpack 核心区别解析')


/Users/open-notebook/notebook_data 文件夹中,不会丢失。如果你需要更复杂的配置,比如远程服务器部署,可以去它的 GitHub 页面查看详细文档。
| 报错现象 | 核心原因 | 解决方案 |
|---|---|---|
| API key not valid / API_KEY_INVALID | Gemini API Key 无效/过期/复制错误 | 重新获取有效密钥,替换 docker.env 中的值,重启容器 |
| Model is not a LanguageModel: None | 模型配置未加载/密钥未生效/模型名称错误 | 1. 确认密钥有效;2. 选择 gemini-pro 而非新模型;3. 执行 docker compose down && up -d 彻底重启 |
| 500 Internal Server Error | 后端处理请求异常(密钥/网络/模型问题) | 查看容器日志定位原因;确保网络能访问 Google;验证密钥加载成功 |
| 无法访问 http://localhost:8502 | 端口被占用/容器未正常启动 | 1. 执行 lsof -i:8502 查看端口占用;2. 修改 yml 端口映射(如 8503:8502);3. 重启容器 |
| gemini-2.0-flash 报错 | 新模型可用性有限/账号无权限 | 切换为 gemini-pro 或 gemini-1.5-flash,优先保障基础功能正常 |
/Users/open-notebook/notebook_data,请勿手动删除该文件夹docker compose down && docker compose up -d 彻底重启容器,否则配置不生效
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online