前言
在日常开发和运维工作中,数据库备份是一个至关重要的环节。一个可靠、易用的备份工具能够为我们的数据安全提供强有力的保障。今天要介绍的项目是 Databasus - 一个免费、开源、可自托管的数据库备份工具。
Databasus 项目简介
Databasus 是一个专注于数据库备份的开源项目,其前身是 Postgresus。项目自 2023 年开始开发,最初作为内部工具用于备份生产和个人项目的数据库。2025 年初,它作为开源项目在 GitHub 上发布,并在年底获得了广泛的关注和使用。
核心特性
支持多种数据库
Databasus 支持主流的数据库类型:
- PostgreSQL: 12、13、14、15、16、17 和 18
- MySQL: 5.7、8 和 9
- MariaDB: 10 和 11
- MongoDB: 4、5、6、7 和 8
灵活的计划备份
- 支持每小时、每天、每周、每月或使用 cron 表达式进行调度
- 可以在特定时间运行备份(例如,凌晨 4 点低流量时段)
- 智能压缩技术,可实现 4-8 倍的空间节省(约 20% 开销)
多种存储目标
Databasus 支持将备份保存到多种存储位置:
- 本地存储: 将备份保存在您的 VPS/服务器上
- 云存储: S3、Cloudflare R2、Google Drive、NAS、Dropbox、SFTP、Rclone 等
- 所有数据都在用户的控制之下,安全可靠
智能通知系统
支持多种通知渠道:
- 邮件、Telegram、Slack、Discord、webhook
- 实时更新备份成功和失败状态
- 完美适配 DevOps 工作流
企业级安全
- AES-256-GCM 加密: 为备份文件提供企业级保护
- 零信任存储: 备份经过加密,可以安全地存储在共享存储中
- 密钥加密: 任何敏感数据都经过加密,不会在日志或错误消息中暴露
- 只读用户: Databasus 默认使用只读用户进行备份,从不存储可以修改数据的任何内容
团队协作功能
- 工作空间: 为不同项目或团队分组数据库、通知和存储
- 访问管理: 通过基于角色的权限控制谁可以查看或管理特定数据库
- 审计日志: 跟踪所有系统活动和用户所做的更改
- 用户角色: 在工作空间内分配查看者、成员、管理员或所有者角色
用户友好的界面
- 精心设计的 UI,干净、直观的界面,注重细节
- 支持深色和浅色主题
- 移动端适配,随时随地检查备份状态
技术栈
Databasus 的前端采用现代化的技术栈:
- React 19: 最新的 React 版本
- TypeScript: 类型安全的开发体验
- Vite: 快速的构建工具
- Tailwind CSS: 实用优先的 CSS 框架
- Ant Design: 企业级 UI 组件库
- i18next: 强大的国际化框架
- React Router: 客户端路由
- Recharts: 数据可视化图表库
安装方式
Databasus 提供了多种安装方式,方便不同场景的部署:
- 自动化安装脚本(推荐,仅限 Linux)
- 简单的 Docker 运行
- Docker Compose 设置
- Kubernetes with Helm
最简单的 Docker 运行方式:
1 | docker run -d \ |
中文适配工作
作为一个面向全球用户的开源项目,国际化(i18n)是必不可少的。为了方便非英语母语用户使用 Databasus,我在项目中引入了 i18next 作为国际化框架。这使得添加多语言支持变得相对简单。但是因为翻译得侵入代码过深并没有向官方提交PR,所以目前只有英文和中文两种语言。
中文适配的优势
- 全球用户覆盖: 为 Databasus 用户提供中文界面,方便非英语母语用户使用
- 专业术语翻译: 准确翻译数据库领域的专业术语
- 简洁的 UI 文本: 中文界面通常更简洁,避免冗长的文本
- 用户友好的导航: 中文界面的导航更直观,用户更容易理解和操作
国际化架构
Databasus 的国际化架构设计得非常清晰:
- 使用
i18next作为核心国际化库 - 使用
react-i18next提供 React 组件集成 - 使用
i18next-browser-languagedetector自动检测用户语言偏好 - 翻译文件按模块组织,便于维护
翻译文件结构
翻译文件位于 frontend/src/shared/i18n/locales/ 目录下,按语言和模块分类:
1 | locales/ |
中文适配的挑战与解决方案
在进行中文适配时,面临了以下几个挑战:
1. 术语翻译的准确性
数据库领域的专业术语需要准确翻译,同时保持技术文档的专业性。例如:
- “Healthcheck attempts” 翻译为 “健康检查尝试次数”
- “Scheduled backups” 翻译为 “备份计划”
- “Zero trust storage” 翻译为 “零信任存储”
2. UI 文本的简洁性
中文和英文在表达方式上存在差异,中文通常更简洁。在翻译时,需要确保 UI 文本在中文环境下同样简洁明了,不会显得冗长。
3. 上下文一致性
同一个术语在不同模块中需要保持翻译一致。例如,”Database” 在所有模块中都翻译为”数据库”,而不是混用”数据库”和”资料库”。
4. 技术细节的传达
一些技术细节需要准确传达,不能因为翻译而丢失信息。例如,cron 表达式的说明、压缩比例等技术参数都需要准确翻译。
中文适配的成果
经过系统的中文适配工作,Databasus 现在已经支持完整的中文界面,包括:
- 认证模块: 登录、注册、密码重置等
- 数据库管理: 数据库列表、添加数据库、编辑数据库等
- 备份管理: 备份历史、备份详情、手动备份等
- 恢复管理: 恢复操作、恢复历史等
- 存储管理: 存储配置、存储类型选择等
- 通知管理: 通知渠道配置、通知历史等
- 工作空间管理: 工作空间创建、成员管理等
- 用户管理: 用户列表、角色分配等
- 设置: 个人设置、系统设置等
- 侧边栏: 导航菜单、快捷操作等
翻译示例
以下是一些翻译示例,展示了中文适配的质量:
数据库模块 (databases.json)
1 | { |
通用模块 (common.json)
1 | { |
存储模块 (storages.json)
1 | { |
未来改进方向
中文适配工作已经取得了显著成果,但仍有一些可以改进的方向:
- 术语表建立: 建立一个统一的术语表,确保所有翻译的一致性
- 上下文注释: 为翻译文件添加上下文注释,帮助其他贡献者理解翻译的背景
- 翻译审核: 建立翻译审核机制,确保翻译质量
- 社区参与: 鼓励社区参与翻译工作,支持更多语言
使用方法
- 使用docker部署 Databasus。
- 下载多语言前端(当前只有英文和中文) 点击下载:Databasus 多语言版。
- 为docker容器挂载前端静态文件目录类似
-v ./databaus-zh:/app/ui/build。 - 访问Databasus即可切换语言到中文
总结
Databasus 是一个功能强大、设计精美的数据库备份工具,它不仅提供了丰富的功能,还注重用户体验和安全性。通过使用现代化的技术栈和良好的架构设计,Databasus 为用户提供了一个可靠、易用的备份解决方案。
中文适配工作的完成,使得 Databasus 能够更好地服务中文用户,降低了使用门槛。这不仅体现了开源项目的包容性,也为中文用户参与开源项目提供了更好的体验。
如果你正在寻找一个可靠的数据库备份工具,不妨试试 Databasus。如果你对开源项目感兴趣,也欢迎参与到 Databasus 的开发中来!
相关链接
- 项目官网: https://databasus.com
- GitHub 仓库: https://github.com/databasus/databasus
- Docker Hub: https://hub.docker.com/r/rostislavdugin/postgresus
- Telegram 社区: @databasus_community
- 许可证: Apache 2.0
本文由撰写,欢迎转载,请注明出处。
