diff --git a/README.md b/README.md index 2e95010..e20733a 100644 --- a/README.md +++ b/README.md @@ -107,18 +107,6 @@ boot hook points to it — **do not delete or move the repo after install.** Refresh your browser. S3 and B2 credentials now appear in the **Data Protection → TrueCloud Backup → Add** credential dropdown. -## Creating a credential - -Before creating a backup task, add a credential in the TrueNAS UI: - -**Data Protection → TrueCloud Backup → Add → (create new credential)** - -Or use **Credentials → Backup Credentials → Cloud Credentials → Add** and -select B2 or Amazon S3. - -For S3-compatible providers, select **Amazon S3**, then set a custom endpoint -in the credential's advanced settings (e.g. `https://s3.wasabisys.com`). - ## Creating a task via CLI If the UI still shows only Storj after refreshing (e.g. the JS bundle pattern @@ -159,100 +147,6 @@ and restores the original UI bundle from backup. --- -## Restoring from a TrueCloud Backup - -TrueCloud Backup uses [restic](https://restic.net/) under the hood. Restores -are done with the `restic` command directly — TrueNAS does not yet expose a -restore UI for TrueCloud Backup tasks. - -### 1. Find the restic binary - -```bash -which restic 2>/dev/null || find /usr -name restic -type f 2>/dev/null | head -1 -``` - -Use that path in the commands below (referred to as `restic`). - -### 2. Gather your repository details - -You need three things from the task you created: - -| Detail | Where to find it | -|---|---| -| **Bucket** and **folder** | TrueNAS UI → Data Protection → TrueCloud Backup → edit the task → Attributes | -| **Credentials** (key ID + secret) | TrueNAS UI → Credentials → Backup Credentials → edit the credential | -| **Repository password** | The `--password` value you supplied when creating the task | - -### 3. Set environment variables - -**Backblaze B2:** -```bash -export B2_ACCOUNT_ID="your-key-id" -export B2_ACCOUNT_KEY="your-application-key" -export RESTIC_PASSWORD="your-repo-password" -REPO="b2:your-bucket:your-folder" # restic 0.16.x uses colon, not slash -``` - -**S3-compatible (AWS S3, Wasabi, Cloudflare R2, MinIO, etc.):** -```bash -export AWS_ACCESS_KEY_ID="your-access-key" -export AWS_SECRET_ACCESS_KEY="your-secret-key" -export RESTIC_PASSWORD="your-repo-password" -# Use just the hostname as the endpoint — no https:// prefix: -REPO="s3:s3.wasabisys.com/your-bucket/your-folder" # Wasabi example -# REPO="s3:s3.amazonaws.com/your-bucket/your-folder" # AWS S3 -# REPO="s3:.r2.cloudflarestorage.com/your-bucket/your-folder" # R2 -``` - -### 4. List snapshots - -```bash -restic -r "$REPO" snapshots -``` - -Output example: -``` -ID Time Host Tags Paths -────────────────────────────────────────────────────────── -a1b2c3d4 2026-06-01 02:00:05 truenas /mnt/tank/data -e5f6a7b8 2026-06-08 02:00:07 truenas /mnt/tank/data -``` - -### 5. Restore files - -**Restore everything from the latest snapshot to a temporary location:** -```bash -restic -r "$REPO" restore latest --target /mnt/tank/restore-tmp -``` - -**Restore a specific snapshot by ID:** -```bash -restic -r "$REPO" restore a1b2c3d4 --target /mnt/tank/restore-tmp -``` - -**Restore only specific paths from within a snapshot:** -```bash -restic -r "$REPO" restore latest \ - --include /mnt/tank/data/important-dir \ - --target /mnt/tank/restore-tmp -``` - -**Browse a snapshot without extracting (useful for finding the right file):** -```bash -restic -r "$REPO" ls latest -``` - -### 6. Notes - -- Restore to a **different path** first, then move files into place after - verifying. Restoring directly over a live dataset can cause data loss if - the snapshot is incomplete or from the wrong point in time. -- If you created the task with `--snapshot` (ZFS snapshot before each run), - the restic snapshot captures the dataset at a consistent point in time. -- Use `restic check -r "$REPO"` periodically to verify repository integrity. - ---- - ## If TrueNAS adds native support `apply.sh` checks at every boot whether TrueNAS has shipped native B2 restic @@ -425,15 +319,6 @@ grep -c 'STORJ_IX.*S3.*B2' \ | grep -v ':0' ``` -**B2 backup fails with credential error** -Confirm the credential type is exactly `B2` (not `S3` with a B2 endpoint). -B2's native restic backend uses a different auth path than S3-compatible B2. - -**S3-compatible backup fails** -S3 support already existed in the backend — the credential setup is the likely -issue. Verify the endpoint URL, access key, secret key, and bucket name in -the credential settings. - **`create_task.py` SSL error connecting to TrueNAS** `create_task.py` talks to the **TrueNAS API**, not your S3 endpoint, and verifies its TLS certificate. If your NAS uses a self-signed certificate,