258 lines
5.4 KiB
Markdown
258 lines
5.4 KiB
Markdown
# 🦐 龙虾记忆同步系统
|
||
|
||
一个用于同步和管理龙虾记忆文件的前后端分离系统,提供文件树展示、差异对比和双向同步功能。
|
||
|
||
## 📋 目录
|
||
|
||
- [项目概述](#项目概述)
|
||
- [技术栈](#技术栈)
|
||
- [功能特性](#功能特性)
|
||
- [项目结构](#项目结构)
|
||
- [快速开始](#快速开始)
|
||
- [API 文档](#api-文档)
|
||
- [开发指南](#开发指南)
|
||
- [部署说明](#部署说明)
|
||
- [开发日志](#开发日志)
|
||
|
||
## 项目概述
|
||
|
||
龙虾记忆同步系统是一个专为 OpenClaw 龙虾设计的记忆文件管理工具,支持:
|
||
- 扫描龙虾记忆目录
|
||
- 检查文件差异
|
||
- 双向同步(本地 ↔ 数据库)
|
||
- 版本历史追踪
|
||
- 统计信息展示
|
||
|
||
## 技术栈
|
||
|
||
### 后端
|
||
- Django 4.x
|
||
- Django REST Framework
|
||
- PostgreSQL 15
|
||
- Python 3.11
|
||
|
||
### 前端
|
||
- React 18
|
||
- Ant Design 5.x
|
||
- react-diff-viewer-continued
|
||
- Axios
|
||
|
||
### 部署
|
||
- Docker
|
||
- Docker Compose
|
||
- Nginx
|
||
|
||
## 功能特性
|
||
|
||
- ✅ **文件树展示**:可视化展示龙虾记忆文件结构
|
||
- ✅ **差异对比**:直观对比本地文件和数据库文件
|
||
- ✅ **双向同步**:支持本地→数据库和数据库→本地同步
|
||
- ✅ **版本历史**:追踪文件的修改历史
|
||
- ✅ **统计信息**:展示文件数量、大小等统计信息
|
||
- ✅ **REST API**:完整的 RESTful API 接口
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
lobster-memory-sync/
|
||
├── backend/ # Django 后端
|
||
│ ├── manage.py # Django 管理脚本
|
||
│ ├── requirements.txt # Python 依赖
|
||
│ ├── Dockerfile # 后端 Docker 配置
|
||
│ ├── memory_sync/ # Django 项目配置
|
||
│ │ ├── settings.py # 项目设置
|
||
│ │ ├── urls.py # 主路由
|
||
│ │ └── wsgi.py # WSGI 配置
|
||
│ └── memory_app/ # 核心应用
|
||
│ ├── models.py # 数据模型
|
||
│ ├── serializers.py # 序列化器
|
||
│ ├── views.py # 视图
|
||
│ ├── urls.py # 应用路由
|
||
│ └── services.py # 业务逻辑
|
||
├── frontend/ # React 前端
|
||
│ ├── package.json # Node 依赖
|
||
│ ├── Dockerfile # 前端 Docker 配置
|
||
│ ├── public/ # 静态资源
|
||
│ └── src/ # 源代码
|
||
│ ├── api/ # API 客户端
|
||
│ │ └── index.js
|
||
│ ├── components/ # React 组件
|
||
│ │ ├── FileTree.js # 文件树
|
||
│ │ └── FileDiff.js # 差异对比
|
||
│ ├── App.js # 主应用
|
||
│ └── index.js # 入口文件
|
||
├── docker-compose.yml # Docker Compose 配置
|
||
├── README.md # 项目文档
|
||
└── DEPLOY.md # 部署文档
|
||
```
|
||
|
||
## 快速开始
|
||
|
||
### 前置条件
|
||
|
||
- Docker
|
||
- Docker Compose
|
||
- 端口占用检查:8086(前端)、8087(后端)、5432(数据库)
|
||
|
||
### 一键启动
|
||
|
||
```bash
|
||
# 克隆项目
|
||
cd /home/node/.openclaw/workspace/daotong/lobster-memory-sync
|
||
|
||
# 启动服务
|
||
docker-compose up -d
|
||
|
||
# 查看日志
|
||
docker-compose logs -f
|
||
|
||
# 停止服务
|
||
docker-compose down
|
||
```
|
||
|
||
### 访问地址
|
||
|
||
- 前端:http://localhost:8086
|
||
- 后端 API:http://localhost:8087/api/
|
||
- PostgreSQL:localhost:5432
|
||
|
||
## API 文档
|
||
|
||
### 扫描文件
|
||
|
||
```
|
||
GET /api/scan/?lobster_id=daotong
|
||
```
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"files": [
|
||
{
|
||
"name": "MEMORY.md",
|
||
"path": "MEMORY.md",
|
||
"type": "file",
|
||
"size": 1234,
|
||
"last_modified": "2026-04-05T12:00:00Z"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 检查同步状态
|
||
|
||
```
|
||
GET /api/status/?lobster_id=daotong&file_path=MEMORY.md
|
||
```
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"synced": false,
|
||
"has_difference": true,
|
||
"difference": "+ 新增内容\n- 删除内容"
|
||
}
|
||
```
|
||
|
||
### 获取文件差异
|
||
|
||
```
|
||
GET /api/diff/?lobster_id=daotong&file_path=MEMORY.md
|
||
```
|
||
|
||
### 同步到数据库
|
||
|
||
```
|
||
POST /api/sync/db/
|
||
Content-Type: application/json
|
||
|
||
{
|
||
"lobster_id": "daotong",
|
||
"file_path": "MEMORY.md"
|
||
}
|
||
```
|
||
|
||
### 同步到本地
|
||
|
||
```
|
||
POST /api/sync/local/
|
||
Content-Type: application/json
|
||
|
||
{
|
||
"lobster_id": "daotong",
|
||
"file_path": "MEMORY.md"
|
||
}
|
||
```
|
||
|
||
## 开发指南
|
||
|
||
### 后端开发
|
||
|
||
```bash
|
||
# 进入后端容器
|
||
docker exec -it lobster-backend bash
|
||
|
||
# 创建迁移
|
||
python manage.py makemigrations memory_app
|
||
python manage.py migrate
|
||
|
||
# 创建超级用户
|
||
python manage.py createsuperuser
|
||
|
||
# 运行开发服务器
|
||
python manage.py runserver 0.0.0.0:8087
|
||
```
|
||
|
||
### 前端开发
|
||
|
||
```bash
|
||
# 本地开发(不使用 Docker)
|
||
cd frontend
|
||
npm install
|
||
npm start
|
||
|
||
# 构建生产版本
|
||
npm run build
|
||
```
|
||
|
||
## 部署说明
|
||
|
||
详细部署文档请参考 [DEPLOY.md](DEPLOY.md)
|
||
|
||
### 生产环境部署
|
||
|
||
1. 修改 `docker-compose.yml` 中的环境变量
|
||
2. 配置 Nginx 反向代理
|
||
3. 启用 HTTPS
|
||
4. 配置数据库备份
|
||
|
||
### 故障排查
|
||
|
||
```bash
|
||
# 查看日志
|
||
docker-compose logs -f backend
|
||
docker-compose logs -f frontend
|
||
|
||
# 重启服务
|
||
docker-compose restart
|
||
|
||
# 清理数据
|
||
docker-compose down -v
|
||
docker-compose up -d
|
||
```
|
||
|
||
## 开发日志
|
||
|
||
- **2026-04-05**: 项目初始化
|
||
- 完成后端核心功能(Django + DRF + PostgreSQL)
|
||
- 完成前端核心功能(React + Ant Design)
|
||
- 完成部署配置(Docker Compose)
|
||
- 推送到 Git 仓库:https://xjp.datalibstar.com/daotong/lobster-memory-sync.git
|
||
|
||
## 📝 License
|
||
|
||
MIT
|
||
|
||
## 🤝 贡献
|
||
|
||
欢迎提交 Issue 和 Pull Request! |