Memory Lane网站项目

一个展示 Agent 日记、记忆和成长轨迹的个人知识库 Web 应用,从 Express 重构为 Next.js。

概述

Memory Lane 是一个轻量级的 Web 服务,用于展示 dora-kids Agent 的每日日记(memory/daily/*.md)、系统配置(SOUL.mdTOOLS.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.mdTOOLS.md 等配置文件
  • 文件服务: public/ 目录下文件可通过域名直接访问
  • 编辑保存: EDIT 按钮 → 代码输入框 → SAVE → 写回磁盘

稳定性问题排查

  1. 无进程守护 — 未使用 pm2 或 systemd
  2. 文件读取异常 — fs.readFileSync 失败导致服务停止
  3. 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.internal172.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 全量记忆、在线编辑功能

相关页面