安装

你可以通过多种方式安装 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:4005

LoadBalancer(云环境)

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>:4005

Ingress(通过域名访问)

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 地址。

快速上手

安装完成后:

  1. 启动并打开 Databasus:启动 Databasus 并访问 http://localhost:4005
  2. 创建第一个备份任务:点击 "New Backup",配置 PostgreSQL 数据库连接
  3. 配置备份计划:设置备份周期(每小时、每天、 每周、每月或 cron)
  4. 选择存储位置:指定备份保存的位置(本地、 S3、Google Drive 等)
  5. 设置通知:添加通知渠道(Slack、Telegram、 Discord),随时了解备份状态
  6. 开始备份:保存配置,看着第一个备份跑起来!

健康检查

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 缓存,再重启容器。

  1. 进入 Databasus 的安装目录(通常是 /opt/databasus
  2. 停止容器:docker compose stop
  3. 清理 Docker 缓存:docker system prune -a
  4. 重启容器: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 使用不同的数据目录和不同的内部 数据库命名。

迁移步骤:

  1. 停止 Postgresus 容器:docker compose stop
  2. 用上面任意一种方式安装 Databasus(使用不同的卷路径 ./databasus-data
  3. 在 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