# backup-tools **Repository Path**: gm2022/backup-tools ## Basic Information - **Project Name**: backup-tools - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-01-13 - **Last Updated**: 2026-01-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数据库备份管理系统 一个用 AI 辅助生成的数据库备份管理工具,方便日常运维工作中对 MongoDB 和 MySQL 进行备份与恢复操作。 > 🎯 这是一个个人学习项目,主要用于简化日常数据库备份工作,非企业级生产系统。 --- ## 📸 系统截图 ### 登录页面 ![登录页](docs/images/登录页.jpg) ### 运维概览首页 ![首页](docs/images/首页.jpg) ### 数据库连接管理 ![数据库管理页面](docs/images/数据库管理页面.jpg) ### 系统管理 ![系统管理页面](docs/images/系统管理页面.jpg) ### 操作审计 ![操作审计页面](docs/images/操作审计页面.jpg) --- ## ✨ 功能特性 - **多数据库支持**:MongoDB(单节点/副本集/分片)、MySQL - **备份与恢复**:全库/单库/多库备份,支持跨节点恢复 - **计划任务**:Cron 定时备份,支持自动清理过期备份 - **实时监控**:任务状态、WebSocket 实时日志 - **用户权限**:JWT 认证、角色权限控制 - **操作审计**:完整的操作日志记录与清理 --- ## 🚀 部署方式 系统支持两种部署方式,配置完全独立互不影响: | 部署方式 | 配置文件 | 适用场景 | |---------|---------|---------| | Docker 部署 | `docker/.env` | 生产部署、快速体验 | | 脚本启动 | `src/configs/config.yaml` | 本地开发调试 | --- ### 方式一:Docker 部署(推荐) #### 1. 克隆项目 ```bash git clone https://gitee.com/gaocong0228/backup-tools.git cd backup-tools ``` #### 2. 配置环境变量 ```bash # 复制配置模板 cp docker/.env.example docker/.env # 编辑配置 vim docker/.env ``` 配置说明: ```bash # 子路径配置(可选) # 留空 = http://localhost:18081/login # 设置 backup = http://localhost:18081/backup/login BASE_PATH= # MySQL 配置(系统数据存储) MYSQL_ROOT_PASSWORD=your_secure_password MYSQL_DATABASE=mongo_backup_v5 # 端口配置 MYSQL_HOST_PORT=3344 # MySQL 对外端口 BACKEND_PORT=8085 # 后端 API 端口 FRONTEND_PORT=18081 # 前端访问端口 ``` #### 3. 构建并启动 ```bash # 构建镜像 docker compose -f docker/docker-compose.yml build # 启动服务 docker compose -f docker/docker-compose.yml up -d # 查看日志 docker compose -f docker/docker-compose.yml logs -f ``` #### 4. 访问系统 - 前端:`http://localhost:18081`(或配置的 FRONTEND_PORT) - 默认账号:`admin` / `admin123` #### 5. 停止服务 ```bash # 停止服务 docker compose -f docker/docker-compose.yml down # 停止并清除数据(慎用) docker compose -f docker/docker-compose.yml down -v ``` --- ### 方式二:脚本启动(本地开发) #### 环境要求 - Python 3.8+(推荐 Conda) - Node.js 16+ - MySQL 5.7+(需自行准备) - 备份工具:`mongodump`、`mongorestore`、`mysqldump`、`mysql` #### 1. 配置数据库连接 编辑 `src/configs/config.yaml`: ```yaml # 子路径配置(可选) base_path: "" server: port: 8085 frontend: port: 18081 database: host: "localhost" port: 3306 user: "root" password: "your_password" name: "mongo_backup_v5" ``` #### 2. 启动服务 ```bash # 一键启动(首次会自动初始化数据库和创建管理员账号) ./scripts/start-dev.sh ``` 启动脚本会自动: - 检查数据库是否存在,不存在则创建 - 检查表结构是否完整,不完整则初始化 - 检查 admin 用户是否存在,不存在则创建 #### 3. 停止服务 ```bash ./scripts/stop-dev.sh ``` --- ## 🔑 默认账号 ``` 用户名: admin 密码: admin123 ``` > ⚠️ 首次登录后请立即修改密码! --- ## 📁 项目结构 ``` backup-tools/ ├── src/ │ ├── app/ # 后端代码 (FastAPI) │ ├── frontend/ # 前端代码 (React + TypeScript) │ ├── configs/ │ │ └── config.yaml # 脚本启动配置 │ └── scripts/ │ └── init_db.py # 数据库初始化脚本 ├── docker/ │ ├── docker-compose.yml │ ├── Dockerfile │ ├── .env # Docker 启动配置 │ └── configs/ │ └── config.docker.yaml # Docker 应用配置 ├── scripts/ │ ├── start-dev.sh # 开发启动脚本 │ └── stop-dev.sh # 停止脚本 └── docs/images/ # 文档截图 ``` --- ## ❓ 常见问题 | 问题 | 解决方案 | |------|----------| | Docker 启动后无法登录 | 检查 `docker/.env` 中的数据库密码配置 | | 页面显示空白 | 确保 `BASE_PATH` 配置正确 | | 备份失败 | 确认已安装 `mongodump` / `mysqldump` | | 端口被占用 | 修改配置文件中的端口 | | 脚本启动无法登录 | 删除 MySQL 中的数据库重新启动,会自动初始化 | --- ## 📝 说明 这个项目是我用 AI 辅助开发的个人工具,主要目的是: - 学习 FastAPI + React 全栈开发 - 简化日常数据库备份运维工作 - 练习使用 AI 辅助编程 欢迎参考和交流! --- ## 📄 许可证 MIT License