数据库备份管理工具Velld
简介
什么是 Velld ?
Velld是一个现代化的自托管数据库备份管理和自动化工具,提供简洁美观的网页界面,帮助用户实现数据库备份的计划、管理和监控,确保数据安全,简化灾难恢复流程。
主要特点
- 支持多种数据库:包括
PostgreSQL 9.6+,MySQL 5.7+ / MariaDB,以及MongoDB 4.0+。 - 自动化备份:支持基于
cron表达式的灵活定时任务。 - 多数据库连接管理:可以统一管理多个不同数据库实例。
- 备份比较工具:提供备份版本的差异对比和智能
diff视图。 - 备份监控与通知:实时备份状态监控,成功率统计,邮件和网页通知。
- 安全可靠:备份凭据加密存储,支持压缩备份文件,支持
S3兼容存储。 - 恢复便捷:备份文件可下载,方便使用标准工具快速恢复数据库。
- 用户体验友好:现代化
UI,支持暗黑模式和移动响应式设计。 - 易于部署:可通过
Docker快速部署,配置简单。
应用场景
- 企业和个人用户需要定期对重要数据库进行自动化备份,保障数据安全和业务连续性。
- 多数据库环境下统一管理数据库备份任务,提升运维效率。
- 数据库开发和测试环境中,快速恢复和备份版本对比的需求
- 希望通过自托管方式控制和掌控备份数据,避免依赖第三方服务。

Velld 通过其全面的功能和友好的用户界面,非常适合技术团队和个人运维人员进行数据库备份管理和自动化操作,特别是在对数据安全和自动化有较高要求的环境中
安装
在群晖上以 Docker 方式安装。
分为后端 API

和前端 Web 两个镜像

env.txt
env.txt 是环境变量设置文件,基于官方的 https://github.com/dendianugerah/velld/blob/main/.env.example 修改,为方便编辑,重命名为了 env.txt
下面是老苏的修改后的示例。
1 | # Client |
下表是环境变量的简单说明,其中 192.168.0.197 为群晖主机的 IP
| 环境变量 | 描述 |
|---|---|
NEXT_PUBLIC_API_URL |
服务端 API 的 URL,用于前端与服务端通信。 |
JWT_SECRET |
用于 JWT 认证的密钥。 |
ENCRYPTION_KEY |
数据加密所使用的密钥。 |
DB_PATH |
数据库文件的路径(可选)。 |
ADMIN_USERNAME_CREDENTIAL |
管理员用户名凭证。 |
ADMIN_PASSWORD_CREDENTIAL |
管理员密码凭证。 |
ALLOW_REGISTER |
是否允许用户注册(true 或 false)。 |
SMTP_HOST |
SMTP 服务器主机名(可选,通过 UI 或环境变量配置)。 |
SMTP_PORT |
SMTP 服务器端口(可选,通过 UI 或环境变量配置)。 |
SMTP_USER |
SMTP 用户名(可选,通过 UI 或环境变量配置)。 |
SMTP_PASSWORD |
SMTP 密码(可选,通过 UI 或环境变量配置)。 |
SMTP_FROM |
发件人邮箱地址(可选,通过 UI 或环境变量配置)。 |
docker-compose.yml
采用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
1 | services: |
然后通过 SSH 登录到您的群晖,执行下面的命令:
1 | # 新建文件夹 velld 和 子目录 |

运行
在浏览器中输入 http://群晖IP:8543 就能看到登录界面
使用
ADMIN_USERNAME_CREDENTIAL和ADMIN_PASSWORD_CREDENTIAL设置的值进行登录

登录成功后的主界面

进入 Connections –> New Connection

以下是老苏做的一些尝试,有失败也有成功,说明软件还有待进一步成熟
MariaDB 10(失败)
以本机的 MariaDB 为例

使用 Manual Input 方式

没有测试功能,直接保存即可,但可以看得到中间其实是做了测试的,否则会保存失败

运行 Nackup Now 备份会报错保存

1 | Error |
错误原因:
mysqldump命令被废弃,需要改用mariadb-dump。- 连接
MariaDB数据库时出现TLS/SSL 错误:服务器要求SSL,但服务器不支持。
查了一下,可能需要在命令中添加参数 --ssl=0 或 --skip_ssl,跳过 SSL 连接要求,这样才不会出现 SSL 错误。
所以老苏尝试用了 Connection String,尝试增加了不使用 SSL 的参数 mysql://werss:123456@192.168.0.197:3307/werss?useSSL=false

但是看起来还是不行

MySQL 8(失败)
接下来尝试了另一个项目的 MySQL 8 数据库,这是 docker 安装的

同样连接是没问题的

但是备份就报错了,看起来错误的原因差不多

1 | Error |
PostgreSQL
正好机器中的 bewCloud 的 PostgreSQL 15 还没有删,为了能连接,把数据库的端口映射了出来

连接同样没问题

这次备份没有再出错

可以在 Histroy 中查到

所以可以用来做定时备份设置

采用图形化设置,还是很简单的

参考文档
dendianugerah/velld: a database backup management and automation tool
地址:https://github.com/dendianugerah/velldVelld - Database Backup Management Tool
地址:https://velld.vercel.app/