バックレストリク - リスティックバックアップのための Web UI およびオーケストレーター

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
    を設定(例:
    BACKREST_PORT=0.0.0.0:9898
    )。これにより全てのネットワークインターフェースで Listen します。
  • リモートアクセス用フラグ:インストールスクリプトに
    --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

  • イメージ:
    ghcr.io/garethgeorge/backrest
    (Docker Hub でも利用可能)
    • 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\
に設置され、ログイン時に自動起動します。

  • ポート変更: インストール前に環境変数
    BACKREST_PORT
    を設定します(Windows 10 以降:「設定」>「システム」>「詳細なシステム設定」>「環境変数」>「ユーザー変数」から追加)。例:
    127.0.0.1:8080
  • インストール後の変更には再インストールが必要です。

設定情報

Unix システム用環境変数

変数名説明デフォルト値
BACKREST_PORT
バインドするポート
127.0.0.1:9898

(Docker は
0.0.0.0:9898
)
BACKREST_CONFIG
設定ファイルパス
$HOME/.config/backrest/config.json

($XDG_CONFIG_HOME が設定されている場合)
BACKREST_DATA
データディレクトリパス
$HOME/.local/share/backrest

($XDG_DATA_HOME が設定されている場合)
BACKREST_RESTIC_COMMAND
restic バイナリのパス
$XDG_DATA_HOME/backrest/restic-x.x.x
(自動管理版)
XDG_CACHE_HOME
キャッシュディレクトリパスなし

Windows 用環境変数

変数名説明デフォルト値
BACKREST_PORT
バインドするポート
127.0.0.1:9898
BACKREST_CONFIG
設定ファイルパス
%appdata%\backrest\config.json
BACKREST_DATA
データディレクトリパス
%appdata%\backrest\data
BACKREST_RESTIC_COMMAND
restic バイナリのパス
C:\Program Files\restic\restic-x.x.x
(自動管理版)
XDG_CACHE_HOME
キャッシュディレクトリパスなし

開発者向け情報

コントリビューションの歓迎

既存の問題(Issues)の確認や新問題の提起、ドキュメント・クックブックへの執筆などを歓迎します。

ビルド環境(Nix + direnv)

すべてのビルド依存関係は

