Linux 服务器部署
在无桌面环境的 Linux 服务器上以无头模式运行 Nowledge Mem
Nowledge Mem 可以在没有图形界面的 Linux 服务器上以无头模式运行。安装相同的 .deb 或 .AppImage 包,然后通过命令行管理一切。
可用性
每日简报、洞察检测、知识图谱丰富等后台智能能力,需要已配置的远程 LLM,以及你的当前版本所对应的许可能力。这个页面关注的是部署方式,而不是套餐包装。
sudo 只用于安装软件包和安装 system 服务。
平时运行 nmem serve、nmem config ...、nmem license ...、nmem tui 这类命令时,请使用你的普通 Linux 用户。
新版本会默认阻止这些会写本地状态的命令在 root 下运行,避免 fresh install 之后悄悄留下 root 属主的 Mem 文件。
系统要求
| 要求 | 规格 |
|---|---|
| 操作系统 | Ubuntu 22.04+、Debian 12+,或兼容版本(通过 AppImage) |
| 架构 | x86_64 |
| 内存 (RAM) | 最低 8 GiB(推荐 16 GiB) |
| 磁盘空间 | 10 GiB 可用空间 |
| 依赖 | libgtk-3-0、libwebkit2gtk-4.1-0、zstd(.deb 自动安装) |
安装
设置 APT 仓库以通过 apt upgrade 自动更新:
curl -fsSL https://nowledge-co.github.io/community/apt/install.sh | sudo bash
sudo apt-get install nowledge-mem添加 GPG 签名密钥和仓库源。后续更新在运行 sudo apt-get update && sudo apt-get upgrade 时自动安装,或通过 unattended-upgrades(如已配置)自动应用。
# 安装包
sudo dpkg -i nowledge-mem_*.deb
# 修复缺失的依赖
sudo apt-get install -f# 添加可执行权限
chmod +x Nowledge_Mem_*.AppImage
# 首次运行以解压 Python 运行时
./Nowledge_Mem_*.AppImage --appimage-extract
# 首次运行后 nmem CLI 可用
# 路径: ~/.local/bin/nmem.deb 安装后脚本自动完成以下操作:
- 解压内置的 Python 运行时
- 在
/usr/local/bin/nmem创建nmemCLI - 配置 APT 仓库以自动更新(通过 APT 安装时)
- 设置桌面启动项(在无头服务器上可忽略)
验证 CLI 可用:
nmem --version快速开始
启动服务器
nmem serve此命令在前台运行服务器(按 Ctrl+C 停止)。服务器默认在 0.0.0.0:14242 上启动。通过参数自定义:
nmem serve --host 127.0.0.1 --port 8080生产环境建议使用 nmem service install。它会设置一个后台 systemd 服务,开机自动启动。参见下方作为 systemd 服务运行。
激活许可证
nmem license activate <许可证密钥> # 通常会自动从密钥中识别邮箱
nmem license status # 验证激活状态
nmem license renew # 以后如果授权过期,可刷新这台设备的授权如果自动识别失败,再显式运行 nmem license activate <许可证密钥> <邮箱>。
配置 LLM 提供商
Linux 上需要远程 LLM(不支持本地 LLM):
nmem config provider set anthropic \
--api-key sk-ant-xxx \
--model claude-sonnet-4-20250514
nmem config provider test # 验证连接支持的提供商包括:anthropic、openai、gemini、xai、deepseek、minimax、zai、moonshot、ollama、openrouter 以及 OpenAI 兼容端点。
完整提供商矩阵与注意事项见:LLM 提供商。
启用后台智能
nmem config settings set backgroundIntelligence true
nmem config settings set autoDailyBriefing true验证所有配置
nmem status作为 systemd 服务运行
生产部署建议使用 nmem service install 设置后台 systemd 服务,开机自动启动:
# 一键安装、启用并启动
sudo nmem service install
# 如果你是在 root shell 或自动化脚本里安装,请显式指定真正的 Linux 用户
sudo nmem service install --service-user <linux-user>
# 自定义主机/端口
sudo nmem service install --host 0.0.0.0 --port 8080# 无需 root 权限
nmem service install --usersystem 服务应当以你的日常 Linux 用户运行,而不是 root。
如果 sudo 不能正确识别目标账号,请加上 --service-user <linux-user>。
如果你用的是用户级服务,请直接以该用户运行 nmem service install --user,不要加 sudo。
如果你之前在旧版本里用 root 运行过,~/.config/co.nowledge.mem.desktop/ 下面有些文件可能仍然属于 root。
这时许可证操作、LLM 提供商设置保存,或者 Access Anywhere 设置都可能失败,先把这些文件的属主改回运行服务的 Linux 用户。
新版本在发生这种情况时会直接告诉你是哪一个路径有问题。
常见修复命令如下:
sudo chown -R <linux-user>:<linux-user> ~/.config/co.nowledge.mem.desktop
sudo chown -R <linux-user>:<linux-user> ~/.local/share/NowledgeGraph如果你自定义了 XDG_CONFIG_HOME 或 XDG_DATA_HOME,请改成对应目录。
管理服务
nmem service status # 查看服务状态
nmem service logs -f # 跟踪服务日志
nmem service stop # 停止服务
nmem service start # 启动服务
nmem service uninstall # 停止、禁用并删除服务如果安装的是用户级服务,请在任何 nmem service 命令后添加 --user。
serve 与 service 的区别
nmem serve | nmem service install | |
|---|---|---|
| 运行方式 | 前台(当前终端) | 后台(systemd) |
| 何时停止 | Ctrl+C 或关闭终端 | nmem service stop 或系统关机 |
| 开机自启 | 否 | 是(自动启用) |
| 适用场景 | 测试、开发 | 生产部署 |
数据位置
所有数据(图数据库、搜索索引、版本元数据)存储在一个目录中:
~/.local/share/NowledgeGraph/
├── nowledge_graph_v2.db/ # KuzuDB 图数据库
├── search_index/ # LanceDB 向量 + BM25 索引
└── db_version.json # Schema 版本追踪服务器使用 XDG_DATA_HOME(默认为 ~/.local/share)自动解析此路径。如需使用自定义位置,请在启动服务器之前设置 NOWLEDGE_DB_PATH 环境变量:
export NOWLEDGE_DB_PATH=/mnt/data/NowledgeGraph/nowledge_graph_v2.db
nmem serve从旧版本升级
旧版本将数据存储在运行 nmem serve 的工作目录下的 ./data/ 文件夹中。升级后,服务器会自动检测旧数据并打印迁移说明。如果数据似乎丢失,请参阅下方故障排除:升级后数据丢失。
远程访问
默认情况下,nmem serve 监听所有网络接口,并且要求其他设备连接时提供 API key。首次启动时会自动生成 key 并打印到控制台。
当服务器已经可访问之后,客户端应优先走自己支持的最高层入口:先用原生集成,其次是插件设置界面或 nmem 配置,只有没有更好专属路径时才直接配置 MCP。
# 在服务器上
nmem serve
# 输出: API Key: nmem_...在远程机器上安装独立 CLI:
pip install nmem-cli
# 或
uv pip install nmem-cli然后配置连接方式。可以使用配置文件(持久化)或环境变量(仅当前会话):
{
"apiUrl": "http://你的服务器:14242",
"apiKey": "nmem_..."
}export NMEM_API_URL=http://你的服务器:14242
export NMEM_API_KEY="nmem_..."nmem status
nmem m search "查询内容"优先级:CLI 参数 > 环境变量 > 配置文件 > 默认值。
真实会话保存的重要说明
像 nmem t save --from claude-code、gemini-cli、codex 这样的真实会话保存,仍然会在运行该智能体的客户端机器上读取本机会话文件。把 nmem 指向远程服务器,只会改变规范化数据上传到哪里,不会把会话发现工作转移到服务器端。
如需关闭鉴权(不建议在生产环境使用):
nmem serve --no-auth安全提示
其他设备连接时默认需要 API key 鉴权。来自服务器本机的请求无需提供 key。如需更高安全性,可通过防火墙规则限制访问,或使用随处访问 Mem配合 Cloudflare Tunnel。
交互式 TUI
使用 TUI 获得交互式终端体验:
nmem tuiTUI 提供完整的设置管理界面,包括许可证激活、LLM 配置和知识处理开关。
现在你也可以在 Settings 中直接配置 Access Anywhere(快速链接 / Cloudflare 账号稳定链接),适合纯终端工作流。
完整指南见:随处访问 Mem。
如果服务器网络会拦截 UDP/QUIC,导致 Access Anywhere 启动不上来,可以在重启 Mem 前先强制 Cloudflare 使用 HTTP/2:
export TUNNEL_TRANSPORT_PROTOCOL=http2配置参考
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
NMEM_API_URL | http://127.0.0.1:14242 | CLI 命令的服务器地址 |
NMEM_API_KEY | - | 用于鉴权的 API key |
NOWLEDGE_DB_PATH | 自动检测 | 覆盖数据库位置 |
NOWLEDGE_BACKEND_HOST | 0.0.0.0 | 服务器绑定地址 |
NMEM_LAN_AUTH | - | 设为 disabled 可跳过鉴权(等同于 --no-auth) |
CLI 命令摘要
| 命令 | 描述 |
|---|---|
nmem serve | 启动服务器(其他设备连接需要 API key) |
nmem serve --no-auth | 启动服务器但不要求 API key 鉴权 |
nmem service install | 安装并启动 systemd 服务 |
nmem service status | 查看 systemd 服务状态 |
nmem service logs -f | 跟踪服务日志 |
nmem service stop / start | 停止或启动服务 |
nmem service uninstall | 删除 systemd 服务 |
nmem status | 检查服务器状态 |
nmem license activate <key> [email] | 激活许可证(通常会自动识别邮箱) |
nmem license renew | 刷新或续期这台设备的授权 |
nmem models download | 下载索引模型 |
nmem config provider set <p> --api-key <k> | 配置 LLM 提供商 |
nmem config provider test | 测试 LLM 连接 |
nmem config settings | 显示处理设置 |
nmem config settings set <key> <value> | 更新设置 |
nmem update | 检查可用更新 |
nmem update apply | 下载并应用更新 |
nmem tui | 交互式终端 UI |
故障排除
升级后数据丢失
旧版本(0.7 之前)将数据库存储在运行 nmem serve 的工作目录下的 ./data/ 文件夹中。当前版本将数据存储在标准位置(~/.local/share/NowledgeGraph/)。如果升级后记忆消失了,你的数据很可能仍在磁盘上,只是在旧位置。
查找旧数据
搜索旧数据库可能存在的常见位置:
find / -name "nowledge_graph*.db" -type d 2>/dev/null常见位置包括:
~/data/nowledge_graph.db,如果从主目录运行nmem serve/data/nowledge_graph.db,如果 systemd 系统服务在/目录下运行(未设置WorkingDirectory)/你运行nmem的路径/data/nowledge_graph.db,其他工作目录
移动到标准位置
# 先停止服务器
nmem service stop # 如果使用 systemd
# 或按 Ctrl+C # 如果在前台运行
# 如需创建标准目录
mkdir -p ~/.local/share/NowledgeGraph
# 移动数据库和相关文件
mv /旧路径/data/nowledge_graph*.db* ~/.local/share/NowledgeGraph/
mv /旧路径/data/search_index ~/.local/share/NowledgeGraph/ 2>/dev/null
mv /旧路径/data/db_version.json ~/.local/share/NowledgeGraph/ 2>/dev/null
# 重启服务器
nmem serve # 或: nmem service start验证恢复
nmem m search "测试" # 搜索你的记忆
nmem status # 检查服务器状态从当前版本开始,nmem serve 会在启动时打印数据库路径,方便确认使用的存储位置。如果在 ./data/ 下检测到旧数据,服务器会自动打印迁移说明。