---
title: "安装与启动"
description: "用一个 Docker 容器启动 Notarium，在 localhost:3000 打开它，走完创建 owner 的首次运行设置界面。"
---

# 安装与启动

Notarium 以**单个自包含镜像**的形式发布：一个进程同时提供 Web 界面、REST API 和面向 agent 的 MCP 端点，知识引擎就跑在它内部。无需任何外部服务——没有数据库、没有消息代理、没有独立的搜索引擎。开始所需的一切，只有 Docker 和一个空闲端口。

本页是快速路径：启动一个实例，在浏览器里打开它，创建 owner。完整的自托管细节（Postgres、反向代理、生产配置）另见[自托管](/docs/self-hosting/)一节。

## 你需要准备什么

- **Docker**（或 Docker Desktop）——别的都不用装：Node、数据库和搜索索引都已在镜像内。
- 一个空闲端口——默认为 **3000**。
- 一点磁盘空间，用于存放你的笔记和派生索引。

## 用单个容器启动

最短的路径是运行预构建镜像 `docouno/notarium`：

```bash
docker run -d --name notarium \
  -p 3000:3000 \
  -v notarium-data:/data \
  docouno/notarium:latest
```

几秒钟后，打开 `http://localhost:3000`。

单个 `/data` 数据卷保存全部状态——元数据库、各类索引、你的笔记，以及导出产物。再没有别的要配置：端口 3000 和 `/data` 路径都已固化在镜像里。你可以把 `3000` 左侧的端口改成任意一个空闲端口。

> [!note] 从源码构建
> 如果镜像还没从镜像仓库拉取下来，可在 Notarium 主仓库用 `make up`（见下文）从源码构建：行为完全一致。

另一种方式是通过 `make` 从源码构建——它是一切与 Docker 相关操作的统一入口：

```bash
cp .env.example .env   # 默认值即可用——无需填写任何内容
make up                # 构建生产镜像并启动 → http://localhost:3000
```

其余命令在日常运维中很有用：`make logs` 看日志，`make ps` 看状态，`make down` 停止并移除，`make sh` 进入容器内的 shell。

## 数据卷：数据存在哪里

全部状态都存在单个数据卷里——重建容器时需要保住的就是它：

| 数据卷 | 挂载点 | 存放内容 |
|---|---|---|
| `notarium-data` | `/data` | 一切：你的笔记（`/data/spaces`）、元数据库（`/data/meta.db`）、派生的搜索索引（`/data/engine`），以及导出产物（`/data/jobs`） |

核心原则是 **文件优先（file-first）**：真相之源是 `/data/spaces` 里的 `.md` 文件。`/data/engine` 中的搜索索引和图谱是派生物：它们从文件重建而来，即便丢失，一次重新索引即可恢复。而元数据库 `/data/meta.db`——版本历史、用户和访问权限——只存在于数据卷中，因此 `/data` 值得与你的笔记同等看护。做备份时，你只需要笔记和 `meta.db`；派生索引可以不备份。

> [!tip] 你自己的端口
> 修改 `-p <你的端口>:3000` 左侧的 `3000` 端口即可（或通过 `.env` 里的 `PORT` 变量）。镜像监听容器的所有接口——对外暴露的正是你映射出去的那部分。

## 首次运行：设置界面

首次访问时，Notarium 会用一个**设置界面**迎接你。没有预设密码：第一位访问者创建实例的 **owner**——该账户成为管理员，并成为它所创建空间的 owner。此后设置界面就此永久关闭，而你会落到编辑器里，已经身处自己的个人空间中。

这就是默认认证模式 `AUTH_MODE=password` 的运作方式。它面向可公开访问的实例设计：登录、会话、给 agent 用的个人令牌。第二种模式 `none`（单一的全权限主体，没有登录界面）只适合可信环境：桌面、本地开发或封闭的内网。详情见[认证](/docs/self-hosting/authentication/)一节。

## 基础配置

默认即零配置：直接用现成镜像就足以起步。精细调整通过环境变量完成（在 Docker 中由 `.env` 透传，镜像里不固化任何内容）：

| 变量 | 值 | 默认值 |
|---|---|---|
| `PORT` | 服务器监听的端口 | `3000` |
| `AUTH_MODE` | `password`（登录 + 设置）或 `none`（可信环境） | `password` |
| `VECTOR_SEARCH` | 在词法搜索之外启用语义（向量）搜索 | 镜像中为 `off` |

全文搜索始终可用，无需任何配置。语义（向量）搜索按需开启，通过 `VECTOR_SEARCH=on` 标志：它会拉起一个本地嵌入模型（数百兆量级的内存占用），因此在已发布的镜像中默认关闭，需要有意识地开启。不开它，搜索照样在全文上工作——不会报错，这是常规模式。变量的完整清单和搜索配置见[配置](/docs/self-hosting/configuration/)和[搜索配置](/docs/self-hosting/search-setup/)两节。

## 下一步

实例已启动、owner 已创建——是时候充实你的知识库并把它开放给 agent 了：

- [你的第一篇笔记](/docs/getting-started/first-note/)——文件树、Web 编辑器，以及保存为 `.md`。
- [接入 agent](/docs/getting-started/connect-agent/)——令牌、`POST /mcp` 端点，以及第一次调用。

想通盘理解整个模型？去看[概念](/docs/concepts/)一节：空间、笔记类型、图谱，以及访问模型。
