# 萌芽密码管理器 一个基于 Go 后端和 React 前端的轻量密码管理器应用,支持本地 JSON 存储与关键词搜索。 ## 功能特性 - 密码保护访问(默认密码:shumengya520) - JSON 文件存储(无需数据库) - 关键词搜索 - 添加、编辑、删除密码记录 - 响应式布局 ## 项目结构 ``` mengyakeyvault/ ├── mengyakeyvault-backend/ # Go 后端 │ ├── main.go # 主程序 │ ├── go.mod # Go 模块文件 │ └── data/ # 数据目录 ├── mengyakeyvault-frontend/ # React 前端 │ ├── src/ # 源代码 │ ├── public/ # 公共文件 │ └── package.json # 依赖配置 ├── start_backend.bat # 启动后端脚本 ├── start_frontend.bat # 启动前端脚本 └── build_frontend.bat # 构建前端脚本 ``` ## 环境要求 - Go 1.21+ - Node.js 18+ / npm ## 快速开始 ### 1. 启动后端 ```bash # Windows start_backend.bat # 或手动启动 cd mengyakeyvault-backend go mod tidy go run main.go ``` 后端将启动在 `http://localhost:8080`。 ### 2. 启动前端 ```bash # Windows start_frontend.bat # 或手动启动 cd mengyakeyvault-frontend npm install npm start ``` 前端将启动在 `http://localhost:3000`。 ### 3. 访问应用 打开浏览器访问 `http://localhost:3000`,输入默认密码 `shumengya520` 即可使用。 ## 数据格式 密码记录包含以下字段: - **账号类型**:网站、软件 - **账号**:登录账号 - **密码**:登录密码 - **用户名**:用户名 - **手机号**:手机号码 - **邮箱**:邮箱地址 - **网站地址**:网站 URL - **软件名称**:软件名称 - **标签**:分类标签 ## API 接口 - `POST /api/verify` - 验证密码 - `GET /api/entries?keyword=xxx` - 获取密码列表(支持关键词搜索) - `POST /api/entries` - 添加密码记录 - `PUT /api/entries` - 更新密码记录 - `DELETE /api/entries/:id` - 删除密码记录 ## 技术栈 ### 后端 - Go 1.21+ - Gin - JSON 文件存储 ### 前端 - React 18 - Axios - CSS3 ## Docker 部署 ### 后端部署 1. 进入后端目录 ```bash cd mengyakeyvault-backend ``` 2. 使用 Docker Compose 启动 ```bash docker-compose up -d --build ``` 3. 查看日志 ```bash docker-compose logs -f ``` ### 部署配置 - 容器端口: 8080 - 主机端口: 6464 - 数据持久化路径: `/shumengya/docker/mengyakeyvault-backend/data/` - API 域名: `https://keyvault.api.shumengya.top` ### 生产环境前端配置 前端在生产环境构建时会自动使用 `https://keyvault.api.shumengya.top/api` 作为 API 地址。 构建生产版本: ```bash cd mengyakeyvault-frontend npm run build ``` ## 注意事项 - 密码验证成功后会在浏览器本地存储中缓存 - Docker 部署数据存储在 `/shumengya/docker/mengyakeyvault-backend/data/data.json` - 建议定期备份数据文件 - 确保 favicon.ico 和 logo.png 已放置在 `mengyakeyvault-frontend/public/` 目录下 ## 常见问题 ### 数据文件在哪里 - 本地开发: `mengyakeyvault-backend/data/data.json` - Docker 部署: `/shumengya/docker/mengyakeyvault-backend/data/data.json` ### 如何修改默认密码 修改后端常量 `DefaultPassword` 后重启服务即可。