# Kopia Restore Guide **Last Updated**: May 8, 2026 **Applies To**: Both Kopia repositories on siklos (192.168.88.27) --- ## ⚠️ Critical: What You Need to Restore You need **two things** to restore from Backblaze B2. Without either one, data is unrecoverable: 1. **Repository password** — stored in `credentials.md` 2. **Backblaze B2 account access** — credentials in `credentials.md` > **Do not store these only on siklos.** Keep them in a password manager or printed copy somewhere safe. If siklos dies and you haven't saved the password elsewhere, your backup is unreadable. --- ## 📦 Your Two Repositories | Container | B2 Bucket | What It Backs Up | Port | |-----------|-----------|-----------------|------| | `Kopia` | jg-kopia-nextcloud | Nextcloud files + database | 51515 | | `Kopia-Immich` | jg-kopia-immich | Immich photos + database | 51516 | --- ## 🔍 Step 1 — List Available Snapshots SSH to siklos first: ```bash ssh jgitta@siklos ``` **Nextcloud snapshots:** ```bash docker exec -e KOPIA_PASSWORD='' Kopia kopia snapshot list ``` **Immich snapshots:** ```bash docker exec -e KOPIA_PASSWORD='' Kopia-Immich kopia snapshot list ``` Each snapshot has an ID like `k8adffae645082989d7c0f4f051439332` and a timestamp. You can restore from any snapshot in history — not just the latest. --- ## 📁 Step 2 — Browse a Snapshot (Find Specific Files) You can explore a snapshot like a folder before restoring anything: ```bash # List the top-level contents of a snapshot docker exec -e KOPIA_PASSWORD='' Kopia kopia ls # Drill into a subfolder docker exec -e KOPIA_PASSWORD='' Kopia kopia ls /jgitta/files/Documents # Search for a specific filename across a snapshot docker exec -e KOPIA_PASSWORD='' Kopia kopia find --name "*.jpg" ``` This lets you confirm exactly what you want to restore before doing it. --- ## ♻️ Step 3 — Restore Options ### Restore a Single File ```bash docker exec -e KOPIA_PASSWORD='' Kopia kopia restore \ /path/to/filename.jpg \ /tmp/restore/filename.jpg ``` ### Restore a Specific Folder ```bash docker exec -e KOPIA_PASSWORD='' Kopia kopia restore \ /jgitta/files/Photos \ /tmp/restore/Photos/ ``` ### Restore an Entire Snapshot ```bash docker exec -e KOPIA_PASSWORD='' Kopia kopia restore \ \ /tmp/restore/ ``` > **Note:** Restored files land on siklos at `/tmp/restore/`. From there you can copy them to Nextcloud, Immich, or anywhere else via `scp` or `rsync`. --- ## 🚨 Emergency: Siklos Is Gone — Restore from Scratch If siklos itself is dead, you can restore to any Linux machine: ### 1. Install Kopia ```bash curl -s https://kopia.io/signing-key | sudo gpg --dearmor -o /usr/share/keyrings/kopia-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/kopia-keyring.gpg] http://packages.kopia.io/apt/ stable main" | sudo tee /etc/apt/sources.list.d/kopia.list sudo apt update && sudo apt install kopia ``` ### 2. Connect to Your B2 Repository **For Nextcloud backup:** ```bash kopia repository connect b2 \ --bucket=jg-kopia-nextcloud \ --key-id=00522b2471e5f090000000003 \ --key=K005wv6tlgknxkM9arOJV/tMeOInOQY \ --password= ``` **For Immich backup:** ```bash kopia repository connect b2 \ --bucket=jg-kopia-immich \ --key-id=00522b2471e5f090000000004 \ --key=K005gSepxpWk9hWx/MjWnCKtOiNuKnQ \ --password= ``` ### 3. List and Restore ```bash kopia snapshot list kopia restore /path/to/restore/ ``` > The B2 key IDs and application keys above are in `credentials.md`. Replace `` with the password from `credentials.md`. --- ## 💡 Key Points - **Backblaze "Browse Files"** shows encrypted chunks — this is normal and expected. Files are not human-readable in B2 directly. - **Every snapshot is independent** — you can restore from last week's snapshot even if today's is corrupted. - **Partial restores are fully supported** — restore one file, one folder, or everything. - **Kopia is open source** — even if the project were abandoned, you can always download the binary from GitHub and reconnect to your B2 repository as long as you have your password. --- ## 📋 Restore Checklist - [ ] Have repository password (from `credentials.md`) - [ ] Have B2 credentials (from `credentials.md`) - [ ] SSH to siklos (or install Kopia on alternate machine) - [ ] Run `snapshot list` to find correct snapshot by date - [ ] Use `kopia ls` to browse and confirm the right files - [ ] Run `kopia restore` with specific path for targeted restore - [ ] Copy restored files to final destination