跳转到主要内容
开源 · 自托管 · 支持 Docker

您的所有备份。一个仪表板。

无需再逐一登录各个 Duplicati Web 界面。duplistatus 通过单一屏幕监控所有服务器和任务——让您在遭遇突发数据丢失前,就能确信备份一切正常。

duplistatus 使用 Duplicati 的内置 HTTP 报告功能,因此无需在备份机器上安装任何软件。

多服务器监控 ntfy 和电子邮件告警 默认安全,按需提供额外保护

最核心的问题

我的所有备份都正常吗?一屏解答,覆盖每台服务器、每个任务和每次运行。

localhost:9666

专为在多台机器上运行 Duplicati 的用户打造

无论您运行的是 NAS、笔记本电脑、VPS 还是两台家庭服务器,duplistatus 都能将它们汇总到同一个屏幕上。

01

备份状态一览无余

每台服务器的卡片会显示每个任务最近 10 次的运行记录。服务器较多时可切换为可排序表格,并可打开任意一次运行以查看完整日志(包括警告和错误)。

  • 服务器、任务、运行次数、大小和存储空间的统计总览
  • 自动刷新的仪表板,带来大屏展示体验
  • 对照 GitHub 最新版本检查 Duplicati 服务器版本
阅读仪表板指南
02

防患于未然,避免数据丢失

duplistatus 自动检测过期、警告和失败的备份,并通过 ntfy 推送或 SMTP 电子邮件向您发出告警。

  • 默认定期运行过期检查
  • 获取各任务的通知,支持独立任务过滤:关闭、所有、警告或错误
  • 通过每日摘要电子邮件减少通知干扰。
阅读关于备份监控的说明
03

从容排查故障

打开任意一次运行以阅读其日志(包含警告和错误),并查看有哪些可用恢复点。需要更多详细信息时,还可查看耗时、大小和存储空间的图表。

  • 自动从 Duplicati 服务器收集日志
  • 每次运行均显示可用版本
  • 耗时、大小和存储空间的图表
阅读备份详情

仅需四步,从零开始实现全面监控

容器化部署让您在数分钟内即可启动并运行 — 无需耗费数小时。

步骤 1

部署容器

从 Docker Hub 或 GitHub 拉取镜像,设置时区并挂载数据卷。Web UI 监听端口 9666。数据库结构迁移会在启动时自动应用。

开始使用
安装指南
步骤 2

将 Duplicati 指向 duplistatus

配置每个 Duplicati 服务器将 JSON 报告 POST 到 /api/upload。然后收集历史日志,以便自动填充监控间隔。

--send-http-json-urls=http://host:9666/api/upload
--send-http-log-level=Information
--send-http-max-log-lines=500
Duplicati 配置
步骤 3

配置告警

ntfy 已配置完成。将主题更改为你自己的主题,然后扫描 duplistatus 生成的二维码,即可在手机上完成设置。
配置电子邮件服务器设置,开始接收来自 duplistatus 的邮件。

设置每个备份预计运行的频率以及在哪些日期运行。
通知设置
步骤 4

让 duplistatus 监控您的备份

duplistatus 负责监控。如果备份过期,或在完成时出现警告或错误,你将收到通知或电子邮件。
若想更加省心,可以开启可选的每日摘要:即使一切正常,你每天也能收到它。

过期和失败的备份一目了然。
用户指南

默认安全。需要时可添加更多保护。

从首次启动起就已开启登录,因此私有家庭实验室开箱即可获得保护。将其暴露给互联网时,可添加 API 密钥和 IP 允许列表。

按角色登录

以管理员或普通用户身份登录。限制每个用户可以查看的服务器。

API 密钥

分别为 Duplicati 上传和只读仪表盘或小部件提供独立的密钥,并配有上传大小和速率限制。

IP 允许列表

两个独立的允许列表:一个用于管理界面,一个用于外部API。当 duplistatus 运行在反向代理之后时,它们可防止伪造的客户端 IP。

