Skip to content

[Feature Request] 建议增加自动化备份与远程存储挂载功能(支持 S3/WebDAV 及数据库/网站定时备份) #22

Description

@AdoreYL

需求背景与痛点

目前 KPanel 在日常运维、Docker 管理和集群监控方面体验非常轻快顺手,但在生产与建站场景下,数据安全与灾难恢复(DR) 是必不可少的一环。

如果服务器突发硬件故障、配置误操作或遭遇勒索,目前用户需要自行手写 Shell 脚本结合 rclone/crontab 进行备份,门槛较高且状态不可视。因此,希望 KPanel 官方能原生支持备份存储管理与定时备份任务调度能力。


功能设计建议

建议将功能解耦为两个核心模块:「备份账号/存储配置」 与 「计划备份任务」。

1. 备份存储源管理(Storage Accounts)

在设置或存储管理中,支持添加一个或多个备份目的地,并支持一键连接测试:

  • 本地存储:服务器指定本地目录或独立挂载磁盘(默认)。
  • 对象存储(S3 兼容协议):通过标准 S3 协议一次性兼容主流云存储(如 AWS S3、MinIO、阿里云 OSS、腾讯云 COS、Cloudflare R2 等),配置项包含:
    • Endpoint、Region、AccessKey、SecretKey、Bucket 名称、远程根目录路径。
  • 协议存储(可选/第二阶段):WebDAV、SFTP 或常用网盘。

2. 定时备份任务(Backup Cron Tasks)

在计划任务中新增专门的“备份”任务类型,支持灵活的调度策略:

  • 备份对象支持:
    • 网站备份:打包指定网站根目录及对应 Nginx 配置。
    • 数据库备份:支持定时 dump 数据库(MySQL/PostgreSQL/SQLite 等)并压缩。
    • Docker 容器/Compose 应用:备份 Compose 配置文件及持久化数据卷。
    • 自定义目录/文件:备份用户指定的绝对路径。
  • 备份策略与生命周期:
    • 调度周期:支持自然周期(每天/每周/每月固定时间)或标准 Cron 表达式。
    • 存储目标:支持选择保存到本地磁盘,或自动上传到前面添加的对象存储/远程节点。
    • 保留份数/过期清理:支持设定“保留最新 N 份”或“保留 N 天”,自动删除过期备份,防止磁盘/对象存储被撑爆。
  • 状态与日志:
    • 记录每次备份的耗时、生成文件大小、上传状态(成功/失败)。
    • 若配置了集群通知/邮件通知,在备份失败时可主动报警。

3. 恢复与管理(后期建议)

  • 提供备份文件列表视图,支持查看历史备份记录。
  • 支持一键下载备份压缩包,或在同机/换机时提供一键还原引导。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions