Linux 服务器部署
在无桌面环境的 Linux 服务器上以无头模式运行 Nowledge Mem
Nowledge Mem 可以在没有图形界面的 Linux 服务器上以无头模式运行。安装相同的 .deb 或 .AppImage 包,然后通过命令行管理一切。
可用性
每日简报、洞察检测、知识图谱丰富等后台智能能力,需要已配置的远程 LLM,以及你的当前版本所对应的许可能力。这个页面关注的是部署方式,而不是套餐包装。
系统要求
| 要求 | 规格 |
|---|---|
| 操作系统 | 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 # 验证激活状态配置 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
# 自定义主机/端口
sudo nmem service install --host 0.0.0.0 --port 8080# 无需 root 权限
nmem service install --user管理服务
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 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/ 下检测到旧数据,服务器会自动打印迁移说明。