安装
你可以通过多种方式安装 Databasus:自动化脚本(推荐)、简单的 docker run、Docker Compose、面向 Kubernetes 的 Helm,或在生产 环境使用 Docker Compose 搭配 Caddy。
系统要求
Databasus 正常运行所需的最低系统资源:
- CPU:至少 1 个 CPU 核心
- RAM:至少 500 MB 内存
- 存储:安装占用 5 GB,另加备份所需的空间
- Docker:Docker Engine 20.10+ 和 Docker Compose v2.0+
方式 1:安装脚本(推荐,仅限 Linux)
安装脚本会:
- ✅ 安装 Docker 和 Docker Compose(如果尚未安装)
- ✅ 配置 Databasus
- ✅ 设置系统重启后自动启动
sudo apt-get install -y curl && \
sudo curl -sSL https://raw.githubusercontent.com/databasus/databasus/refs/heads/main/install-databasus.sh | sudo bash这种情况下,Databasus 会安装到 /opt/databasus 目录。
方式 2:简单的 docker run
运行 Databasus 最简单的方法:
docker run -d \
--name databasus \
-p 4005:4005 \
-v ./databasus-data:/databasus-data \
--restart unless-stopped \
databasus/databasus:latest这一条命令会:
- ✅ 启动 Databasus
- ✅ 把所有数据保存在
./databasus-data目录中 - ✅ 系统重启后自动重启容器
方式 3:Docker Compose 部署
创建 docker-compose.yml 文件,写入以下配置:
services:
databasus:
container_name: databasus
image: databasus/databasus:latest
ports:
- "4005:4005"
volumes:
- ./databasus-data:/databasus-data
restart: unless-stopped然后运行:
docker compose up -d请注意,启动可能需要最多约 2 分钟。
方式 4:Kubernetes 与 Helm
在 Kubernetes 上部署时,可直接从 OCI 仓库安装。根据你的环境 选择合适的访问方式。
ClusterIP + port-forward(开发环境)
helm install databasus oci://ghcr.io/databasus/charts/databasus \
-n databasus --create-namespace通过 port-forward 访问:
kubectl port-forward svc/databasus-service 4005:4005 -n databasus
# Access at http://localhost:4005LoadBalancer(云环境)
helm install databasus oci://ghcr.io/databasus/charts/databasus \
-n databasus --create-namespace \
--set service.type=LoadBalancer获取外部 IP 并访问 Databasus:
kubectl get svc databasus-service -n databasus
# Access at http://<EXTERNAL-IP>:4005Ingress(通过域名访问)
helm install databasus oci://ghcr.io/databasus/charts/databasus \
-n databasus --create-namespace \
--set ingress.enabled=true \
--set ingress.hosts[0].host=backup.example.com更多选项(NodePort、TLS、Gateway API 的 HTTPRoute)请参阅 Helm chart 文档。
使用 Caddy 反向代理运行
生产环境可以使用 Caddy 作为反向代理,自动获取 HTTPS 证书并安全地访问 Databasus。 下面是搭配 Caddy 的完整 Docker Compose 配置。
Docker Compose 搭配 Caddy
创建 docker-compose.yml 文件:
services:
databasus:
container_name: databasus
image: databasus/databasus:latest
volumes:
- ./databasus-data:/databasus-data
restart: unless-stopped
# No port exposed - Caddy handles external access
caddy:
container_name: caddy
image: caddy:latest
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- ./caddy-data:/data
- ./caddy-config:/config
restart: unless-stopped
depends_on:
- databasus在同一目录下创建 Caddyfile:
backup.example.com {
reverse_proxy databasus:4005
}然后启动服务:
docker compose up -d这套配置提供:
- ✅ 使用 Let's Encrypt 证书自动启用 HTTPS
- ✅ HTTP 自动重定向到 HTTPS
- ✅ 反向代理到 Databasus
- ✅ Caddy 和 Databasus 的数据都持久化保存
把 backup.example.com 替换成你的实际域名。启动 服务前,请确认域名的 DNS 已指向服务器的 IP 地址。
快速上手
安装完成后:
- 启动并打开 Databasus:启动 Databasus 并访问
http://localhost:4005 - 创建第一个备份任务:点击 "New Backup",配置 PostgreSQL 数据库连接
- 配置备份计划:设置备份周期(每小时、每天、 每周、每月或 cron)
- 选择存储位置:指定备份保存的位置(本地、 S3、Google Drive 等)
- 设置通知:添加通知渠道(Slack、Telegram、 Discord),随时了解备份状态
- 开始备份:保存配置,看着第一个备份跑起来!
健康检查
Docker 健康检查
docker run 和 Docker Compose 会自动启用内置的健康检查。当 Databasus 开始响应请求后(经过短暂的启动宽限期),容器会被标记为 healthy。健康检查只确认应用是否响应,因此磁盘 空间不足这类非致命状况不会触发容器重启。
监控 / 状态端点
用于可用性监控和状态面板:
GET http://<host>:4005/api/v1/system/health一切正常时返回 200;有情况需要关注时返回 503 并附带原因:内部数据库、缓存、磁盘使用率(超过 95%)、数据库客户端工具、备份调度器以及验证代理的存活状态。 无需认证,CORS 开放,方便浏览器端的监控工具使用。
⚠️ 重要:该端点仅用于监控和告警,不要用作 容器或 Kubernetes 的 liveness probe。在「性能下降但仍在服务」 的状态下(例如磁盘快满了)它也会返回 503, 这会导致正常运行的容器被重启。
Kubernetes
liveness/readiness probe 请使用 databasus healthcheck 命令;把 /api/v1/system/health 端点留给外部监控。
如何更新 Databasus?
更新 Docker 安装
要更新通过 Docker 运行的 Databasus,需要先停止它、清理 Docker 缓存,再重启容器。
- 进入 Databasus 的安装目录(通常是
/opt/databasus) - 停止容器:
docker compose stop - 清理 Docker 缓存:
docker system prune -a - 重启容器:
docker compose up -d
Docker 会从 Docker Hub 拉取最新版本的 Databasus(前提是你没有 在 docker-compose.yml 文件中固定版本)。
更新 Helm 安装
要更新通过 Helm 部署在 Kubernetes 上的 Databasus,执行 upgrade 命令:
helm upgrade databasus oci://ghcr.io/databasus/charts/databasus -n databasus如果你有自定义配置,添加 -f values.yaml 或使用 --set 参数来保留它们。Helm 会以滚动更新的方式 升级到新版本。
从 Postgresus 迁移
Databasus 是 Postgresus 的新名字。如果你正在使用 Postgresus,可以继续使用,也可以迁移到 Databasus。
重要:只改 Docker 镜像名是不够的,因为 Postgresus 和 Databasus 使用不同的数据目录和不同的内部 数据库命名。
迁移步骤:
- 停止 Postgresus 容器:
docker compose stop - 用上面任意一种方式安装 Databasus(使用不同的卷路径
./databasus-data) - 在 Databasus 中手动重建数据库、存储和通知渠道
迁移期间,可以用不同的端口和卷路径让 Postgresus 和 Databasus 并行运行。
故障排查
容器无法启动
如果容器启动失败,查看日志:
docker logs databasus端口已被占用
如果 4005 端口被占用,可以在 docker-compose.yml 中修改:
ports:
- "8080:4005" # Change 8080 to any available port权限错误
如果数据目录出现权限问题:
sudo chown -R $USER:$USER ./databasus-data
chmod -R 755 ./databasus-data