docs: update Netgrimoire/Pocket/Deployment_Guide
This commit is contained in:
parent
46740740db
commit
733fde1fb8
1 changed files with 118 additions and 33 deletions
|
|
@ -2,7 +2,7 @@
|
|||
title: Pocket Grimoire
|
||||
description:
|
||||
published: true
|
||||
date: 2026-02-21T06:10:17.060Z
|
||||
date: 2026-02-21T16:33:03.912Z
|
||||
tags:
|
||||
editor: markdown
|
||||
dateCreated: 2026-02-20T04:41:35.122Z
|
||||
|
|
@ -287,6 +287,7 @@ Headroom: 78W
|
|||
└── vault.vc
|
||||
|
||||
/srv/greenpg/ # GREEN SSD (personal, rotated)
|
||||
└── Pocket/ # Dataset received from vault/Green/Pocket
|
||||
├── media/library/ # Personal media files
|
||||
│ ├── movies/
|
||||
│ └── tv/
|
||||
|
|
@ -695,25 +696,49 @@ du -sh /mnt/pocket-vault/
|
|||
**Perform initial sync to GREEN:**
|
||||
```bash
|
||||
# On Netgrimoire
|
||||
# Sync personal media and Stash data from /export/vault/Green/
|
||||
# You have an existing encrypted dataset: vault/Green/Pocket
|
||||
# This contains your personal media and will include Stash data
|
||||
|
||||
# Sync entire Green directory structure
|
||||
sudo rsync -avP --exclude='cache' \
|
||||
/export/vault/Green/ \
|
||||
/mnt/pocket-green/
|
||||
# First, verify the dataset exists and its size
|
||||
zfs list vault/Green/Pocket
|
||||
# Should show: vault/Green/Pocket 5.01T 2.49T 5.01T /export/Green/Pocket
|
||||
|
||||
# Or use ZFS send/receive for atomic snapshot (if Green is a ZFS dataset)
|
||||
sudo zfs snapshot vault/Green@initial
|
||||
sudo zfs send vault/Green@initial | \
|
||||
sudo zfs receive pocket-green/Green
|
||||
# Create snapshot for initial send
|
||||
sudo zfs snapshot vault/Green/Pocket@initial
|
||||
|
||||
# Verify data
|
||||
ls -lh /mnt/pocket-green/
|
||||
ls -lh /mnt/pocket-green/media/library/
|
||||
ls -lh /mnt/pocket-green/stash/
|
||||
du -sh /mnt/pocket-green/
|
||||
# Send to pocket-green pool
|
||||
# Note: This sends the encrypted data, pocket-green will have its own encryption
|
||||
sudo zfs send vault/Green/Pocket@initial | \
|
||||
sudo zfs receive pocket-green
|
||||
|
||||
# This creates: pocket-green/Pocket (matching the structure)
|
||||
|
||||
# Verify received
|
||||
zfs list pocket-green/Pocket
|
||||
ls -lh /mnt/pocket-green/Pocket/
|
||||
|
||||
# The data structure should now be:
|
||||
# /mnt/pocket-green/Pocket/
|
||||
# ├── media/library/
|
||||
# │ ├── movies/
|
||||
# │ └── tv/
|
||||
# └── stash/
|
||||
# ├── config/
|
||||
# ├── generated/
|
||||
# └── blobs/
|
||||
|
||||
# Verify data integrity
|
||||
du -sh /mnt/pocket-green/Pocket/
|
||||
```
|
||||
|
||||
**Important notes:**
|
||||
- The `vault/Green/Pocket` dataset is encrypted on Netgrimoire
|
||||
- `zfs send` transfers the data (decrypted during send)
|
||||
- `pocket-green` pool has its own encryption (encrypts during receive)
|
||||
- Result: Data is encrypted at rest on both systems with different keys
|
||||
- The dataset name becomes `pocket-green/Pocket` (not `pocket-green/Green/Pocket`)
|
||||
|
||||
|
||||
**Populate MEDIA-FAMILY (optional - curate family content):**
|
||||
```bash
|
||||
# On Netgrimoire
|
||||
|
|
@ -780,7 +805,11 @@ zpool list
|
|||
# Set proper mount points
|
||||
sudo zfs set mountpoint=/srv/vaultpg vaultpg
|
||||
sudo zfs set mountpoint=/srv/greenpg greenpg
|
||||
# Or for family drive:
|
||||
|
||||
# For the Pocket dataset (received from vault/Green/Pocket)
|
||||
sudo zfs set mountpoint=/srv/greenpg/Pocket greenpg/Pocket
|
||||
|
||||
# Or for family drive (when you swap):
|
||||
# sudo zfs set mountpoint=/srv/mediapg mediapg
|
||||
|
||||
# Create mount points
|
||||
|
|
@ -796,12 +825,13 @@ sudo zfs mount -a
|
|||
df -h | grep srv
|
||||
# Should show:
|
||||
# vaultpg mounted on /srv/vaultpg
|
||||
# greenpg mounted on /srv/greenpg (or mediapg on /srv/mediapg)
|
||||
# greenpg mounted on /srv/greenpg
|
||||
# greenpg/Pocket mounted on /srv/greenpg/Pocket
|
||||
|
||||
# Verify data
|
||||
ls /srv/vaultpg/
|
||||
ls /srv/greenpg/media/library/
|
||||
ls /srv/greenpg/stash/
|
||||
ls /srv/greenpg/Pocket/media/library/
|
||||
ls /srv/greenpg/Pocket/stash/
|
||||
# Or for family:
|
||||
# ls /srv/mediapg/library/
|
||||
```
|
||||
|
|
@ -813,6 +843,7 @@ ls /srv/greenpg/stash/
|
|||
|
||||
sudo zfs set canmount=noauto vaultpg
|
||||
sudo zfs set canmount=noauto greenpg
|
||||
sudo zfs set canmount=noauto greenpg/Pocket
|
||||
sudo zfs set canmount=noauto mediapg # For when you swap to family drive
|
||||
|
||||
# Pools will need manual unlock via SSH after boot
|
||||
|
|
@ -1904,7 +1935,61 @@ docker ps
|
|||
|
||||
**If anything fails during this test, debug at home before traveling!**
|
||||
|
||||
### 10. Verify Data Synced from Netgrimoire
|
||||
### 10. Configure Ongoing ZFS Sync (After Initial Setup)
|
||||
|
||||
**Once drives are on Pocket Grimoire, set up ongoing sync from Netgrimoire:**
|
||||
|
||||
```bash
|
||||
# On Pocket Grimoire
|
||||
# Create ZFS replication script
|
||||
|
||||
sudo nano /usr/local/sbin/pocketgrimoire-zfs-pull.sh
|
||||
```
|
||||
|
||||
```bash
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
SRC_HOST="netgrimoire.local"
|
||||
SSH_KEY="/srv/pocket-grimoire/keys/zfs_pull_ro"
|
||||
|
||||
# Sync GREEN/Pocket dataset (personal media + Stash)
|
||||
# This pulls incremental changes from vault/Green/Pocket to greenpg/Pocket
|
||||
syncoid --no-sync-snap \
|
||||
--sshkey "${SSH_KEY}" \
|
||||
"root@${SRC_HOST}:vault/Green/Pocket" \
|
||||
"greenpg/Pocket"
|
||||
|
||||
# Note: VAULT and MEDIA-FAMILY don't sync ongoing
|
||||
# VAULT: Contains backups only, managed separately
|
||||
# MEDIA-FAMILY: Manually updated when needed
|
||||
```
|
||||
|
||||
```bash
|
||||
sudo chmod +x /usr/local/sbin/pocketgrimoire-zfs-pull.sh
|
||||
```
|
||||
|
||||
**This sync runs every 6 hours automatically and:**
|
||||
- ✅ Syncs `/export/Green/Pocket/` from Netgrimoire
|
||||
- ✅ Includes personal media updates
|
||||
- ✅ Includes Stash database changes
|
||||
- ✅ Includes new previews/blobs
|
||||
- ✅ Only transfers incremental changes (fast)
|
||||
|
||||
**Test sync manually:**
|
||||
```bash
|
||||
# Unlock pools first
|
||||
/usr/local/sbin/unlock-pocket-grimoire.sh
|
||||
|
||||
# Run sync
|
||||
sudo /usr/local/sbin/pocketgrimoire-zfs-pull.sh
|
||||
|
||||
# Check for new data
|
||||
zfs list greenpg/Pocket
|
||||
du -sh /srv/greenpg/Pocket/
|
||||
```
|
||||
|
||||
### 11. Verify Data Synced from Netgrimoire
|
||||
```bash
|
||||
# Check VAULT data present (backups only)
|
||||
ls /srv/vaultpg/kopia/
|
||||
|
|
@ -1913,19 +1998,19 @@ ls /srv/vaultpg/repos/
|
|||
du -sh /srv/vaultpg/
|
||||
|
||||
# Check GREEN data (personal media + Stash)
|
||||
ls /srv/greenpg/media/library/
|
||||
ls /srv/greenpg/stash/
|
||||
du -sh /srv/greenpg/
|
||||
ls /srv/greenpg/Pocket/media/library/
|
||||
ls /srv/greenpg/Pocket/stash/
|
||||
du -sh /srv/greenpg/Pocket/
|
||||
|
||||
# Or check MEDIA-FAMILY data (if that drive is connected)
|
||||
ls /srv/mediapg/library/
|
||||
du -sh /srv/mediapg/
|
||||
|
||||
# Verify Stash database and previews (only on GREEN)
|
||||
ls -lh /srv/greenpg/stash/config/
|
||||
ls -lh /srv/greenpg/Pocket/stash/config/
|
||||
# Should show: stash-go.sqlite
|
||||
|
||||
ls /srv/greenpg/stash/generated/ | wc -l
|
||||
ls /srv/greenpg/Pocket/stash/generated/ | wc -l
|
||||
# Should show: hundreds of preview files
|
||||
```
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue