Перейти к основному содержимому
  1. Posts/
  2. Self - Hosting/

Zerobyte - автоматизация резервного копирования для self-hosted инфраструктуры

·1475 слов·7 минут· loading · loading · ·
Stilicho2011
Автор
Stilicho2011
Пишу о homelab, self-hosting, автоматизации и open-source решениях
Оглавление
Backup - This article is part of a series.
Part : This Article
Note

Если вам понравилась настоящая статья, то можете поддержать автора став спонсором на бусти.

Zerobyte: автоматизация резервного копирования для Homelab
#

Резервное копирование — одна из ключевых задач любой инфраструктуры.
В домашнем Homelab или self-hosted окружении важно иметь систему, которая:

  • автоматически выполняет бэкапы
  • поддерживает шифрование
  • умеет работать с облачными хранилищами
  • имеет удобный интерфейс управления

Именно такую задачу решает Zerobyte.

В этой статье разберём:

  • что такое Zerobyte
  • как установить его через Docker
  • как настроить первое резервное копирование
  • как восстанавливать данные

Что такое Zerobyte
#

Zerobyte — это инструмент для автоматизации резервного копирования, который помогает сохранять данные на различных хранилищах. Построенный на основе Restic, он предоставляет современный веб-интерфейс для планирования, управления и мониторинга зашифрованных резервных копий вашего удалённого хранилища.

Warning

Zerobyte всё ещё находится на версии 0.x.x и может существенно меняться от версии к версии. Проект в стадии активной разработки.

После того, как я выпустил ролик про приложения-открытия 2025 года, в числе которых я рассказывал про Zerobyte, мне часто пишут с вопросом, почему я не рассказал о том или ином решении. По мнению задающего вопросы именно то приложение которым он пользуется самое лучшее:) Ниже я постарался свести в некую табличку особенности самых популярных решений.

Особенности Zerobyte:

  • Автоматическое резервное копирование с шифрованием, сжатием и политиками хранения, реализованное с помощью Restic
  • Гибкое расписание для автоматических заданий резервного копирования с тонкой настройкой политики хранения
  • Конечное шифрование (end-to-end), обеспечивающее защиту данных на всех этапах
  • Поддержка нескольких протоколов: резервное копирование с NFS, SMB, WebDAV, SFTP или локальных директорий

Это делает Zerobyte удобной альтернативой таким решениям как:


Сравнение популярных решений для резервного копирования
#

Backup tool Web UI Encryption Deduplication Docker
Duplicati
Kopia
BorgBackup
Zerobyte

Сравнение Duplicati vs ZeroByte — сравнение систем резервного копирования
#

Так как в предыдущей статье я рассказывал про приложение Duplicati, то давайте сравним Duplicati и героя сегодняшней статьи более подробно.

Duplicati и ZeroByte — это решения для резервного копирования данных, ориентированные на self-hosted инфраструктуру и домашние лаборатории. Оба инструмента предоставляют веб-интерфейс, автоматизацию и поддержку удалённых хранилищ, однако они используют разные архитектурные подходы.

Duplicati — это самостоятельная система резервного копирования со своим движком.

ZeroByte — это веб-интерфейс и менеджер задач резервного копирования, построенный поверх backup-движка restic.


Краткая таблица сравнения
#

Критерий Duplicati ZeroByte
Тип решения Самостоятельная система резервного копирования Менеджер резервных копий
Backup-движок Собственный Restic
Архитектура Монолитное приложение Web UI + restic backend
Интерфейс Web UI + CLI Web UI
Шифрование AES-256 Встроенное шифрование restic
Дедупликация Блочная дедупликация Дедупликация restic
Инкрементальные бэкапы Да Да
Сжатие Да Да
Версионирование файлов Да Да
Восстановление файлов Да Да
Планировщик задач Да Да
Поддержка облачных хранилищ Да Через restic или с помощью rclone
Локальные хранилища Да Да
Поддержка S3 Да Да
Поддержка WebDAV Да Да
Поддержка SFTP Да Да
Поддержка rclone Нет Да
Управление несколькими задачами Да Да
Контроль snapshot-ов Да Да
Логи и мониторинг Да Да
Открытый исходный код Да Да
Зрелость проекта Высокая Новый проект
Простота установки Очень простая Простая
Гибкость конфигурации Средняя Высокая

Архитектура решений
#

Duplicati
#

Duplicati представляет собой полностью автономную систему резервного копирования.
Приложение включает:

  • backup-движок
  • веб-интерфейс
  • систему планирования
  • поддержку облачных хранилищ
  • механизм дедупликации
  • шифрование

Благодаря этому Duplicati можно установить как единое приложение и сразу использовать для создания резервных копий.


ZeroByte
#

ZeroByte работает иначе. Это интерфейс управления для restic, популярного backup-движка.

