# 萌芽笔记后端 Docker 部署说明 ## 📋 部署要求 - Docker 20.10+ - Docker Compose 2.0+ - 服务器端口 2424 未被占用 ## 🚀 快速部署 ### 1. 准备数据目录 ```bash # 在服务器上创建持久化目录 mkdir -p /shumengya/docker/mengyanote/data # 将 mengyanote 文件夹的内容复制到持久化目录 cp -r mengyanote/* /shumengya/docker/mengyanote/data/ ``` ### 2. 构建并启动服务 ```bash # 进入后端目录 cd mengyanote-backend # 构建并启动服务(后台运行) docker-compose up -d --build # 查看日志 docker-compose logs -f # 停止服务 docker-compose down ``` ### 3. 验证部署 ```bash # 测试 API 接口 curl http://localhost:2424/api/tree # 或在浏览器访问 # http://your-server-ip:2424/api/tree ``` ## 📁 目录结构 ``` mengyanote-backend/ ├── Dockerfile # Docker 镜像构建文件 ├── docker-compose.yml # Docker Compose 配置 ├── .dockerignore # Docker 忽略文件 ├── main.py # 主程序 ├── requirements.txt # Python 依赖 └── mengyanote/ # Markdown 数据目录 ``` ## 🔧 配置说明 ### 端口配置 - **容器内部端口**: 8000 - **对外映射端口**: 2424 - 可在 `docker-compose.yml` 中修改 `ports` 配置 ### 持久化路径 - **宿主机路径**: `/shumengya/docker/mengyanote/data` - **容器内路径**: `/app/mengyanote` - Markdown 文件将保存在宿主机路径中,容器重启不会丢失 ### 环境变量 - `TZ=Asia/Shanghai`: 设置时区为上海时区 ## 🛠️ 常用命令 ```bash # 查看容器状态 docker-compose ps # 查看实时日志 docker-compose logs -f mengyanote-backend # 重启服务 docker-compose restart # 停止并删除容器 docker-compose down # 重新构建镜像并启动 docker-compose up -d --build --force-recreate # 进入容器内部 docker exec -it mengyanote-backend /bin/bash ``` ## 🔍 健康检查 服务配置了健康检查: - 每 30 秒检查一次 `/api/tree` 接口 - 超时时间 10 秒 - 连续失败 3 次后标记为不健康 - 启动后等待 40 秒开始检查 ## 📝 更新 Markdown 数据 由于数据已持久化到宿主机,可以直接修改: ```bash # 直接编辑持久化目录中的文件 vi /shumengya/docker/mengyanote/data/📒萌芽笔记.md # 或者上传新文件到该目录 cp new-note.md /shumengya/docker/mengyanote/data/ ``` 修改后无需重启容器,API 会自动读取最新内容。 ## 🔐 安全建议 1. 如果需要对外公开,建议配置 Nginx 反向代理和 SSL 证书 2. 可以通过防火墙限制访问来源 3. 定期备份 `/shumengya/docker/mengyanote/data` 目录 ## ⚠️ 注意事项 1. 首次部署前确保已将数据复制到持久化目录 2. 修改 `ignore.json` 后需要重启容器:`docker-compose restart` 3. 如果修改了 `main.py`,需要重新构建镜像:`docker-compose up -d --build`