From 81ba8954e43c74738ec32ffadfb5ea72bbd1bc11 Mon Sep 17 00:00:00 2001 From: Reflection Subagent Date: Thu, 13 Aug 2026 02:18:23 -0400 Subject: [PATCH] =?UTF-8?q?feat(reflection):=20update=20GLaDOS=20backup=20?= =?UTF-8?q?and=20Nextcloud=20infrastructure=20details=20=F0=9F=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed transcript: /home/gov/.letta/transcripts/agent-7fb1fe60-4856-44a6-9520-6a8fdc9c3478/conv-75d0358b-4d00-43ac-8939-3da401ce27eb/payload-auto-6x1s1i.json Updates: - Expanded backup scope: added Nextcloud data (~104GB) and Knot/Tangled data, updated total from ~500MB to ~105GB - Added Nextcloud AIO details: host paths, container mounts, user dirs (Parthasarathy Mohan, Subha Mohan, admin), WebDAV, occ scan commands - Added hardware disk layout details (sda2, sdb1, sdc, sdd, sde) - Added backup execution instructions (sudo -E for Docker volume permissions) - Documented Backblaze B2 billing mechanics (daily storage cap = spending limit, not upload limit; uploads free; ~bash.57/mo) - Clarified what is NOT backed up (removed Nextcloud from exclusions, added external drives) --- reference/tech_context.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/reference/tech_context.md b/reference/tech_context.md index 27c7cd5..4f7ea49 100644 --- a/reference/tech_context.md +++ b/reference/tech_context.md @@ -94,10 +94,11 @@ See [[reference/pds-backup-plan]] for full details. Summary: three backup types - **Full infrastructure doc:** `~/dev/stuff-at-home/GLaDOS-INFRASTRUCTURE.md` on GLaDOS itself - **Hostname:** GLaDOS, Arch Linux, kernel 7.0.9-arch1-1 - **IP:** `192.168.18.35` (LAN), `100.64.0.1` (Tailscale) -- **Hardware:** NVIDIA RTX 3080 10GB, 1.8TB root + 932GB `/mnt/nextcloud` +- **Hardware:** NVIDIA RTX 3080 10GB, 1.8TB root (`/dev/sda2`) + 932GB `/mnt/nextcloud` (`/dev/sdb1`, 104GB used), unused Windows drive (`/dev/sdc`), 2 externals: "My Passport" (`/dev/sdd`) and "GOVIND" (`/dev/sde`, NTFS) - **Tailscale:** Headscale control server at `headscale.glados.computer`, MagicDNS `mesh.glados.computer` - **Gateways:** Tailscale Funnel (glados.network) + Cloudflare Tunnel - **Docker Compose projects:** at-mesh, bsky-chessbot, cloudflare, cocoon, emdash-proto, headscale, knot-docker, Nextcloud AIO +- **Nextcloud AIO:** Web at `cloud.glados.computer` (Cloudflare) or `http://glados:11000` (LAN). Data on host at `/mnt/nextcloud/data`, mounted as `/mnt/ncdata` in container. Users: `Parthasarathy Mohan`, `Subha Mohan`, `admin`. Files at `/mnt/nextcloud/data//files/`. WebDAV: `https://cloud.glados.computer/remote.php/dav/files//`. `occ files:scan --path="//files/"` needed to detect externally-written files (e.g., qBittorrent downloads). Container name: `nextcloud-aio-nextcloud`. - **Custom systemd services:** glados-approval-bridge, lettabot, pds, ddns-cloudflare, zulip-scheduler-bot (cloudflared moved to Docker Compose `cloudflare` project, cloudflared-update retired) - **User-level systemd services:** qbittorrent-nox (port 8082, headless, web UI). Unit file in `~/dev/stuff-at-home/qbittorrent/qbittorrent-nox.service`, symlinked to `~/.config/systemd/user/`. Optional — dies on SSH disconnect (no linger needed per user preference). Newer qbittorrent-nox generates random temp password on first run (check journalctl logs, not default `adminadmin`). wireplumber.service (PipeWire session manager), xdg-user-dirs.service (desktop dir generation), bose-keepalive.timer (ultrasonic tone for Bose SoundDock). - **Pattern for new services:** unit file lives in `~/dev/stuff-at-home//`, symlinked to `/etc/systemd/system/` @@ -117,10 +118,11 @@ See `~/dev/stuff-at-home/restic/` for scripts and config. - **Env file:** `~/dev/stuff-at-home/restic/restic.env` (B2_ACCOUNT_ID, B2_ACCOUNT_KEY, RESTIC_REPOSITORY, RESTIC_PASSWORD_FILE) - **Backup script:** `~/dev/stuff-at-home/restic/backup.sh` - **Verification script:** `~/dev/stuff-at-home/restic/check.sh` (repo integrity + test restore) -- **Backup scope (~500-600MB):** Nextcloud AIO data (incl. vaultwarden volume), Cocoon PDS data (DB, JWK/rotation keys), SSH keys (~40K), qBittorrent data (~8MB), Docker volumes, cocoon.db (493MB), config files -- **Not backed up (by decision):** Headscale DB (re-enrolling devices is low-risk), /pds/ legacy dir (not used), Emacs config (in git), headscale/lib/ +- **Backup scope (~105GB):** Nextcloud data (`/mnt/nextcloud/data`, ~104GB, incl. vaultwarden volume), Cocoon PDS data (DB ~493MB + JWK/rotation keys), Knot/Tangled data (server config 4.2M, SSH keys 28K, git repos 10M), qBittorrent data (~8MB), SSH keys (~40K), Docker volumes, env files (cloudflare tunnel token, DDNS secrets, at-mesh, cocoon, knot, etc.), `~/dev/stuff-at-home/` (infra repo) +- **Execution:** Run `cd ~/dev/stuff-at-home/restic && source ./restic.env && ./backup.sh`. Docker volume paths may need root — use `sudo -E ./backup.sh` (preserves env vars). +- **Not backed up (by decision):** Headscale DB (re-enrolling devices is low-risk), /pds/ legacy dir (not used), Emacs config (in git), headscale/lib/, external drives (`/dev/sdd`, `/dev/sde`) - **Recovery plan:** Restore from restic backup + run setup scripts + restore dotfiles from git. Env files accessible via restored Vaultwarden. Decryption key stored offline separately. -- **Cost:** $0/mo (under first 10GB free tier of B2) +- **Backblaze B2 billing:** Storage $6/TB/mo (first 10GB free) — ~$0.57/mo for 105GB. Uploads free. Downloads $0.01/GB (first 10GB/mo free), full restore ~$1. Daily storage cap is a daily spending limit on storage charges; at $10/day cap you'd need ~43TB stored to hit it. If cap is hit, uploads fail. Daily download cap limits egress spending. Cost cap limits total daily spending. ### Troubleshooting Patterns - **macOS IPv6 not receiving prefix:** Router may advertise prefix but Mac caches stale config per-SSID. Fix: System Settings > Wi-Fi > forget network > reconnect. -- knotmirror 0.0.1