shell.nix
で定義されており、以下の手順で自動化できます。

  1. Nix と
    direnv
    をインストール
  2. Shell にフックを追加(例:
    .bashrc
    eval "$(direnv hook bash)"
  3. リポジトリをクローンし、ディレクトリに入る
  4. direnv allow
    を実行して
    .envrc
    を許可すると、Go, Node.js, pnpm, protoc など全ての依存関係が自動準備されます。

手動環境構築(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 を用いて依存関係を自動管理するデベロッパーコンテナが用意されています。

  1. Docker と「Dev Containers」拡張機能をインストール済みであることを確認
  2. リポジトリをクローンし、VSCode で開く
  3. 「コンテナで開く」ボタンをクリック(またはターミナルから
    devcontainers
    コマンド)
  4. コンテナ起動後、「Run and Debug」タブより「Debug Backrest (backend+frontend)」を実行

注意: TypeSript フロントエンドのホットリロードがサポートされています。


翻訳について

翻訳ファイルは

./webui/messages
に格納されており、
inlang
ツールを用いて管理されます。機械翻訳による更新も可能です:

npx @inlang/cli machine translate --project ./project.inlang

注意: 機械翻訳により正確性が保証されるものではありません。誤訳を発見された場合は修正用の Pull Request をご提出ください。翻訳への貢献を大歓迎しています!

同じ日のほかのニュース

一覧に戻る →

2026/06/08 4:01

Linear がなぜこれほど速いのか?技術的な解説

## Japanese Translation: # リニア革命:ウェブアプリケーションのパフォーマンス革新 リニアは、データベースをブラウザ内に完全に実行する(IndexedDB を使用)ことで、従来の CRUD アプリのデータ読み込み時間である約 300ms を数ミリ秒に短縮します。この「ローカルファースト」アーキテクチャでは、標準的なネットワークループが逆転し、デバイス上で変更を即時適用し、WebSocket を経由で非同期でデルタをプッシュすることで、アップデート待ちの地味な网络待ち時間を排除します。共同創設者のトゥオマス・カンカレは、この自社工程エンジンをゼロから構築することを強く推奨しました。タンスタッククエリや SWR などの一般的な楽観的な更新ライブラリを使用せず、サーバーを単なる同期ターゲットとして厳密に扱うアプローチを採用しています。JavaScript のサイズを最小限に抑えるため(圧縮後の JS は約 21MB にまで削減され、ルートレベルのチャンクに分けられている)、チームはバンドルパイプラインを 4 回も移行しました(Parcel → Rollup → Vite → Rolldown)。これにより、配送されるコード量は約 50% 削減されました。重要資産には、フォント(単一の可変 Inter ファイル)、数百のルートチャンクが含まれており、サービスワーカーと `<head/>` に設定された並行モジュールプレロードリンクを通じて事前キャッシュされます。これにより、オフライン時や繰り返し訪問時でも即座にレンダリングが可能になります。さらに、重要な CSS、JavaScript、認証ロジックは HTML に直接埋め込まれており、認証にはセッショントークンの即時取得ではなく、ローカルストレージ内の存在を確認する方式を採用しています。该系统は、50 件のイシューリストが変更された場合、わずか 50 セルだけを更新するなどの粒度の細かなリレンダを達成します。これは、データをプロパティごとの MobX オブザーバブルに水浸げすることで実現されており、標準的なフレームワークでは追いつけない優れた速度優位性を保証しています。

2026/06/08 3:33

依存症、逮捕、犯罪歴からの再起:ゼロから立ち直すまで

## Japanese Translation: 最も重要な示唆は、技術分野における採用決定において過去の過ちよりも将来の可能性を優先させるべきであるという点です。堅い身元調査は無視できない課題を乗り越えた有能な個人が不当に排除されるためです。著者は自らの驚異的なキャリア回復の実例によってこの主張を具体化しています:未成年の逮捕歴(監禁中に最大保安施設で Schedule II 指定薬物への所有および製造・頒布意図に関する 17 の起訴を含む)から、現代の技術産業における高位な技術職に就くまでです。当初、企業の「前科者なし」という採用ポリシーにより 8 社のオファーが撤回されましたが、彼は後に、ワークリリースインターンシップ期間中やハスラ(現在は PromptQL)で創設者から felony conviction の開示を受け入れた際に再雇用されるなど、採用管理者が大きなリスクを冒して彼を採用したことで成功を果たしました。彼の journey はまた、試行錯誤を通じて学んだ特定の教訓も強調しています:Techtonic での不当な解雇とその後 Slack の履歴を調べて正当化されたことや、Hasura などのコミュニティ主導のツールの発見とその仕事が不可欠になったことなどです。この個人的な物語は、犯罪記録を超えて才能が存在し、支援的なリーダーシップが人生を変えうることを説得力のある証拠として提供します。これからの未来において、業界リーダーは候補者の履歴に基づいて自動的に不合格にするのではなく、実証されたスキルを評価するよりニュアンスのある採用慣行を採用すべきです。功績基準による評価システムへとシフトすることで、技術セクターは見逃された膨大な talent の蓄水池を活用できるほか、更生と労働市場への再統合を積極的に支援し、より包摂的な環境を構築できます。

2026/06/08 3:54

LLM が人間のような属性を持つなら、同じく「エイジ オブ エンパイア2」もそうだ

## Japanese Translation: 本文書(arXiv:2605.31514)は、Adrian de Wynter 氏によるものであり、大規模言語モデル(LLM)に独自の人間のような(擬人化された)特性を帰属させることは欠陥のある仮定であると論じます。その理由は、そのような特性は「Age of Empires II」といったリアルタイム戦略ゲームでトレーニングされたニューラルネットワークを含む、あらゆる十分に複雑なシステムにおいて現れる可能性があるためです。著者は「Age of Empires II」が機能的かつチューリング完全であることを認めつつも、レゴの組み立てやグレート・ボストン地域など他のエンティティを、同様の擬人化的特性を示し得る強力なサブストレートの例として挙げています。基本的な証拠は、根本的な応答特性は一定のままでも、観測される行動の解釈はサブストレートによって変化する可能性があることを示しています。擬人化された属性が存在するかどうかを、サブストレートに依存せずに仮定することは循環的な結論や情報不足の結論につながります。著者は「null(零)」という仮説を提唱しており、明示的な測定がそれを否定するまで、LLM をこれらの特性において非特異であると扱うよう提案しています。この転換は、技術業界に対して、ニューラルネットワークだけでなく他のシステムにも人間のような性質を見出さないよう警戒することを促します。これを裏付けるために、本稿では分野の概要調査、潜在的な異議への言及、そして「null」仮説を適用する具体例について論じています。本研究は、オープンネスとユーザーデータのプライバシーを重視する arXivLabs の取り組みの一部です。