ZeroByte добавляет:

  • веб-панель управления
  • создание backup-задач
  • управление расписанием
  • просмотр snapshot-ов
  • восстановление файлов
  • централизованное управление несколькими репозиториями

Фактически ZeroByte выполняет роль панели управления для restic-инфраструктуры.


Поддерживаемые хранилища
#

Duplicati
#

Duplicati поддерживает большое количество облачных сервисов:

  • Amazon S3
  • Backblaze B2
  • Google Drive
  • OneDrive
  • Dropbox
  • WebDAV
  • SFTP
  • локальные диски
  • NAS

ZeroByte
#

ZeroByte использует возможности restic и может работать с:

  • S3-совместимыми хранилищами
  • локальными репозиториями
  • SFTP
  • WebDAV
  • NAS
  • rclone-backend

Это делает ZeroByte удобным для более сложных инфраструктур. В принципе Zerobyte все, что поддерживает Duplicati, но за счет поддержки rclone имеет большую интеграцию с разнообразными облачными хранилищами.


Основные преимущества
#

Преимущества Duplicati
#

  • очень простая установка
  • готовая система резервного копирования
  • поддерживает самые распространненые облачные хранилища
  • зрелый и хорошо известный проект
  • удобный web-интерфейс

Duplicati отлично подходит для:

  • домашних серверов
  • NAS
  • персональных бэкапов
  • небольших homelab-инфраструктур

Преимущества ZeroByte
#

  • современная архитектура
  • использование надёжного backup-движка restic
  • поддержка rclone-хранилищ
  • гибкая работа с репозиториями
  • удобное управление snapshot-ами

ZeroByte лучше подходит для:

  • продвинутых homelab
  • инфраструктур с несколькими backup-задачами
  • пользователей restic

Когда выбрать Duplicati
#

Duplicati стоит выбрать, если:

  • нужна простая система резервного копирования
  • важна быстрая установка
  • требуется поддержка популярных облачных сервисов
  • инфраструктура небольшая

Duplicati — хороший выбор для большинства домашних серверов.


Когда выбрать ZeroByte
#

ZeroByte лучше выбрать, если:

  • вы уже используете restic
  • нужна более гибкая архитектура backup-системы
  • требуется поддержка rclone-backend
  • есть несколько backup-репозиториев

Итог сравнения Duplicati и ZeroByte
#

Инструмент Лучше всего подходит для
Duplicati Простые и быстрые бэкапы для домашнего сервера
ZeroByte Управление restic-бэкапами и более гибкие инфраструктуры

Оба инструмента являются open-source и могут использоваться в self-hosted среде. Выбор зависит от того, нужен ли вам готовый backup-клиент (Duplicati) или менеджер инфраструктуры бэкапов на базе restic (ZeroByte).

Основные возможности Web интерфейса Zerobyte
#

Web-интерфейс
#

Zerobyte предоставляет современную web-панель управления, через которую можно:

  • создавать backup-задачи
  • запускать бэкапы вручную
  • отслеживать статус
  • восстанавливать файлы

Использование Restic
#

В основе Zerobyte используется Restic, что даёт:

  • дедупликацию
  • шифрование
  • инкрементальные бэкапы
  • поддержку множества backend-хранилищ

Поддерживаемые хранилища
#

Бэкапы можно хранить в:

  • S3
  • Backblaze B2
  • SFTP
  • локальном диске
  • NAS
  • WebDAV

Docker Compose файл из видео
#

