From 4ab40b99122fc4a9e3f180a8fc68ac2c3d6453f8 Mon Sep 17 00:00:00 2001 From: jared Date: Fri, 15 May 2026 10:19:50 -0400 Subject: [PATCH] docs: add Synology and VPS inventory docs, update CLAUDE.md Added comprehensive operational documentation for Synology DS218plus access, backup paths, and restic commands. Added VPS inventory with notes on Hyperthrive DigitalOcean recovery and OVH migration plan. Updated CLAUDE.md to reference new docs, expand known workarounds with cursor and NVIDIA DRM details, and clarify hardware status. --- CLAUDE.md | 11 +++- docs/synology.md | 132 ++++++++++++++++++++++++++++++++++++++++++ docs/vps-inventory.md | 64 ++++++++++++++++++++ 3 files changed, 205 insertions(+), 2 deletions(-) create mode 100644 docs/synology.md create mode 100644 docs/vps-inventory.md diff --git a/CLAUDE.md b/CLAUDE.md index a6fc601..7f92411 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -15,6 +15,8 @@ Documentation and planning for a GNOME → Hyprland migration on Fedora 43. No b | Symlink target | `~/.config/hypr/` → symlinked via `stow hypr` | | Hyprland log | `~/.cache/hyprland/hyprland.log` | | Dotfiles remote | `git@forgejo.swansoncloud.com:jared/dotfiles.git` | +| Synology DS218plus access + backup paths | `docs/synology.md` | +| VPS inventory + access notes | `docs/vps-inventory.md` | ## Hyprland configuration @@ -33,14 +35,19 @@ Do NOT use `^(...)$` wrapping — Hyprland 0.51 rejects it as "Invalid rulev2". - `docs/window-manager/` — migration plan, phased progress log, keybindings cheatsheet - `docs/hyprland/` — version-aware Hyprland config reference; update these when Hyprland is upgraded +- `docs/synology.md` — DS218plus SSH alias, `/volume1/backup` map, restic repo commands, recovery notes +- `docs/vps-inventory.md` — VPS SSH aliases, Hyperthrive DO recovery notes, OVH target notes ## Project status Phases 0–3 complete (install, config, dotfiles integration). Phase 4 (first successful Hyprland login and smoke tests) is in progress. Phase 5 (tuning) is deferred. -Known workaround in place: `hyprpolkitagent` replaced with `lxpolkit` due to Qt 6 ABI issue on Fedora 43. +Known workarounds in place: +- `hyprpolkitagent` replaced with `xfce-polkit` due to Qt 6.9/6.10 private ABI mismatch in solopasha COPR (affects hyprland-qt-support, hyprland-qtutils). Revisit when COPR rebuilds against Qt 6.10. +- GDM Wayland→Hyprland cursor handoff leaves stale cursor ghost at login position. Fixed with `exec-once = sleep 1 && hyprctl dispatch movecursor 0 0` in hyprland.conf. If unreliable, fallback is `WaylandEnable=false` in /etc/gdm/custom.conf (makes GDM use X11 greeter for clean KMS handoff). +- `cursor { no_hardware_cursors = true; use_cpu_buffer = 1 }` set in dms/cursor.conf to prevent NVIDIA DRM (akmod-nvidia loaded for RTX 3060) from interfering with AMD Vega cursor plane rendering. ## Hardware - AMD Vega iGPU (primary display, Wayland) -- NVIDIA RTX 3060 dGPU (unused — `akmod-nvidia` intentionally not installed) +- NVIDIA RTX 3060 dGPU (no display connected — `akmod-nvidia` is installed and loads `nvidia_drm` at boot) diff --git a/docs/synology.md b/docs/synology.md new file mode 100644 index 0000000..773efdf --- /dev/null +++ b/docs/synology.md @@ -0,0 +1,132 @@ +# Synology DS218plus + +Operational notes for accessing and navigating the Synology NAS without rediscovering paths. + +## Connection + +- SSH config alias: `synology` +- Hostname/IP: `192.168.86.31` +- SSH user: `jared` +- SSH key from `~/.ssh/config`: `~/.ssh/id_ed25519_git` +- Verified NAS hostname: `DS218plus` + +Quick check: + +```bash +ssh synology 'hostname; id' +``` + +Expected identity: + +```text +DS218plus +uid=1026(jared) gid=100(users) groups=100(users),101(administrators),65536(family) +``` + +## Volume Paths + +Synology shared folders are mounted under `/volume1` over SSH. + +Important paths: + +| Purpose | SSH path | +| --- | --- | +| Main backup share | `/volume1/backup` | +| Fedora continuous restic repo | `/volume1/backup/fedora_desktop_backup_continuous` | +| Older May 2024 user backup | `/volume1/backup/jared_backup052124` | +| Older May 2024 Fedora backup | `/volume1/backup/fedora_backup052124` | +| October 2024 Fedora recovery folder | `/volume1/backup/fedora_recovery_oct2024` | + +List likely backup folders: + +```bash +ssh synology 'find /volume1/backup -maxdepth 2 -mindepth 1 -type d | sort' +``` + +## Restic Access + +Local `restic` is installed at `/usr/bin/restic`. Credentials are sourced from `~/.credentials`; do not print the file or password. + +The active backup script uses: + +```bash +source ~/.credentials +restic -r "sftp:${SYNOLOGY_HOST}:${SYNOLOGY_PATH}" snapshots --compact +``` + +As of 2026-05-14, `~/.credentials` has: + +```text +SYNOLOGY_HOST=synology +SYNOLOGY_PATH=/home/Backups/fedora-workstation +``` + +Note: that SFTP path is a virtual path for restic/SFTP access. Over an interactive SSH shell, the same repository is visible at: + +```text +/volume1/backup/fedora_desktop_backup_continuous +``` + +Repository structure confirmed on 2026-05-14: + +```text +config +data/ +index/ +keys/ +locks/ +snapshots/ +``` + +## Useful Restic Commands + +List snapshots: + +```bash +source ~/.credentials +restic -r "sftp:${SYNOLOGY_HOST}:${SYNOLOGY_PATH}" snapshots --compact +``` + +List a path in the latest snapshot: + +```bash +source ~/.credentials +restic -r "sftp:${SYNOLOGY_HOST}:${SYNOLOGY_PATH}" ls latest /home/jared/.ssh +``` + +Search snapshots for specific files: + +```bash +source ~/.credentials +restic -r "sftp:${SYNOLOGY_HOST}:${SYNOLOGY_PATH}" find /home/jared/.ssh/id_rsa /home/jared/.ssh/id_rsa.pub +``` + +Restore a specific file or directory to a temporary location: + +```bash +source ~/.credentials +mkdir -p /tmp/restic-restore +restic -r "sftp:${SYNOLOGY_HOST}:${SYNOLOGY_PATH}" restore latest \ + --target /tmp/restic-restore \ + --include /home/jared/path/to/file +``` + +## Snapshot State on 2026-05-14 + +The Fedora continuous repo is accessible and decrypts successfully. It had 17 snapshots from 2026-04-11 through 2026-05-11. + +Latest snapshot observed: + +```text +c4ec0c91 2026-05-11 01:58:03 host=fedora tag=fedora size=18.779 GiB +``` + +## SSH Key Recovery Findings + +Checked while investigating Hyperthrive VPS access on 2026-05-14: + +- Latest restic snapshot `.ssh` contains only `config`, `id_ed25519_git`, `id_ed25519_git.pub`, `id_ed25519_ovh_backup`, `id_ed25519_ovh_backup.pub`, `known_hosts`, and `known_hosts.old`. +- `restic find` did not find `/home/jared/.ssh/id_rsa`, `/home/jared/.ssh/id_rsa.pub`, `id_ed25519_forgejo`, or `id_ed25519_forgejo.pub`. +- `/volume1/backup/jared_backup052124/.ssh` exists but is empty. +- `/volume1/backup/fedora_backup052124/jared/.ssh` exists but is empty. +- No `.ssh` files were found under `/volume1/backup/fedora_backup052124` or `/volume1/backup/fedora_recovery_oct2024` in the checked paths. diff --git a/docs/vps-inventory.md b/docs/vps-inventory.md new file mode 100644 index 0000000..5775084 --- /dev/null +++ b/docs/vps-inventory.md @@ -0,0 +1,64 @@ +# VPS Inventory + +Operational notes for small VPS hosts. Keep secrets out of this file. + +## Hyperthrive DigitalOcean Docker Services + +- Local SSH alias: `hyperthrive-docker` +- Host/IP: `161.35.12.75` +- User: `jared` +- Local identity file: `~/.ssh/id_ed25519_git` +- Provider label seen in console: `hyperthrive-docker-services` +- OS observed on 2026-05-14: Ubuntu 24.04.4 LTS + +Quick access: + +```bash +ssh hyperthrive-docker +``` + +### 2026-05-14 Recovery Notes + +Problem: + +- SSH initially failed with `Permission denied (publickey)`. +- The old expected key was not recovered from local files, Synology restic snapshots, or older Synology backup folders. +- DigitalOcean web console login as `jared` worked. +- Root console login required a password change and disconnected during attempts. +- `/` was at 99.8% usage on a 48.27 GiB filesystem. + +Resolution: + +- Freed space from journald and apt cache. +- Started Docker. +- `sudo docker system df` showed Docker images using 25.48 GiB with 20.91 GiB reclaimable. +- Ran `sudo docker system prune -af`. +- Docker reclaimed 20.68 GiB. +- Added/confirmed `~/.ssh/id_ed25519_git.pub` in `jared`'s `authorized_keys`. +- Updated local SSH config so `hyperthrive-docker` uses `~/.ssh/id_ed25519_git`. +- SSH login works again with `ssh hyperthrive-docker`. + +### Decommissioning Plan + +Current intent: migrate any needed services from this DigitalOcean VPS to the OVH VPS, then shut down the DigitalOcean VPS. + +Before shutdown, capture: + +```bash +ssh hyperthrive-docker 'hostname; docker ps -a; docker volume ls; ls -la ~/services 2>/dev/null || true' +``` + +Avoid `docker system prune --volumes` until volumes have been inspected; stopped container volumes may contain application or database data. + +## OVH VPS + +- Local SSH alias: `ovh-vps` +- Host/IP: `15.204.247.153` +- User: `jared` +- Local identity file: `~/.ssh/id_ed25519_ovh_backup` + +Quick access: + +```bash +ssh ovh-vps +```