audit echo vs log across all scripts — outcomes always visible, verbose for per-item loops
This commit is contained in:
@@ -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.
|
||||
Reference in New Issue
Block a user