CSRF 防护

基于会话的路由受跨站请求伪造保护。

审计日志

记录每一次配置更改和用户操作。支持筛选、导出并设置记录保留时长。

应用程序日志

仅管理员可见的查看器支持搜索、筛选和导出应用程序日志,并带有实时更新。

要暴露给互联网?请在支持 HTTPS 的反向代理后运行。 阅读指南

专为自建托管社区打造

duplistatus 是开源且自托管的,旨在贴合 家庭实验室所有者和小型团队系统管理员的实际工作方式。

在 GitHub 上开源

完整的源代码、问题 (Issues) 和发布版本。无供应商锁定, 支持自由贡献、复刻 (Fork) 或自建托管。

在 GitHub 上查看

完善的文档

安装指南、配置参考和安全设置,提供七种语言版本。

阅读文档

Docker、Portainer 和 Podman

镜像发布在 Docker Hub 和 GitHub 上。使用您偏好的容器运行时进行部署 — 除单个数据卷外无其他依赖项。

查看安装选项

SQLite + 自动迁移

状态保存在单个 SQLite 文件中,在启动时应用架构迁移。 备份该文件即可完成。

5 分钟
逾期检查
默认间隔
SQLite
数据库
单文件,自动迁移
7
语言
UI 和文档
Apache-2.0
许可证
开源

架构概览

前端 Next.js App Router(独立输出)
后台 独立 cron 服务(仅内部)
数据库 基于 better-sqlite3 的 SQLite
加密 bcrypt (登录)
AES-256-GCM/PBKDF2-SHA256 (机密)
部署 Docker · Portainer Stacks · Podman
告警 ntfy 推送 · SMTP 邮件 · 每日摘要

Cron 服务处理

逾期检查 版本刷新 每日摘要分发 审计日志清理 每周数据库压缩

duplistatus 是一个独立项目,和 Duplicati 团队无任何关联。

几分钟内快速上手

拉取镜像,挂载数据卷,并开放 9666 端口。

# download the compose file
wget https://github.com/wsj-br/duplistatus/raw/refs/heads/master/production.yml -O duplistatus.yml
# start the container
docker compose -f duplistatus.yml up -d
# duplistatus production compose.yml
services:
  duplistatus:
    image: ghcr.io/wsj-br/duplistatus:latest
    container_name: duplistatus
    restart: unless-stopped
    environment:
      - TZ=Europe/London
      - PWD_ENFORCE=true
      - PWD_MIN_LEN=8
    ports:
      - "9666:9666"
    volumes:
      - duplistatus_data:/app/data
    networks:
      - duplistatus_network

networks:
  duplistatus_network:
    driver: bridge

volumes:
  duplistatus_data:
    name: duplistatus_data
# Create the volume
docker volume create duplistatus_data

# Start the container
docker run -d \
  --name duplistatus \
  -p 9666:9666 \
  -e TZ=Europe/London \
  -e LANG=en_GB \
  -v duplistatus_data:/app/data \
  ghcr.io/wsj-br/duplistatus:latest
mkdir -p ~/duplistatus_data
# Start the container (standalone)
podman run -d \
  --name duplistatus \
  --userns=keep-id \
  -e TZ=Europe/London \
  -e LANG=en_GB \
  -p 9666:9666 \
  -v ~/duplistatus_data:/app/data \
  ghcr.io/wsj-br/duplistatus:latest

容器启动后:

  1. 1 在浏览器中打开 http://localhost:9666
  2. 2 使用默认管理员账户登录。首次登录时会要求您更改默认管理员密码。
  3. 3 按照这些说明连接您的 Duplicati 服务器,然后使用收集备份日志导入历史记录
  4. 4 需要暴露到互联网?通过启用 API 密钥和 IP 白名单添加更多保护,并将其置于支持 HTTPS 的反向代理之后。