Backrest — это веб-обёртка поверх утилиты restic. Она даёт веб-интерфейс, в котором можно создавать репозитории, просматривать снимки и восстанавливать файлы. Всё, что умеет restic (надёжное, быстрое и проверенное резервное копирование), Backrest просто упаковывает в удобную веб-морду.
Написана на Go, распространяется как один лёгкий бинарник. Единственная зависимость — сам restic, который подтягивается автоматически при первом запуске. Работает на Linux, macOS, Windows и FreeBSD, есть и Docker-образ.
После установки интерфейс доступен по адресу http://localhost:9898. Порт можно поменять через переменную BACKREST_PORT. Можно импортировать уже существующие репозитории restic. А ещё Backrest умеет запускать бэкапы и обслуживание (например, prune, check, forget) по расписанию через cron. Умеет уведомлять о событиях через Discord, Slack, Shoutrrr, Gotify и Healthchecks. Есть хуки — можно выполнить произвольный shell-скрипт до или после бэкапа.
Хранилище поддерживается любое, что есть в restic: S3, B2, Azure, GCS, локальные папки, SFTP и вообще все rclone-совместимые удалёнки.
На Linux и macOS проще всего установить через скрипт — он скачивает релиз, кладёт бинарник в /usr/local/bin и настраивает автозапуск (systemd, OpenRC или launchd). Если в системе уже стоит restic и он совместим, Backrest будет использовать его. Если нет — скачает свою версию и будет её обновлять. На macOS есть Homebrew tap. На Arch Linux — пакет в AUR (третьесторонний, с изменённым systemd-юнитом). На Windows — установщик с GUI-треем, который мониторит процесс.
Разработка открыта, принимаются пул-реквесты. Все зависимости описаны в shell.nix, можно использовать Nix и direnv, чтобы автоматически подтянуть Go, Node.js, pnpm и другие утилиты. Есть Dev Container для VSCode с горячей перезагрузкой TypeScript-фронтенда. Переводы лежат в ./webui/messages, генерируются через inlang, машинный перевод обновляется командой.