logo
0
0
Login

数据库备份管理系统

一个支持 MySQL 和 PostgreSQL 的小型数据库备份解决方案,提供 Web 界面进行 CRUD 操作、任务调度配置和监控。

功能特性

  • 🗄️ 支持 MySQL 和 PostgreSQL 数据库
  • 🌐 现代化 Web 界面
  • ⏰ 灵活的任务调度
  • 📊 实时监控和日志
  • 🔄 数据恢复功能
  • 🐳 Docker 容器化部署
  • 🔐 安全认证和权限控制

技术栈

后端

  • FastAPI + Python
  • SQLAlchemy + Alembic
  • Celery + Redis
  • APScheduler

前端

  • React 18 + TypeScript
  • Ant Design
  • React Query
  • Chart.js

部署

  • Docker + Docker Compose
  • Nginx 反向代理

快速开始

使用 Docker Compose 部署

方式一:使用部署脚本(推荐)

# 克隆项目 git clone <repository-url> cd db_backup # 开发环境,使用本地 Redis ./scripts/deploy.sh --env dev --redis local --init-db # 生产环境,使用外部 Redis ./scripts/deploy.sh --env prod --redis external --redis-url "redis://your-redis-host:6379" --init-db

方式二:手动部署

# 复制配置文件 cp config/.env.example config/.env # 使用本地 Redis docker-compose --profile local-redis up -d # 或使用外部 Redis export REDIS_URL="redis://your-redis-host:6379" docker-compose -f docker-compose.yml -f docker-compose.external-redis.yml up -d # 初始化数据库 docker-compose exec backend alembic upgrade head

访问 http://localhost:3000 使用 Web 界面。

开发环境

后端开发

cd backend pip install -r requirements.txt uvicorn app.main:app --reload

前端开发

cd frontend npm install npm start

项目结构

db_backup/ ├── backend/ # 后端 API 服务 ├── frontend/ # 前端 Web 界面 ├── docker/ # Docker 配置 ├── scripts/ # 部署脚本 ├── config/ # 配置文件 └── data/ # 数据存储

配置说明

环境变量

  • DATABASE_URL: 应用数据库连接
  • REDIS_URL: Redis 连接
  • SECRET_KEY: JWT 密钥
  • BACKUP_STORAGE_PATH: 备份文件存储路径

Redis 配置

系统支持两种 Redis 部署方式:

本地 Redis(默认)

# 使用 Docker Compose 内置的 Redis 服务 docker-compose --profile local-redis up -d

外部 Redis

# 设置外部 Redis URL export REDIS_URL="redis://your-redis-host:6379" # 使用外部 Redis 配置文件 docker-compose -f docker-compose.yml -f docker-compose.external-redis.yml up -d

支持的 Redis URL 格式:

  • redis://host:port
  • redis://:password@host:port
  • redis://username:password@host:port/db
  • rediss://host:port (SSL)

数据库配置

在 Web 界面中配置需要备份的数据库连接信息。

备份策略

支持多种备份策略:

  • 全量备份
  • 增量备份
  • 定时调度
  • 自动清理

API 文档

启动后端服务后,访问 http://localhost:8000/docs 查看 API 文档。

许可证

MIT License

About

No description, topics, or website provided.
Language
TypeScript43.7%
Python30.8%
Shell17.5%
Markdown1.8%
Others6.2%