audit echo vs log across all scripts — outcomes always visible, verbose for per-item loops

This commit is contained in:
Gmer4Lfe
2026-06-14 12:40:15 -04:00
parent 4c37ab16fd
commit 3964f6fb46
1010 changed files with 377767 additions and 132 deletions
@@ -0,0 +1,8 @@
# Memory Index
- [Workspace](workspace.md) — primary workspace is /root; plugin lives at /boot/config/plugins/varaverk
- [Feedback: Commits](feedback_commits.md) — no Co-Authored-By unless explicitly asked
- [Feedback: Dev vs Prod](feedback_dev_vs_prod.md) — only ever work in /boot/config/plugins/varaverk; dev folder is stale, ignore it
- [Project: Varaverk](project_varaverk.md) — self-healing two-server Unraid home media ecosystem
- [User Profile](user_profile.md) — user context and preferences
- [Idea: Watchdog Health URLs](project_watchdog_health_urls.md) — add HTTP health checks for NPM/Authelia/Lldap; NPM admin port is 7818
@@ -0,0 +1,13 @@
---
name: feedback_commits
description: Never add Co-Authored-By to commits unless user explicitly asks
metadata:
node_type: memory
type: feedback
originSessionId: ffec43cd-13e3-4911-878f-40459f7d16a9
---
Do not add "Co-Authored-By: Claude..." to commit messages.
**Why:** User preference — they didn't ask for it.
**How to apply:** Write plain commit messages with no co-author trailer unless the user explicitly says to include it.
@@ -0,0 +1,14 @@
---
name: feedback_dev_vs_prod
description: "Only ever work in /boot/config/plugins/varaverk; dev folder is stale, ignore it"
metadata:
node_type: memory
type: feedback
originSessionId: ffec43cd-13e3-4911-878f-40459f7d16a9
---
Always work exclusively in `/boot/config/plugins/varaverk` (the workspace). Never touch `/mnt/user/Important Shit/Git/Development/Varaverk` — that is a stale dev folder.
**Why:** User spent a week dealing with confusion between dev folder, installed dir, and workspace all drifting out of sync. This caused significant lost work and frustration. The `.plg` now symlinks the installed location directly to the workspace, so there is only one copy.
**How to apply:** If asked to edit any Varaverk file, always use the path under `/boot/config/plugins/varaverk/`. If the dev folder ever comes up, flag that it is stale and should be ignored.
@@ -0,0 +1,60 @@
---
name: project_varaverk
description: Varaverk — self-healing mutually-redundant two-server Unraid home media ecosystem
metadata:
node_type: memory
type: project
originSessionId: ffec43cd-13e3-4911-878f-40459f7d16a9
---
**Varaverk** is a complete self-healing, self-maintaining, mutually-redundant two-server home server ecosystem. One codebase runs on both servers. No primary/standby — both servers run independently and cover each other when one goes down.
## The Two Servers
**HOST1 — unRAID-Gmer4Lfe**
- Hardware: Threadripper 1950X, 128GB RAM, ZFS cache pools
- Location: Primary site
- Domain: Gmer4Lfe.com
- Runs: Arrs (Movies, TV, Music), Auth stack (source of truth), Emby (primary)
**HOST2 — unRAID-Jayred365**
- Hardware: Intel i5 10th gen, 64GB RAM
- Location: Remote — different building, different power utility
- Domain: Gmer4Lfe.us
## Architecture
- Platform adapter layer (Plugin/unraid/adapter.sh) isolates OS-specific calls — scripts never branch on OS
- Self-healing, not enterprise HA — goal is minimal media stack disruption
- Tailscale for mesh networking between hosts
## Session State — 2026-06-13
**What was done this session:**
- New Claude Code install after a reinstall. Old data was at /boot/config/claude and /boot/config/claude-bin.
- Memory files restored from old install into current install.
- claude_startup.sh run manually — created claude-data and claude-bin dirs under /boot/config/plugins/varaverk/, migrated all data, symlinks confirmed working.
- Verified Varaverk is fully running from /boot — nothing in appdata. varaverk.cfg SCRIPTS_DIR, DATA_DIR, STATE_DIR, all point to /boot/config/plugins/varaverk.
- No code changes made — session was setup/verification only.
**Stale note in .plg:** The ###2026.05.31 CHANGES entry says "Scripts are git-cloned to appdata on first install" — this is wrong, the actual code clones to /boot/config/plugins/varaverk. Worth fixing on next package build.
**Flash wear note:** /boot is on USB flash (flash/boot). HOST1_STORAGE_MODE_INTERNAL=true was designed for NVMe/SSD boot. Git writes, logs, and claude data all land on flash — acceptable for now but worth migrating boot to NVMe eventually.
**Plugin install flow:** Plugin installs to appdata first, then during the setup wizard the user can select "normal" or set `internal_boot=true` to pin it to /boot. This is why the .plg note about appdata isn't wrong per se — it's the staging location before the wizard runs.
## Active To-Dos (from Notes_To-Do.md)
- Fix fallback strike list timing: ~30s first, ~90s for 3-strike trigger — needs testing
- Verify silent toggle switches back on good notifications
- Rename folder Unraid_Scripts → Varaverk everywhere, update git script, all traces/scripts
- Delete old /boot/config/claude and /boot/config/claude-bin dirs (migrated, no longer needed)
## Future Design Ideas
- Shared auth stack for partner hosts to start shared services
- When owner offboards with 2+ servers: auto-promote strongest server (by compute + bandwidth)
- Overall setup script that pulls vars automatically (docker names, etc.)
- App layer as king: no more direct git — app opens/edits settings, partnership deploys to servers, pushes correct host.conf
- Web UI: on initial launch with no state file, open master.conf; lock orchs until setup complete
- First-launch guide: owner sets up master.conf → host1.conf → Tailscale shares → onboard → host2/3 install and see state file, default to mirror mode
**Why:** User is building this as a personal project on Unraid. Design philosophy favors simplicity and independence over enterprise tooling.
**How to apply:** Understand the two-server mesh model when suggesting architecture. The app layer / web UI direction is the current strategic focus — moving away from raw git/scripts toward a proper application.
@@ -0,0 +1,19 @@
---
name: project-watchdog-health-urls
description: Planned improvement — add HTTP health check URLs for auth stack containers in HOST1_WATCHDOG_CONTAINER_URLS
metadata:
node_type: memory
type: project
originSessionId: ffec43cd-13e3-4911-878f-40459f7d16a9
---
Add health check URLs for critical containers that are currently only checked via `docker ps` (alive but hung won't be caught).
**Why:** A hung-but-not-crashed NPM/Authelia fails all traffic silently with no watchdog trigger. Currently only Emby has a health URL.
**How to apply:** When user is ready, add to host1.conf:
- Define `HOST1_NPM_ADMIN_URL="http://localhost:7818"` near the NPM identity section (no existing URL var for admin panel — `HOST1_NETWORK_WATCHDOG_NPM_URL` is the external domain, different thing)
- Add to `HOST1_WATCHDOG_CONTAINER_URLS`: NPM, Authelia (9091), Authelia-Secondary (9092), Lldap-Gmer4Lfe (17170) — confirm ports before adding
- Pattern: define URL var, reference it in the array (same as HOST1_EMBY_URL pattern)
NPM admin port confirmed by user: **7818** (not 81 — that's the partnership WebUI port in HOST1_PARTNERSHIP_AUTH_WEBUIS)
@@ -0,0 +1,18 @@
---
name: user_profile
description: User profile — Unraid home server operator building Varaverk
metadata:
node_type: memory
type: user
originSessionId: ffec43cd-13e3-4911-878f-40459f7d16a9
---
Runs Unraid on two home servers (HOST1: Threadripper 1950X, HOST2: Intel i5 10th gen).
Building Varaverk — a self-healing two-server media ecosystem.
Email: gmer4lfe@gmail.com
Domain: Gmer4Lfe.com / Gmer4Lfe.us
Practical, hands-on operator. Thinks in design/architecture terms but works at the script/config level.
Deals with real-world issues: power outages, reboots, reinstalls.
**Note:** Claude Code does not persist memory across Unraid reboots unless memory files are on /boot (USB). After any reinstall, point Claude at /boot/config/plugins/varaverk to restore context.
@@ -0,0 +1,38 @@
---
name: workspace
description: Primary workspace location and important paths
metadata:
node_type: memory
type: project
originSessionId: ffec43cd-13e3-4911-878f-40459f7d16a9
---
Primary workspace: /root
Plugin source: /boot/config/plugins/varaverk (on Unraid USB — persists across reboots)
Key files:
- /boot/config/plugins/varaverk/Notes_To-Do.md — running notes and design ideas
- /boot/config/plugins/varaverk/README.md — full project documentation
- /boot/config/plugins/varaverk/Manual.md — manual
- /boot/config/plugins/varaverk/common.sh — shared library
- /boot/config/plugins/varaverk/schedule.json — scheduling config
- /boot/config/plugins/varaverk/varaverk.cron — cron config
## Claude Code Persistent Storage (as of 2026-06-13)
claude_startup.sh runs at array start and re-creates these symlinks every boot:
- /root/.claude → /boot/config/plugins/varaverk/claude-data/
- /root/.local/share/claude → /boot/config/plugins/varaverk/claude-bin/
- /root/.local/bin/claude → /boot/config/plugins/varaverk/claude-bin/versions/2.1.177
- /root/CLAUDE.md → /boot/config/plugins/varaverk/CLAUDE.md
Memory files live at: /boot/config/plugins/varaverk/claude-data/projects/-root/memory/
Old install data at /boot/config/claude and /boot/config/claude-bin has been fully migrated
into claude-data and claude-bin — those old dirs can be deleted when convenient.
HOST1_STORAGE_MODE_INTERNAL=true in host1.conf controls all of the above.
**Why:** /boot is the Unraid USB drive and survives reboots/reinstalls. /root does not persist without explicit setup.
**How to apply:** Always look at /boot/config/plugins/varaverk for the authoritative source. Notes and docs there survive power outages.