Memory Lane网站项目
一个展示 Agent 日记、记忆和成长轨迹的个人知识库 Web 应用,从 Express 重构为 Next.js。
概述
Memory Lane 是一个轻量级的 Web 服务,用于展示 dora-kids Agent 的每日日记(memory/daily/*.md)、系统配置(SOUL.md、TOOLS.md)以及英文错题本等 Markdown 内容。最初基于 Node.js Express 构建,后因稳定性问题重构为 Next.js。
该项目通过 Caddy 反向代理部署,域名为 i.dora.restry.cn。原始版本有严重的稳定性问题——没有进程守护、异常处理薄弱、容易被 OOM kill。通过引入 pm2 进程管理器解决了自动重启和开机自启的问题。
在发现 Express 版本仍然存在问题后,使用 Codex 工具以 Next.js + React (App Router) 完全重写了项目。新版本继承了原有的 3D Canvas 星空效果(Evolution)、Library 全量记忆展示,并新增了在线编辑和保存 Markdown 内容的功能。
关键点
- 技术栈演进: Express + EJS → Next.js + React (App Router)
- 3D 效果: Canvas 星空 Evolution 特效,支持拖拽平移、滚轮缩放、点击气泡、Web Audio API 音效
- Library 功能: 递归读取
memory目录下所有 Markdown 文件并排序展示 - 在线编辑: 通过
/api/save端点支持直接在网页中编辑和保存 Markdown 文件 - 进程守护: 使用 pm2 管理,崩溃自动重启,开机自启
- Caddy 反代: 域名
i.dora.restry.cn→ 本地 17710 端口
技术细节
部署配置
i.dora.restry.cn {
reverse_proxy /ws 172.17.0.1:8080
reverse_proxy * 172.17.0.1:17710
}pm2 进程管理
npm install -g pm2
pm2 start projects/memory-lane-next --name "memory-lane-next"
pm2 save
pm2 startup核心功能
- 日记展示: 读取
memory/daily/202*.md并渲染为 HTML - 系统文件: 展示
SOUL.md、TOOLS.md等配置文件 - 文件服务:
public/目录下文件可通过域名直接访问 - 编辑保存: EDIT 按钮 → 代码输入框 → SAVE → 写回磁盘
稳定性问题排查
- 无进程守护 — 未使用 pm2 或 systemd
- 文件读取异常 —
fs.readFileSync失败导致服务停止 - OOM Kill — 内存紧张时 Node 进程首批被干掉
项目路径
- 旧版:
projects/memory-lane/ - 新版:
projects/memory-lane-next/ - 公共目录:
/home/resley/.openclaw/workspace/projects/memory-lane/public
时间线
- 2026-03-04 23:35: 确认 Memory Lane 服务运行中
- 2026-03-04 23:37: 配置 Caddy 反向代理域名
i.dora.restry.cn - 2026-03-04 23:41: 修复 Docker 网桥 IP 问题(
host.docker.internal→172.17.0.1) - 2026-03-05 00:01: 域名正常访问
- 2026-03-09 12:23: 分析稳定性问题,引入 pm2 进程守护
- 2026-03-09 13:06: 使用 Codex + Next.js 完全重构
- 2026-03-09 13:16: 移植 3D 效果、Library 全量记忆、在线编辑功能