services: # Объявление всех сервисов (контейнеров), которыми управляет Docker Compose

  zerobyte: # Имя сервиса (логическое имя контейнера)
    image: ghcr.io/nicotsx/zerobyte:latest # Образ контейнера с фиксированной версией (лучше, чем latest)
    container_name: zerobyte # Явное имя контейнера для удобства управления (docker ps, логи и т.д.)
    restart: unless-stopped # Автоматический рестарт контейнера при падении (кроме ручной остановки)
    cap_add:
      - SYS_ADMIN # Добавляет расширенные привилегии (нужно для FUSE и работы с удалёнными шарами). Если бекапите локальные данные, закомментируйте строку
      - SYS_PTRACE # Позволяет отслеживать процессы (может использоваться для отладки или внутренней логики) Если бекапите локальные данные, закомментируйте строку
    #ports:
    #  - "4096:4096" # Проброс порта наружу (не нужен, если используется Traefik)
    devices:
      - /dev/fuse:/dev/fuse # Проброс FUSE-устройства для работы с rclone/монтированием. Если бекапите локальные данные, закомментируйте строку
    environment: # Переменные окружения для настройки приложения
      - TZ=Europe/Moscow # Таймзона контейнера (важно для расписаний и логов)
      - BASE_URL=https://zerobyte.stilicho.ru # Публичный URL доступа к Zerobyte (используется в UI и OAuth)
      - APP_SECRET=240728b5d3d99fc4c233964e9836a2acf341fae4f72544d1a2051acc1339923d # Секрет приложения (обязательно уникальный, для безопасности)
    security_opt: # Ослабление механизмов безопасности контейнера
      - seccomp:unconfined # Отключает seccomp профиль (разрешает больше системных вызовов) Если бекапите локальные данные, закомментируйте строку
      - apparmor:unconfined # Отключает AppArmor профиль (снимает ограничения доступа) Если бекапите локальные данные, закомментируйте строку
    volumes: # Монтирование директорий (данные и доступ к файлам)
      - /etc/localtime:/etc/localtime:ro # Синхронизация времени с хостом (read-only)
      - /home/stilicho/docker/zerobyte:/var/lib/zerobyte # Данные Zerobyte (конфиги, база, состояние)
      - /home/stilicho/docker:/mydata # Директория с данными для бэкапа (источник volumes)
    networks:
      proxy: # Подключение к сети proxy (для работы с Traefik)
    labels: # Метки для автоматической конфигурации Traefik
      - "traefik.enable=true" # Включает обработку контейнера Traefik
      - "traefik.http.routers.zerobyte.entrypoints=web" # HTTP вход (порт 80)
      - "traefik.http.routers.zerobyte.rule=Host(`zerobyte.stilicho.ru`)" # Маршрутизация по домену
      - "traefik.http.middlewares.zerobyte-https-redirect.redirectscheme.scheme=https" # Редирект HTTP → HTTPS
      - "traefik.http.routers.zerobyte.middlewares=zerobyte-https-redirect" # Применение редиректа
      - "traefik.http.routers.zerobyte-secure.entrypoints=websecure" # HTTPS вход (порт 443)
      - "traefik.http.routers.zerobyte-secure.rule=Host(`zerobyte.stilicho.ru`)" # HTTPS правило маршрутизации
      - "traefik.http.routers.zerobyte-secure.tls=true" # Включение TLS (HTTPS)
      - "traefik.http.routers.zerobyte-secure.service=zerobyte" # Привязка к сервису
      - "traefik.http.services.zerobyte.loadbalancer.server.port=4096" # Внутренний порт приложения в контейнере
      - "traefik.docker.network=proxy" # Указание сети для Traefik

networks: # Объявление сетей
  proxy: # Имя сети
    external: true # Сеть уже создана (Docker Compose не будет её создавать)
Warning

Раздел cap_add и devices дают излишние права. Используйте их только в случае если понимаете возможные последствия. Например в моем случае, без указанных параметров не было возможности подключиться к smb шаре на Truenas


Работа с приложением
#

Приложение достаточно легковесное, образ быстро скачивается и также быстро разворачивается. После это переходим по поддоменному имени, которые мы присвоили нашему приложению, в моем случае - это `zerobyte.stilicho.ru

Нас приветствует окно первичной регистрации, где мы должны задать значения логина и пароля администратора, указать адрес электронной почты и скачать recovery key для восстановления из резервной копии (в случае если такое потребуется).

Окно первоначальной регистрации

Правило для доступа к WebGUI (порт 8006)

Окно для введения данных регистрации и опции для скачивания ключа восстановления

Правило для доступа к WebGUI (порт 8006)

Нас приветствует приятный ретро интерфейс (угловатый как мой Мерседес W124) в красно-черных тонах. Если вы ситх, а в добавок еще и любитель ретро, то этот интерфейс вам очень понравиться

Правило для доступа к WebGUI (порт 8006)

Так как в начале статьи есть ссылка на мой видеообзор, то с вашего позволения ниже я ограничусь кратким описанием мею

Как я рассказывал в видео, то пользователь должен настроить местоположение источника для бекапирования и целевой ресурс, куда будет осуществляться бекапирование.

Соответственно раздел Volumes это “что мы будем бекапировать и местоположение файлов”

Правило для доступа к WebGUI (порт 8006)

Раздел Repositories отвечает за настройку целевого ресурса, куда мы все бекапируем

Правило для доступа к WebGUI (порт 8006)

Раздел Backups позволяет нам тонко настраивать работы по резервному бекапированию, в том числе, но не ограничиваясь: когда, во сколько начинать процедуру резервоного копирования, сколько копий хранить и т.д.

Правило для доступа к WebGUI (порт 8006)

В разделе Notification мы с вам настраиваем каким образом и с помощью чего мы хотим получать уведомления

Правило для доступа к WebGUI (порт 8006)

Ну и в самом низу настройки администрирования

Правило для доступа к WebGUI (порт 8006)
Backup - This article is part of a series.
Part : This Article

Related

Grimmory — self-hosted библиотека и читалка для вашей коллекции книг

·1192 слов·6 минут· loading · loading
Подробная инструкция по установке и настройке Grimmory: развёртывание в Docker, добавление книг, организация библиотеки и использование встроенной веб-читалки.