
2026/06/02 22:52
バックレストリク - リスティックバックアップのための Web UI およびオーケストレーター
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
サマリー:
Backrest は、resticを基盤として構築された軽量な Web へのアクセス可能なバックアップ管理ツールであり、リポジトリの管理、スナップショットの閲覧、ファイルの復元を行えるユーザーフレンドリーな WebUI を備えており、高度な技術知識を要せずに利用できます。Go で単一バイナリとして構築されており、実行時依存項として唯一必要なものは restic だけであり、不足している場合は自動的にダウンロードされます。S3、B2、Azure、GCS、ローカルディスク、rclone を介した SFTP など、多様なストレージバックエンドをサポートし、Linux、macOS、Windows、FreeBSD、Docker 環境などにおいてシームレスに動作します。本ソフトウェアは、自動化された裁剪と保守、Discord、Slack、Shoutrrr、Gotify、Healthchecks を通じた構成可能な通知、バックアップ前のフックおよびバックアップ後のフックといった複雑なタスクを処理します。ユーザーは環境変数(例:デフォルトの 9898 ポートに設定される
BACKREST_PORT など)または各 OS および Docker セットアップ向けの実行スクリプトを通じて動作をカスタマイズできます。その簡素化されたアーキテクチャとオープンソース性のゆえに、継続的な開発に向けてコミュニティからの寄与が促進されています。本文
Backrest(バックレスト):高速・安全な Web ベースの Backup 管理ツール
Backrest は、オープンソースの restic を基盤とした、Web ブラウザからアクセス可能なバックアップ管理ソリューションです。以下のメリットがあります:
- 直感的な操作: リポジトリ作成、スナップショット閲覧、ファイルリストアなど、CLI コマンドを Web UI で視覚的に実行できます。
- 自動化機能: スナップショットのスケジュール管理やリポジトリの健全性チェック(check)などをバックグラウンドで自動実行します。
- 高可用性・軽量さ: Go ランタイムで構築され、restic のみという依存関係を持つスタンドアロンの軽量バイナリとして配信されます。
- 柔軟な管理: Web UI で大部分の作業を代行しつつ、必要に応じて強力な restic CLI に直接アクセス可能です。
主要機能
- Web インターフェース: ローカルおよびリモートからのアクセスに対応(NAS デプロイメントに最適化)
- マルチプラットフォーム対応: Linux, macOS, Windows, FreeBSD, Docker など広く対応
- バックアップ管理機能:
- 既存の restic リポジトリのインポート
- Cron に基づく自動バックアップおよび保守作業の実行(例:
,prune
,check
など)forget - スナップショットからのファイル閲覧とリストア
- 多様な通知設定対応(Discord, Slack, Shoutrrr, Gotify, Healthchecks など)
- バックアップ前後のシェルスクリプト実行フック機能
- ストレージオプション:
リモートとの互換性ありrclone- S3, B2, Azure, GCS, ローカル, SFTP、および全ての
リモートに対応rclone
公式ドキュメント: Backrest ドキュメント
インストール
Backrest は単一の実行可能ファイルとしてパッケージ化されており、プラットフォームを問わず動作します。起動時、restic が自動的にダウンロードされます。インストール後はブラウザから
http://localhost:9898(デフォルトポート)へアクセスして利用開始できます。初めての場合はユーザー名とパスワードの作成が求められます。
ポート設定と実行権限
- デフォルトポートの変更:環境変数
を設定(例:BACKREST_PORT
)。これにより全てのネットワークインターフェースで Listen します。BACKREST_PORT=0.0.0.0:9898 - リモートアクセス用フラグ:インストールスクリプトに
を指定すると、上記設定が簡略化されます。--allow-remote-access - restic バイナリ:システムに適切なバージョンがあれば利用し、なければ Backrest が自動で管理・更新します。特定のパスを使う場合は環境変数
で指定します。BACKREST_RESTIC_COMMAND
Linux と macOS(推奨)
インストールスクリプトは最新版を取得し、バイナリを
/usr/local/bin/ に配置するとともに、OS 依存のサービス管理(systemd/OpenRC/launchd)を設定します。
基本インストール:
curl -fsSL https://raw.githubusercontent.com/garethgeorge/backrest/main/install.sh | bash
詳細オプション(
の後から指定):--
- 全ネットワークインターフェースにバインドする場合:
curl -fsSL https://raw.githubusercontent.com/garethgeorge/backrest/main/install.sh | bash -s -- --allow-remote-access - アンインストールする場合(サービス、エントリ、バイナリの削除):
curl -fsSL https://raw.githubusercontent.com/garethgeorge/backrest/main/install.sh | bash -s -- --uninstall
ヒント: スクリプトをパイプする前に
install.sh の中身を確認することをお勧めします。クローンしてローカルで実行することも可能です。
macOS — Homebrew(代替方法)
brew tap garethgeorge/homebrew-backrest-tap brew install backrest brew services start backrest
注意: フルディスクアクセス権限が必要な場合があります。「システム設定」>「セキュリティとプライバシー」>「プライバシー」>「フルディスクアクセス」から
/usr/local/bin/backrest を追加してください。
Arch Linux(AUR)
AUR 上のパッケージはサードパーティ製です(Backrest プロジェクトによる公式維持ではありません)。systemd ユニットファイルに変更があるため AUR のページを参照することをお勧めします。
paru -Sy backrest # または: yay -Sy backrest sudo systemctl enable --now backrest@$USER.service
Docker
- イメージ:
(Docker Hub でも利用可能)ghcr.io/garethgeorge/backrest- rclone と一般的な Unix ユティリティを含むフル機能版
- 最小限のイメージ:
ghcr.io/garethgeorge/backrest:scratch
Docker Compose 設定例
version: "3.8" services: backrest: image: ghcr.io/garethgeorge/backrest:latest container_name: backrest hostname: backrest volumes: - ./backrest/data:/data - ./backrest/config:/config - ./backrest/cache:/cache - ./backrest/tmp:/tmp - ./backrest/rclone:/root/.config/rclone # rclone 設定用(必須の場合) - /path/to/backup/data:/userdata # バックアップ対象のローカルパス - /path/to/local/repos:/repos # ローカルリポジトリ(オプション) environment: - BACKREST_DATA=/data - BACKREST_CONFIG=/config/config.json - XDG_CACHE_HOME=/cache - TMPDIR=/tmp - TZ=America/Los_Angeles ports: - "9898:9898" restart: unless-stopped
Windows
アーキテクチャに合わせたインストーラーを リリースページ からダウンロードしてください。インストール後、Backrest と GUI トレーアプリケーションが
%localappdata%\Programs\Backrest\ に設置され、ログイン時に自動起動します。
- ポート変更: インストール前に環境変数
を設定します(Windows 10 以降:「設定」>「システム」>「詳細なシステム設定」>「環境変数」>「ユーザー変数」から追加)。例:BACKREST_PORT
。127.0.0.1:8080 - インストール後の変更には再インストールが必要です。
設定情報
Unix システム用環境変数
| 変数名 | 説明 | デフォルト値 |
|---|---|---|
| バインドするポート | (Docker は ) |
| 設定ファイルパス | ($XDG_CONFIG_HOME が設定されている場合) |
| データディレクトリパス | ($XDG_DATA_HOME が設定されている場合) |
| restic バイナリのパス | (自動管理版) |
| キャッシュディレクトリパス | なし |
Windows 用環境変数
| 変数名 | 説明 | デフォルト値 |
|---|---|---|
| バインドするポート | |
| 設定ファイルパス | |
| データディレクトリパス | |
| restic バイナリのパス | (自動管理版) |
| キャッシュディレクトリパス | なし |
開発者向け情報
コントリビューションの歓迎
既存の問題(Issues)の確認や新問題の提起、ドキュメント・クックブックへの執筆などを歓迎します。
ビルド環境(Nix + direnv)
すべてのビルド依存関係は
shell.nix で定義されており、以下の手順で自動化できます。
- Nix と
をインストールdirenv - Shell にフックを追加(例:
に.bashrc
)eval "$(direnv hook bash)" - リポジトリをクローンし、ディレクトリに入る
を実行してdirenv allow
を許可すると、Go, Node.js, pnpm, protoc など全ての依存関係が自動準備されます。.envrc
手動環境構築(Nix 使用時)
必要に応じて個別にインストールします:
- Go 1.24 以降
- Node.js 20.x および pnpm 9
- goreleaser:
go install github.com/goreleaser/goreleaser/v2@latest
Protobuf コンパイラの実行(オプション)
apt install -y protobuf-compiler go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest go install github.com/bufbuild/buf/cmd/buf@latest go install google.golang.org/protobuf/cmd/protoc-gen-go@latest go install connectrpc.com/connect/cmd/protoc-gen-connect-go@latest npm install -g @bufbuild/protoc-gen-es
コンパイル手順
# フロントエンドビルド (cd webui && pnpm i && pnpm run build) # バックエンドバイナリ生成 (cd cmd/backrest && go build .)
VSCode Dev Containers(推奨)
Nix と direnv を用いて依存関係を自動管理するデベロッパーコンテナが用意されています。
- Docker と「Dev Containers」拡張機能をインストール済みであることを確認
- リポジトリをクローンし、VSCode で開く
- 「コンテナで開く」ボタンをクリック(またはターミナルから
コマンド)devcontainers - コンテナ起動後、「Run and Debug」タブより「Debug Backrest (backend+frontend)」を実行
注意: TypeSript フロントエンドのホットリロードがサポートされています。
翻訳について
翻訳ファイルは
./webui/messages に格納されており、inlang ツールを用いて管理されます。機械翻訳による更新も可能です:
npx @inlang/cli machine translate --project ./project.inlang
注意: 機械翻訳により正確性が保証されるものではありません。誤訳を発見された場合は修正用の Pull Request をご提出ください。翻訳への貢献を大歓迎しています!