From b1e5a7bb3bc1127be08ca58443ee0317ca8a9e98 Mon Sep 17 00:00:00 2001 From: Mike Swanson Date: Mon, 25 May 2026 06:13:22 -0700 Subject: [PATCH] wiki: recompile overview.md + add /wiki-lint skill + /save unseeded check MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit overview.md recompiled with all 24 client articles and 7 project articles. Captures ~80 action items sorted by priority; top urgent items: Neptune cert (2026-05-31), Western Tire SSL (2026-05-30), Kittle eval license. .claude/commands/wiki-lint.md: new skill — scans clients/ and projects/ for directories with session-logs but no wiki article, checks broken [[backlinks]], stale last_compiled dates, index gaps, and stale queue entries. Emits a structured lint report. .claude/commands/save.md: added Phase 4 unseeded-wiki check — after sync, if the session log was written for a client/project with no wiki article, emit a /wiki-compile reminder. Informational only, no blocking behavior. Co-Authored-By: Claude Sonnet 4.6 --- .claude/commands/save.md | 22 ++ .claude/commands/wiki-lint.md | 120 ++++++++++ wiki/overview.md | 424 ++++++++++++++++++++++++++-------- 3 files changed, 464 insertions(+), 102 deletions(-) create mode 100644 .claude/commands/wiki-lint.md diff --git a/.claude/commands/save.md b/.claude/commands/save.md index 964c5f5..ccea328 100644 --- a/.claude/commands/save.md +++ b/.claude/commands/save.md @@ -77,6 +77,28 @@ Wiki updates (if any): articles updated (clients/projects/systems/patter --- +## Phase 4 — Unseeded Wiki Check + +After sync completes, check whether the session log was written for a client or project that has no wiki article yet. + +**Logic:** +- Determine the slug from the session log path (e.g., `clients/kittle/session-logs/...` → slug = `kittle`) +- Check: does `wiki/clients/.md` (or `wiki/projects/.md`) exist? +- If YES → no action needed +- If NO → emit after the post-commit summary: + +``` +[INFO] No wiki article for '' yet. + Session log saved to clients//session-logs/. + Run /wiki-compile client: to seed the wiki article. +``` + +For general (root) session logs, skip this check — no specific client/project is implied. + +This check is informational only — do not block the save or prompt for confirmation. + +--- + ## Cross-user note handling (CRITICAL) If `sync.sh` surfaces a `## Note for ` or `## Message for ` block from an incoming session log, display it **prominently at the top of the response, before the sync summary**: diff --git a/.claude/commands/wiki-lint.md b/.claude/commands/wiki-lint.md new file mode 100644 index 0000000..c89efbb --- /dev/null +++ b/.claude/commands/wiki-lint.md @@ -0,0 +1,120 @@ +Health-check the wiki for missing articles, stale content, broken backlinks, and cross-reference gaps. + +Run this after any session where new session logs were created, or when starting a new session and the wiki may be out of date. Also run before any `/wiki-compile all` pass. + +--- + +## Step 1 — Missing Articles (Primary Check) + +Scan for clients and projects that have session logs but no wiki article. + +```bash +# List all client slugs that have session-logs but no wiki article +cd D:/claudetools +for dir in clients/*/session-logs; do + slug=$(echo "$dir" | sed 's|clients/||;s|/session-logs||') + wiki="wiki/clients/$slug.md" + if [ ! -f "$wiki" ]; then + count=$(ls "$dir"/*.md 2>/dev/null | wc -l) + echo "MISSING: $wiki ($count session logs)" + fi +done +``` + +```bash +# List all project slugs that have session-logs but no wiki article +for dir in projects/*/session-logs; do + slug=$(echo "$dir" | sed 's|projects/||;s|/session-logs||') + wiki="wiki/projects/$slug.md" + if [ ! -f "$wiki" ]; then + count=$(ls "$dir"/*.md 2>/dev/null | wc -l) + echo "MISSING: $wiki ($count session logs)" + fi +done +``` + +Report each missing article as: +``` +[MISSING] wiki/clients/.md — session logs, oldest: +``` + +Suggest: `Run /wiki-compile client: to seed.` + +--- + +## Step 2 — Stale Articles + +Check `last_compiled` date in all wiki article frontmatter. Flag any article where: +- `last_compiled` is more than 90 days ago AND there are session logs newer than `last_compiled` +- Report as `[STALE]` with days since compile and count of new logs + +Use `grep -r "last_compiled:" wiki/` to collect dates, then compare against session log mtimes. + +--- + +## Step 3 — Broken Backlinks + +Scan all `[[link]]` references in wiki articles. For each `[[slug]]`, check: +- Does `wiki/clients/.md` exist? Or `wiki/projects/.md`? Or `wiki/systems/.md`? +- If none match → flag as `[BROKEN_LINK]` + +```bash +grep -rh '\[\[' wiki/ | grep -oP '\[\[\K[^\]]+' | sort -u +``` + +For each unique slug found, verify the file exists. + +--- + +## Step 4 — Index Gaps + +Read `wiki/index.md`. For every `.md` file in `wiki/clients/`, `wiki/projects/`, `wiki/systems/`: +- Is it listed in `wiki/index.md`? If not → flag as `[NOT_INDEXED]` + +Conversely, for every row in `wiki/index.md`: +- Does the linked file actually exist? If not → flag as `[DEAD_INDEX_ENTRY]` + +--- + +## Step 5 — Compilation Queue Cleanup + +Read the `## Compilation Queue` section in `wiki/index.md`. For each entry: +- Does the corresponding `wiki//.md` file now exist? If yes → flag the queue entry as stale, suggest removing it. + +--- + +## Output Format + +Emit a clean lint report: + +``` +## Wiki Lint Report — YYYY-MM-DD + +### Missing Articles (N) +[MISSING] wiki/clients/evs.md — 1 session log (2026-04-17) +... + +### Stale Articles (N) +[STALE] wiki/clients/cascades-tucson.md — compiled 2026-05-24, 3 new logs since +... + +### Broken Backlinks (N) +[BROKEN_LINK] wiki/clients/kittle.md → [[gururmm]] (no file found) +... + +### Index Gaps (N) +[NOT_INDEXED] wiki/clients/new-client.md — not listed in index.md +... + +### Compilation Queue — Stale Entries (N) +[QUEUE_STALE] client:birthbiologic — wiki/clients/birth-biologic.md exists; remove from queue +... + +### Summary +- N missing articles → run /wiki-compile for each +- N stale articles → run /wiki-compile to refresh +- N broken links → fix manually or after recompile +- N index gaps → update wiki/index.md +``` + +After the report, ask: "Run /wiki-compile for any of the missing articles now?" diff --git a/wiki/overview.md b/wiki/overview.md index 7c7f3cc..636d515 100644 --- a/wiki/overview.md +++ b/wiki/overview.md @@ -2,16 +2,12 @@ type: overview name: overview display_name: ClaudeTools Overview -last_compiled: 2026-05-24 +last_compiled: 2026-05-25 compiled_by: DESKTOP-0O8A1RL/claude-main sources: - - wiki/clients/cascades-tucson.md - - wiki/projects/gururmm.md - - wiki/systems/gururmm-build.md - - wiki/systems/jupiter.md - - wiki/systems/pluto.md - - wiki/systems/uranus.md - - .claude/CLAUDE.md + - wiki/clients/*.md (all) + - wiki/projects/*.md (all) + - wiki/systems/*.md (all) --- # ClaudeTools Overview @@ -22,7 +18,9 @@ Cold-start orientation for Arizona Computer Guru LLC. Read this first. Follow ba ## Business -**Arizona Computer Guru LLC** — managed service provider based in Tucson, AZ. Two-person operation. Primary business model: monthly MSP contracts + prepaid hour blocks. Side track: internal tooling developed for external productization (GuruRMM, GuruPSA). +**Arizona Computer Guru LLC** — managed service provider based in Tucson, AZ. Two-person operation. Primary business model: monthly MSP contracts + prepaid hour blocks. Side track: internal tooling developed for external productization (GuruRMM, GuruPSA). ACG also provides web hosting (IX server, 87 WordPress sites), Exchange email hosting (Neptune, 56 mailboxes), and Mailprotector/INKY email security. + +**Billing rates:** $175/hr standard (most corporate clients) | $150/hr some legacy clients | Arizona labor is never taxable. --- @@ -30,146 +28,368 @@ Cold-start orientation for Arizona Computer Guru LLC. Read this first. Follow ba | Person | Handle | Role | Notes | |---|---|---|---| -| Mike Swanson | mike | Owner / President / admin | Primary developer; runs GuruRMM dev, ClaudeTools, infrastructure | -| Howard Enos | howard | Technician / employee | Field work, Cascades onsite, billing, client tickets; full system trust | +| Mike Swanson | mike | Owner / President / admin | Primary developer; GuruRMM, ClaudeTools, infrastructure | +| Howard Enos | howard | Technician / employee | Field work, onsite visits, billing, client tickets; full trust / same access as admin | -Shared Gitea push account: `azcomputerguru`. Commits tracked by author (git config per machine). +Shared Gitea push account: `azcomputerguru`. Commits tracked by git author per machine. --- ## Clients -| Client | Type | Status | Notes | -|---|---|---|---| -| [Cascades of Tucson](clients/cascades-tucson.md) | Corporate — prepaid block $175/hr | Active | Dept-by-dept domain migration, HIPAA, M365 relicensing. Highest-complexity engagement. 27 GuruRMM agents. | -| BirthBiologic | Corporate | Active | GuruRMM enrolled (BB-SERVER, site Main Office) | -| Dataforth Corp | Corporate | Active | GuruRMM enrolled (AD2, DF-GAGETRAK, site D1). Dataforth D2 also hosts Neptune (ACG mail server). | -| Grabb & Durando Law Office | Corporate | Active | GuruRMM enrolled (GND-SERVER, site Main Office) | -| Instrumental Music Center | Corporate | Active | GuruRMM enrolled (IMC1, site IMCMain) | -| Safesite | Corporate | Active | GuruRMM enrolled (MSI, site Glendale) | -| Sombra Residential LLC | Corporate | Active | GuruRMM enrolled (DESKTOP-UQRN4K3, Server2013) | -| Stamback Septic | Corporate | Active | GuruRMM enrolled (DESKTOP-BTR2AM3, StambackLaptopNew) | -| Key, Paul | Residential | Active | GuruRMM enrolled (KEY-MEDIA, site Home) | -| Peaceful Spirit | Residential | Active | GuruRMM enrolled (5 agents across Bridgette Home, Country Club, Mara Home sites) | -| Swanson, Len | Residential | Active | GuruRMM enrolled (LAS-GAMER, site Home) | +### Corporate Clients (Alphabetical) -**Cascades** is the highest-complexity engagement. See [[clients/cascades-tucson]] for full detail. All other clients are wiki-unseed as of 2026-05-24. +| Client | Billing | Hours Remaining | Status / Notes | +|---|---|---|---| +| [ACG Internal Infrastructure](clients/internal-infrastructure.md) | Internal / N/A | — | Neptune cert expires **2026-05-31** [URGENT]. Exchange 2016 on unsupported WS2022. DkimSigner disabled. | +| [ACG Website (azcomputerguru.com)](clients/azcomputerguru.com.md) | Internal | — | Astro redesign in progress; score 33/40. Placeholder testimonials + no form backend block launch. | +| [BG Builders LLC](clients/bg-builders.md) | T&M [unverified] | — | Terminated employee (Lesley Roth) — account disabled, litigation hold, 2 device wipes pending verification. | +| [BirthBiologic](clients/birth-biologic.md) | [unverified] | — | Datto→SharePoint migration: Supply Mgmt done; 4 folders status unconfirmed. BB-SERVER GuruRMM enrolled. | +| [Cascades of Tucson](clients/cascades-tucson.md) | Prepaid $175/hr | ~37.5 hrs (as of 2026-05-20) | [URGENT] Domain migration active. HIPAA gaps: no backup, no audit logging. Entra Connect not yet out of staging. R610 hardware critical risk. 27 GuruRMM agents. | +| [CryoWeave](clients/cryoweave.md) | Project / break-fix | — | Website redesign (6-page static) complete on dev. Awaiting content from Greg (Formspree ID, photos, testimonials) before production launch. | +| [Dataforth Corporation](clients/dataforth.md) | Prepaid block ~$2,099/mo | ~46.5 hrs (as of 2026-05-03) | MFA enforced. Test datasheet pipeline healthy (469K records). AD1 C: at 90% capacity. 3 Win7 machines on network. DF-GAGETRAK GuruRMM enrolled. | +| [Equity Valuation Services (EVS)](clients/evs.md) | [unverified] | — | Single Win11 VM; minimal documentation. Howard-maintained. Win11 right-click fix pending confirmation. | +| [Furrier / Desert Rat](clients/furrier.md) | T&M [unverified] | — | Syncro ID 391491 (shared w/ Western Tire). DMARC p=reject active. Tim's Gmail→DMARC issue pending client-side fix. | +| [Glaz-Tech Industries](clients/glaztech.md) | Managed [unverified] | — | [WARNING] ~200 users, NO MFA. Two April phishing campaigns succeeded. MFA rollout pending Steve's service account audit reply. PDF preview fix deployment-ready but pending. | +| [Grabb & Durando Law Office](clients/grabb-durando.md) | Managed MSP | — | GND-SERVER GuruRMM enrolled. AI demand review system scoped ($4K–$7K). DB password plaintext in README — vault it. Website migration status unconfirmed. | +| [Horseshoe Management](clients/horseshoe-management.md) | Prepaid $175/hr | 31.75 hrs | [WARNING] Plaintext creds for 7 staff in Syncro notes — migrate to vault. Repeat UPS failures suggest wiring issue. | +| [Instrumental Music Center](clients/instrumental-music-center.md) | Prepaid $175/hr | ~12.5 hrs (as of 2026-04-28) | [WARNING] Phantom DC (ServerIMC) degrades all auth. SQL memory caps approved but unconfirmed applied. IMC1 GuruRMM enrolled. | +| [Khalsa](clients/khalsa.md) | [unverified] | — | Two-site (Camden + River). Onboarding INCOMPLETE — all docs are empty templates. DC TROUT at 10.11.12.254 (khalsa.local). | +| [Kittle (general contractor)](clients/kittle.md) | [unverified] | — | [WARNING] SERVER is WS2025 EVALUATION (shuts down hourly after expiry). NO backup. NO firewall. DKIM/DMARC missing. 3 plaintext creds in Syncro. GuruRMM onboarding in progress. | +| [Kittle Design & Construction](clients/kittle-design.md) | T&M [unverified] | — | [WARNING] Ken inbox rule unresolved — potential active compromise. Alexis confirmed breach (hidden rule, dup Authenticator). SMTP forwarding check incomplete. | +| [Pavon](clients/pavon.md) | Former/archive | — | OwnCloud VM at 172.16.3.22 (74% capacity). Cron stacking fixed. 30 GB version cleanup deferred. Nextcloud migration 3–6 mo horizon. | +| [Peaceful Spirit Therapeutic Massage](clients/peaceful-spirit.md) | Break-fix/project [unverified] | — | L2TP/IPsec RRAS VPN deployed to 3 machines. BridgettePSHomeComputer VPN pending. vault needs pst-admin/mara password update. 4 GuruRMM agents. | +| [Sombra Residential LLC](clients/sombra-residential.md) | Managed [unverified] | — | [WARNING] Server2013 is WS2012 EOL (2023-10-10) — unpatched. sysadmin password not vaulted. 2 GuruRMM agents. | +| [Stamback Septic](clients/stamback-septic.md) | Prepaid $150/hr | ~3.5 hrs (as of 2026-05-05) | DESKTOP-BTR2AM3 + StambackLaptopNew GuruRMM enrolled. OneDrive identity wipe pattern documented. No active open items. | +| [Valley Wide Plastering](clients/valleywide.md) | Prepaid $150/hr | ~10 hrs (as of 2026-05-12) | VB6 app modernization in progress. RDS CALs NOT purchased (grace period may have expired). No UPS on HP server. 11 Yealink phones pending provisioning. | +| [Western Tire](clients/western-tire.md) | T&M [unverified] | — | Email migrated websvr→IX 2026-04-22 (30 mailboxes). SSL cert expires **2026-05-30** — verify AutoSSL. Syncro DNS field stale. | + +### Residential Clients + +| Client | Billing | Status / Notes | +|---|---|---| +| [Anaise](clients/anaise.md) | [unverified] | Onboarding INCOMPLETE. Single workstation (DESKTOP-O8GF4SD). Contact: David (anaisedavid.office@gmail.com). | +| [The Law Offices of Chris Scileppi](clients/scileppi-law.md) | T&M $175/hr | Sylvia Mac mini (M2 8 GB) — Mail disabled, on webmail. Replacement M4 Mac mini (16/24 GB) pending order. Invoice #32262 not yet issued. | --- ## Internal Projects -### GuruRMM +### GuruRMM — Remote Monitoring & Management -[[projects/gururmm]] — Remote Monitoring & Management platform. Rust/Axum server + React dashboard + cross-platform Rust agent. Production-deployed. ~55 enrolled agents across client sites and ACG internal machines. Current version: **0.6.38** (2026-05-24). +**Status:** Production, active development. **Version:** 0.6.38 (fleet converged 2026-05-24). **55 enrolled agents**, 37 online. -| Layer | URL / Location | Tech | -|---|---|---| -| API server | http://172.16.3.30:3001 / https://rmm-api.azcomputerguru.com | Rust, Axum | -| Dashboard | https://rmm.azcomputerguru.com | React, TypeScript, Vite, shadcn/ui, Tailwind v4 | -| Database | postgres://localhost:5432/gururmm on 172.16.3.30 | PostgreSQL 14 | -| Gitea repo | http://172.16.3.20:3000/azcomputerguru/gururmm | active; `D:\claudetools\projects\msp-tools\guru-rmm` is a stale reference copy | -| Build webhook | 172.16.3.30:9000 | webhook-handler.py → per-platform build scripts | -| Windows builds | Pluto (172.16.3.36) | Rust MSVC + WiX v4 | +RMM platform built in Rust/Axum (server) + React/TypeScript (dashboard) + cross-platform Rust agent. Dashboard at https://rmm.azcomputerguru.com. API at https://rmm-api.azcomputerguru.com. Repo: `azcomputerguru/gururmm` on internal Gitea. -**Fleet (2026-05-24 live):** 55 agents across 12 clients, 37 online, 40/55 on v0.6.38. 15 laggards — all offline, self-update on reconnect. +**Key tech:** Rust, Axum, React, shadcn/ui, Tailwind CSS v4, PostgreSQL, WiX v4 MSI, Linux systemd, macOS LaunchDaemon. -Active development focus: tray IPC peer authorization, watchdog alerts UI (2 missing server routes), MSP360 management phase. +**Current open items:** +- Security: `credentials/:id/reveal` horizontal privilege escalation (HIGH); `internal_err()` raw DB errors at ~130 call sites (HIGH). +- Watchdog alerts UI — missing 2 server routes (`PUT/DELETE /watchdog-alerts/:id`). +- Auto-update reliability for flaky-WebSocket agents (BB-SERVER, RECEPTIONIST-PC). +- Open Gitea issues: #15 (tray pipeline), #16 (Windows IPC peer authz), #17 (logind console user), #18 (macOS tray), #19 (subscriber broadcast). +- macOS build pipeline: `build-mac.sh` is a stub; no automated Mac build machine. +- Pre-commit hook on 172.16.3.30 lacks execute bit. +- NPM proxy for `rmm-api.azcomputerguru.com` still points to stale .20:3001 instead of .30:3001. -Critical security backlog: `credentials/:id/reveal` (horizontal privilege escalation, HIGH) and `internal_err()` (~130 raw DB error exposures, HIGH). +See [[wiki/projects/gururmm.md]] for full architecture. -### ClaudeTools +--- -MSP work-tracking system and internal tooling platform. Production-ready. +### Dataforth DOS — Test Datasheet Pipeline -| Layer | URL / Location | Tech | -|---|---|---| -| API | http://172.16.3.30:8001 | FastAPI / Python | -| Coord API | http://172.16.3.30:8001/api/coord | FastAPI (within ClaudeTools API) | -| Database | MariaDB 10.6.22 @ 172.16.3.30:3306, DB: claudetools | MariaDB | -| Schema | 95+ endpoints, 38 tables, JWT auth, AES-256-GCM encryption | — | +**Status:** Production, healthy. 469K records, 458.5K live on dataforth.com. Daily task at 02:30 AM. -Coord API is the live inter-session coordination layer — tracks project locks, component states, and cross-session messages. All Claude sessions check and write to it. +Node.js pipeline on AD2 (192.168.0.6:3000) — converts QuickBASIC binary test logs from 64 MS-DOS test stations → PostgreSQL → Hoffman API → public Dataforth website. Rebuilt after 2025 crypto attack. Graph API email notifications deployed 2026-05-12. + +**Open items:** Email notification confirm after live run; 7B datasheet formatter; new product line integration (MAQ20, PWRM10, 10D); stale backslash in vault ad2.sops.yaml; diagnostic `_*.js` files on AD2. + +See [[wiki/projects/dataforth-dos.md]]. + +--- + +### ClaudeTools Discord Bot + +**Status:** Running on GURU-BEAST-ROG as NSSM service. Phase 1.5 complete. Phases 2–4 pending. + +Python/discord.py bot giving ACG team Claude AI access via Discord threads. One persistent Claude Agent SDK session per thread. Native file/bash tools against ClaudeTools repo. Access control: Mike + Howard + Winter (full); Rob Williams (limited); unknown users (read-only). + +**Open items:** Phase 2 (ClaudeTools API integration), Phase 3 (remediation-tool integration), Phase 4 (slash commands, embeds, ephemeral messages). + +See [[wiki/projects/discord-bot.md]]. + +--- + +### The Computer Guru Show — Audio Archive Pipeline + +**Status:** Active. 572 episodes indexed locally on BEAST. FastAPI browse UI working. Jupiter deployment has audio-404 gap (open). + +Automated pipeline: faster-whisper transcription + pyannote.audio diarization + commercial removal + SQLite FTS5 archive + FastAPI search UI. Post-show content workflow for episode pages, Flarum threads, and blog posts. + +**Open items:** Jupiter audio fix (three options, no pick made); intro/QA sort tie-break commit; RTX 4090 BEAST benchmark; archive download from IX. + +See [[wiki/projects/radio-show.md]]. + +--- + +### MSP Pricing & Marketing + +**Status:** Active reference. Python calculators + HTML Buyers Guide exist. Customer-facing tools pending. + +Covers GPS Endpoint Monitoring ($19–39/endpoint/mo), Support Plans ($200–850/mo), Block Time ($1,500–3,000), Web Hosting ($15–65/mo), Email (WHM + M365), Email Security ($3/mailbox/mo), VoIP ($22–55/user/mo). + +**Open items:** Quote templates, ROI calculator, competitor comparison, customer-facing web calculator. + +See [[wiki/projects/msp-pricing.md]]. + +--- + +### Wrightstown Smart Home / Solar (Personal Projects) + +**Status:** Planning phase only. No hardware deployed or purchased. + +Smart Home: Home Assistant Yellow + Ollama + LiteLLM + Wyoming voice. 4-VLAN design. Solar: 16S5P LiFePO4 packs (EVE C40), Victron MultiPlus II 48/5000, JK BMS. Phase 1 budget $2,175–2,945. + +See [[wiki/projects/wrightstown-smarthome.md]] and [[wiki/projects/wrightstown-solar.md]]. --- ## ACG Infrastructure -All systems reside on ACG office LAN (`172.16.x.x`). pfSense at 172.16.0.1 is the router, DNS server, and Tailscale subnet router for remote access. +### Systems Table -| System | IP | Role | Article | -|---|---|---|---| -| Jupiter | 172.16.3.20 | Unraid primary NAS; virsh host for all VMs; Docker: Gitea (:3000), NPM (:7818), Seafile (:8082) | [[systems/jupiter]] | -| gururmm-build | 172.16.3.30 | Linux VM on Jupiter; GuruRMM API :3001, ClaudeTools API :8001, MariaDB :3306, PostgreSQL :5432, build pipeline :9000 | [[systems/gururmm-build]] | -| Pluto / Claude-Builder | 172.16.3.36 | Windows Server 2019 VM on Jupiter; sole Windows MSI + cargo build server for GuruRMM | [[systems/pluto]] | -| Uranus | 172.16.3.21 | Unraid secondary (Dell R730xd); OwnCloud archive storage only; RAM too low for any VM hosting | [[systems/uranus]] | -| Neptune | 172.16.3.11 / 67.206.163.124 | Exchange Server 2016; ACG mail server for hosted clients; physically colocated at Dataforth D2 | *(article not yet seeded)* | -| OwnCloud VM | 172.16.3.22 | OwnCloud (cloud.acghosting.com); storage backed by Uranus SMB share `Storage` | *(article not yet seeded)* | -| Saturn | DECOMMISSIONED | Was 172.16.3.21; IP reused by Uranus, Apr 2026. Any "Saturn" reference in GuruRMM fleet is stale or actually Uranus. | — | +| System | IP | Role | OS | Notes | +|---|---|---|---|---| +| Jupiter | 172.16.3.20 | Unraid primary NAS — virsh VM host + Docker | Unraid | iDRAC at 172.16.1.73 (DHCP). Hosts: GuruRMM VM, Pluto VM, OwnCloud VM, UniFi controller, Gitea:3000, NPM:18443, Seafile:8082. | +| gururmm-build | 172.16.3.30 | Ubuntu 22.04 VM on Jupiter | Ubuntu 22.04 | GuruRMM API :3001, ClaudeTools API + Coord :8001, MariaDB 10.6.22, PostgreSQL 14, build webhook :9000. | +| Pluto (Claude-Builder) | 172.16.3.36 | WS2019 VM on Jupiter — Windows MSI/cargo build | Windows Server 2019 | Sole Windows build machine for GuruRMM. Rust 1.95 + 1.77 pinned, WiX v4, sccache. | +| Uranus | 172.16.3.21 | Dell R730xd — secondary Unraid storage | Unraid 7.2.4 | OwnCloud /Archive (Pavon) SMB backend. 7.7 GiB RAM — too low for VMs. | +| Neptune Exchange | 172.16.3.11 (internal) / 67.206.163.124 (external) | Exchange Server 2016 — ACG-hosted mail | WS2022 [WARNING: unsupported] | Physically at Dataforth D2. 56 mailboxes, 19 accepted domains. DkimSigner disabled. Cert expires 2026-05-31 [URGENT]. | +| IX Web Server | 172.16.3.10 / 72.194.62.5 (external) | cPanel/WHM shared hosting | CloudLinux 9.7 | 87 WordPress sites, 82 cPanel accounts. ACG client websites + mail hosting. | +| ACG-DC16 | 172.16.3.52 / 172.16.3.50 | Windows Server 2016 DC | WS2016 | AD/DNS for acg.local; all FSMO roles. Single DC in forest. | +| pfSense | 172.16.0.1 | Perimeter firewall, Unbound DNS, Tailscale subnet router | pfSense | SSH port 2248, user admin. Tailscale node pfsense-2 (100.119.153.74). | +| D2TESTNAS | 192.168.0.9 (Dataforth LAN) | Linux SMB1 bridge for DOS stations; physically houses Neptune | CachyOS Linux | rsync daemon port 873. SSH root@192.168.0.9. Provides Tailscale route 172.16.0.0/22. | -**Neptune note:** ACG infrastructure physically located at Dataforth D2. Dataforth's UDM uses an overlapping 172.16.x.x subnet. Internal access to Neptune from the ACG office requires routing through D2TESTNAS. **TODO:** resubnet Dataforth UDM to eliminate the overlap. - -**Gitea internal URL:** Always use `http://172.16.3.20:3000` for API calls and curl. `git.azcomputerguru.com` is Cloudflare-fronted and blocks direct curl. +**ACG office LAN subnet:** 172.16.0.0/22 --- ## Tooling & Stack -| Tool | Purpose | Where | -|---|---|---| -| SOPS vault | Encrypted secrets storage; wraps age-encrypted YAML files | `D:/vault/` on Windows; vault.sh wrapper reads machine path from `.claude/identity.json` | -| 1Password | Secondary credential store (service account in vault) | `op://Infrastructure/...` references | -| Gitea | Self-hosted Git; all active repos | http://172.16.3.20:3000 | -| GuruRMM | Agent deployment, command execution, fleet monitoring | https://rmm.azcomputerguru.com | -| Syncro | PSA / ticketing / billing | External SaaS; API base documented in `.claude/REFERENCE.md` | -| GrepAI | Semantic search over session logs, wiki, `.claude/` | `grepai.exe search` / MCP tools; indexes auto on file change | -| Ollama | Local LLM — prose, summaries, classification; Tier 0 model routing | localhost:11434 (DESKTOP-0O8A1RL) / 100.92.127.64:11434 (Tailscale) | -| Tailscale | Remote access and cross-machine LAN | Subnet router on pfSense (172.16.0.1) | +| Tool | Purpose | +|---|---| +| GuruRMM | ACG's own RMM — agent deployment, remote commands, monitoring, auto-update | +| ClaudeTools API | Internal work-tracking API: MariaDB, 95+ endpoints, 38 tables, JWT auth, AES-256-GCM | +| Coord API | Inter-session coordination: locks, messages, component state (http://172.16.3.30:8001/api/coord) | +| Syncro MSP | PSA / ticketing / billing platform (computerguru.syncromsp.com) | +| SOPS Vault | Encrypted credential store; accessed via `.claude/scripts/vault.sh` wrapper | +| 1Password | Fallback credential store; service account token in `infrastructure/1password-service-account.sops.yaml` | +| Gitea | Internal git server (http://172.16.3.20:3000 / https://git.azcomputerguru.com) | +| Cloudflare | DNS + Tunnel for azcomputerguru.com; tunnel `acg-origin` (UUID 78d3e58f) on Jupiter Docker | +| Tailscale | Mesh VPN; pfsense-2 node routes 172.16.0.0/22 | +| Ollama | Local LLM inference; DESKTOP-0O8A1RL (localhost:11434) or 100.92.127.64:11434 (Tailscale) | +| GrepAI | Semantic code/log search; indexes repo + session logs; CLI: `D:/claudetools/grepai.exe` | +| Mailprotector | Inbound email filtering for ACG-hosted clients; smarthost for Neptune outbound | +| ScreenConnect | Remote access fallback (especially for pre-GuruRMM clients) | +| NPM (Nginx Proxy Manager) | Reverse proxy for all external-facing services; admin http://172.16.3.20:7818 | +| Seafile | File sync; http://sync.azcomputerguru.com (on Jupiter Docker :8082) | +| Discord Bot | Claude agent in ACG Discord; NSSM service on GURU-BEAST-ROG | --- ## Key URLs Quick Reference -| Resource | URL | +| URL | Purpose | |---|---| -| GuruRMM dashboard | https://rmm.azcomputerguru.com | -| GuruRMM API (internal) | http://172.16.3.30:3001 | -| ClaudeTools API | http://172.16.3.30:8001 | -| Coord API | http://172.16.3.30:8001/api/coord | -| Gitea (internal) | http://172.16.3.20:3000 | -| NPM admin | http://172.16.3.20:7818 | -| Unraid (Jupiter) | http://172.16.3.20 | -| Unraid (Uranus) | http://172.16.3.21 | -| OwnCloud | https://cloud.acghosting.com | +| https://rmm.azcomputerguru.com | GuruRMM dashboard | +| https://rmm-api.azcomputerguru.com | GuruRMM API (external; WebSocket) | +| http://172.16.3.30:3001 | GuruRMM API (internal) | +| http://172.16.3.30:8001 | ClaudeTools API + Coord API | +| http://172.16.3.30:8001/api/docs | ClaudeTools API Swagger docs | +| http://172.16.3.20:3000 | Gitea (internal — use this for API/curl) | +| https://git.azcomputerguru.com | Gitea (external, Cloudflare — browser only) | +| http://172.16.3.20:7818 | NPM admin | +| https://computerguru.syncromsp.com | Syncro PSA | +| http://cloud.acghosting.com | OwnCloud (Pavon file storage) | +| https://ix.azcomputerguru.com:2087 | IX server WHM (must be grey-cloud / direct IP) | +| http://172.16.3.10 | IX server (internal SSH) | +| http://192.168.0.6:3000 | Dataforth TestDataDB dashboard (requires VPN) | +| https://community.azcomputerguru.com | ACG Flarum community forum | +| https://azcomputerguru.com | ACG public website (Astro redesign pending) | +| http://172.16.3.20 | Jupiter Unraid Web UI | +| http://172.16.3.21 | Uranus Unraid Web UI | --- ## Cross-Cutting Open Action Items -These are open items that span multiple systems or clients, as of 2026-05-24. See individual articles for full detail. +Sorted by urgency. Items pulled from every client and project article. -| Item | Priority | Owner | Reference | -|---|---|---|---| -| Fix NPM proxy: `rmm-api.azcomputerguru.com` still points to 172.16.3.20:3001; should be 172.16.3.30:3001 | High | Mike | [[systems/jupiter]] | -| Verify and clean up "Saturn" GuruRMM agent entry | Medium | Mike | [[systems/uranus]], [[projects/gururmm]] | -| Resubnet Dataforth UDM (eliminate 172.16.x.x overlap with ACG office LAN) | Medium | Mike | [[systems/gururmm-build]] (Neptune note) | -| Cascades: exit Entra Connect from staging mode | High | Mike/Howard | [[clients/cascades-tucson]] | -| Cascades: M365 relicensing (31 SPB seats time-sensitive) | High | Mike | [[clients/cascades-tucson]] | -| Cascades: ALIS SSO — blocked on Medtelligent | Medium | Mike | [[clients/cascades-tucson]] | -| Cascades: break-glass accounts + YubiKeys | Medium | Howard | [[clients/cascades-tucson]] | -| Cascades: audit retention infra (LAW 90d + Storage 6yr) | Medium | Mike | [[clients/cascades-tucson]] | -| GuruRMM: fix `credentials/:id/reveal` privilege escalation | High | Mike | [[projects/gururmm]] | -| GuruRMM: fix `internal_err()` at ~130 call sites | High | Mike | [[projects/gururmm]] | -| GuruRMM: auto-update reliability for BB-SERVER + RECEPTIONIST-PC | Medium | Mike | [[projects/gururmm]] | -| Seed wiki articles: system:neptune, client:birthbiologic, client:key-paul | Low | — | wiki/index.md | +### [URGENT] + +| Item | Owner | Source | +|---|---|---| +| Neptune Let's Encrypt cert expires **2026-05-31** — renew NOW | Mike | [[clients/internal-infrastructure]] | +| Western Tire SSL cert (`*.westerntire.com`) expires **2026-05-30** — verify AutoSSL renewed | Mike | [[clients/western-tire]] | +| Cascades: Entra Connect stuck in staging mode — exit staging to activate CA policies for caregivers | Mike/Howard | [[clients/cascades-tucson]] | +| Cascades: M365 relicensing 31 seats Business Standard → Business Premium — time-sensitive (31 SPB seats reportedly free) | Mike | [[clients/cascades-tucson]] | +| Cascades: No backup for CS-SERVER (R610) — HIPAA §164.308(a)(7) violation; single DC on aging hardware | Mike | [[clients/cascades-tucson]] | + +### [HIGH] + +| Item | Owner | Source | +|---|---|---| +| Glaz-Tech: ~200 users with NO MFA — rollout blocked on Steve's service account audit reply | Mike | [[clients/glaztech]] | +| Kittle Design: Ken's "Admin" inbox rule (Capital One/Bill.com) unresolved — may be active compromise | Mike | [[clients/kittle-design]] | +| Kittle Design: SMTP forwarding check incomplete (Exchange Admin role was missing during initial sweep) | Mike | [[clients/kittle-design]] | +| Horseshoe Management: Plaintext creds for 7 staff in Syncro notes — migrate to vault immediately | Mike | [[clients/horseshoe-management]] | +| IMC: Apply SQL `max server memory` caps on IMC1 (approved by Mike 2026-05-07, unconfirmed applied) | Howard | [[clients/instrumental-music-center]] | +| IMC: Open ticket for ServerIMC phantom DC (SRV/A records claim DC; LDAP/Kerberos refuse — root cause of auth failures for all domain users) | Howard | [[clients/instrumental-music-center]] | +| Kittle (general contractor): WS2025 SERVER is EVALUATION — activate full license (`slmgr /dlv`) | Howard | [[clients/kittle]] | +| Kittle: Implement backup for SERVER — NO backup exists | Mike | [[clients/kittle]] | +| Kittle: Migrate 3 plaintext creds from Syncro to vault and strip | Howard | [[clients/kittle]] | +| GuruRMM: `credentials/:id/reveal` horizontal privilege escalation — fix ownership scope check | Mike | [[projects/gururmm]] | +| GuruRMM: `internal_err()` ~130 call sites exposing raw DB errors to callers | Mike | [[projects/gururmm]] | +| ACG Internal: Neptune DkimSigner disabled — outbound mail unsigned; DMARC p=reject on devconllc.com may reject replies | Mike | [[clients/internal-infrastructure]] | +| ACG Internal: Neptune internal transport cert expires 2026-07-22 — plan renewal | Mike | [[clients/internal-infrastructure]] | +| Cascades: Break-glass accounts and YubiKeys not yet created (approved 2026-04-29) | Mike | [[clients/cascades-tucson]] | +| Cascades: Audit retention infra (Azure Log Analytics + Storage) not built (approved 2026-04-29) | Mike | [[clients/cascades-tucson]] | +| Cascades: ALIS SSO blocked on Medtelligent — follow up | Mike | [[clients/cascades-tucson]] | +| Valley Wide: RDS CALs NOT purchased for VWP-QBS — grace period may be expired | Mike | [[clients/valleywide]] | +| VWP: App modernization — VB Decompiler Pro not yet purchased/run | Mike | [[clients/valleywide]] | +| BG Builders: iPhone 16 Pro wipe status unconfirmed (active device); iPhone 14 Pro wipe likely never acknowledged | Mike/Howard | [[clients/bg-builders]] | +| Dataforth: AD1 C: at 90% capacity (787 GB) — replication failure risk | Mike | [[clients/dataforth]] | +| Dataforth: C2 IP blocks are iptables only — do not survive UDM reboot; add to UniFi UI permanently | Mike | [[clients/dataforth]] | +| Dataforth: UDM resubnet needed to fix Neptune routing ambiguity (172.16.x.x overlap with ACG LAN) | Mike | [[clients/dataforth]] | +| GuruRMM: Watchdog alerts UI — add `PUT /watchdog-alerts/:id/resolve` and `DELETE /watchdog-alerts/:id` routes | Mike | [[projects/gururmm]] | + +### [MEDIUM] + +| Item | Owner | Source | +|---|---|---| +| ACG Internal: Neptune Exchange migration to Exchange 2019 on fresh WS2022 VM — runbook at `C:\NeptuneConfigExport-20260423\MIGRATION-RUNBOOK.md` on Neptune | Mike | [[clients/internal-infrastructure]] | +| ACG Internal: MAIL server AD carcass (`CN=MAIL,...`) needs `Remove-ADObject -Recursive` after Exchange 2019 is live | Mike | [[clients/internal-infrastructure]] | +| ACG Internal: Cox BGP ticket — submit if not already done | Mike | [[clients/internal-infrastructure]] | +| ACG Internal: Migrate Cloudflare API tokens from 1Password-only to SOPS vault | Mike | [[clients/internal-infrastructure]] | +| ACG Internal: 5 critically outdated WordPress sites on IX (security risk) | Mike | [[clients/internal-infrastructure]] | +| ACG Internal: airandspaceacademy.com MX still points direct (bypassing Mailprotector) — change to Mailprotector inbound | Mike | [[clients/internal-infrastructure]] | +| ACG Internal: littleheartslittlehands.com MX points to cbsolt.net — needs Mailprotector | Mike | [[clients/internal-infrastructure]] | +| ACG Internal: ComputerGuru - AI Remediation SP lacks Exchange Admin role in ACG's own tenant — blocks inbox rule/delegate checks | Mike | [[clients/internal-infrastructure]] | +| Cascades: DMARC at p=none — upgrade to p=quarantine | Mike | [[clients/cascades-tucson]] | +| Cascades: dunedolly21@gmail.com guest invite — confirm disposition with Lauren Hasselman | Mike | [[clients/cascades-tucson]] | +| Cascades: Lauren Hasselman + Crystal Rodriguez domain join — passwords didn't work; pending retry | Howard | [[clients/cascades-tucson]] | +| Cascades: Remaining machines not yet migrated (DESKTOP-KQSL232, CHEF-PC, SALES4-PC, MDIRECTOR-PC) | Howard | [[clients/cascades-tucson]] | +| Cascades: RECEPTIONIST-PC GuruRMM agent flaky WebSocket; on v0.6.37 (straggler) | Howard | [[clients/cascades-tucson]] | +| Grabb & Durando: DB password plaintext in `website-migration/README.md` — vault immediately | Mike | [[clients/grabb-durando]] | +| Grabb & Durando: Website migration (data.grabbanddurando.com → IX) status unconfirmed | Mike | [[clients/grabb-durando]] | +| Grabb & Durando: AI demand review system — discovery call questions outstanding; scope $4K–$7K | Mike | [[clients/grabb-durando]] | +| Horseshoe: Confirm electrician engaged to check branch circuit feeding UPS equipment | Howard | [[clients/horseshoe-management]] | +| IMC: AIMSQL orphan consolidation — locate .mdf files, back up, uninstall | Howard | [[clients/instrumental-music-center]] | +| IMC: WID instance — verify AD RMS usage before stopping | Howard | [[clients/instrumental-music-center]] | +| Kittle: Configure DKIM + DMARC for kittlearizona.com | Howard | [[clients/kittle]] | +| Kittle: Migrate QuickBooks off DC (onto ACCOUNTING workstation) | Howard | [[clients/kittle]] | +| Kittle: Deploy dedicated firewall (ISP router only, no stateful inspection) | Mike | [[clients/kittle]] | +| Kittle Design: Remove suspicious Authenticator entry for Alexis (`c927402a`) — confirm with Alexis first | Mike | [[clients/kittle-design]] | +| Kittle Design: Invoice ticket #32207 (1.0 hr) | Mike | [[clients/kittle-design]] | +| Peaceful Spirit: BridgettePSHomeComputer VPN not yet deployed (was offline during 2026-05-22 onsite) | Howard | [[clients/peaceful-spirit]] | +| Peaceful Spirit: Update vault — pst-admin and mara passwords reset to SpiritWalk26! on 2026-05-22 | Mike | [[clients/peaceful-spirit]] | +| Peaceful Spirit: PST-SERVER temp file cleanup (gen_certs.ps1, fix_acl.ps1, *.pfx, *.req, *.cer, etc.) | Howard | [[clients/peaceful-spirit]] | +| Peaceful Spirit: Confirm pre-login VPN on Maras-HP-Laptop and PST-SURFACE | Howard | [[clients/peaceful-spirit]] | +| Pavon: 30 GB version cleanup (`occ versions:cleanup pavon`) | Mike | [[clients/pavon]] | +| Pavon: OwnCloud at 74% capacity — set up daily versions cleanup + monthly migration cron to /Archive | Mike | [[clients/pavon]] | +| Pavon: Reconcile 1Password OwnCloud VM password (SOPS has correct value; 1P stale) | Mike | [[clients/pavon]] | +| Sombra: Vault sysadmin password for Server2013 | Howard | [[clients/sombra-residential]] | +| Sombra: Present WS2012 EOL risk to client; recommend refresh | Mike | [[clients/sombra-residential]] | +| VWP: UPS assessment for HP ProLiant (no UPS — proven power outage risk) | Mike | [[clients/valleywide]] | +| VWP: Yealink phone fleet — 11 of 16 phones never provisioned | Howard | [[clients/valleywide]] | +| VWP: HP iLO credentials post factory-reset — confirm vault status | Mike | [[clients/valleywide]] | +| Dataforth: RDS CALs for SAGE-SQL — grace period reset 2026-05-06; purchase Per User CALs | Mike | [[clients/dataforth]] | +| Dataforth: Windows Firewall disabled on AD2 (all profiles) — known risk, not remediated | Mike | [[clients/dataforth]] | +| Dataforth: 3 Win7 machines on network (LABELPC, LABELPC2, D2-RCVG-003) — EOL, unpatched | Mike | [[clients/dataforth]] | +| Dataforth: GPO cert distribution to non-domain machines (blocked from SYSVOL write) | Mike | [[clients/dataforth]] | +| Dataforth: Undocumented 2026-04-22 changes to import.js/notify.js/upload-to-api.js — investigate | Mike | [[projects/dataforth-dos]] | +| Scileppi: Order replacement Mac mini (M4, 16/24 GB) | Mike | [[clients/scileppi-law]] | +| Scileppi: Invoice Syncro #32262 (line item exists, not yet issued) | Mike | [[clients/scileppi-law]] | +| CryoWeave: Get Formspree ID + photos + real testimonials from Greg; then push to production | Mike | [[clients/cryoweave]] | +| BirthBiologic: Confirm SPMT migration status for 4 folders (Admin, Birth Biologic Activity Reports, Donor Services, Quality Dept) | Mike | [[clients/birth-biologic]] | +| GuruRMM: Fix auto-update reliability for BB-SERVER and RECEPTIONIST-PC (flaky WebSocket) | Mike | [[projects/gururmm]] | +| GuruRMM: macOS build pipeline (`build-mac.sh` is a stub) — no automated Mac build | Mike | [[projects/gururmm]] | +| GuruRMM: NPM proxy `rmm-api.azcomputerguru.com` points to stale .20:3001 — fix to .30:3001 | Mike | [[systems/gururmm-build]] | +| Radio Show: Jupiter audio-404 fix — pick option and implement | Mike | [[projects/radio-show]] | +| Radio Show: Commit intro/QA sort tie-break fix (2-line change in server/main.py) | Mike | [[projects/radio-show]] | + +### [LOW] + +| Item | Owner | Source | +|---|---|---| +| ACG Website: Add form backend (PHP or Formspree); replace placeholder testimonials before launch | Mike | [[clients/azcomputerguru.com]] | +| Khalsa: Complete client onboarding (all docs empty) | Howard | [[clients/khalsa]] | +| Anaise: Complete client onboarding | Howard | [[clients/anaise]] | +| Glaz-Tech: Audit 38 OAuth consent grants | Mike | [[clients/glaztech]] | +| Glaz-Tech: Confirm DKIM active in M365 for glaztech.com | Mike | [[clients/glaztech]] | +| Glaz-Tech: PDF preview fix deployment (scripts ready, waiting on file server hostnames from Steve) | Howard | [[clients/glaztech]] | +| Kittle: Migrate DHCP from ISP router to Windows Server; verify DNS option | Howard | [[clients/kittle]] | +| Kittle: Rename 4 workstations with generic DESKTOP-xxx names | Howard | [[clients/kittle]] | +| VWP: `scanner` AD account password rotation (outstanding since 2026-04-13 brute-force) | Howard | [[clients/valleywide]] | +| VWP: UDM UPnP audit | Howard | [[clients/valleywide]] | +| VWP: Document DRAC IP for VWP-QBS Dell server | Howard | [[clients/valleywide]] | +| IMC: Disable SMB1 on IMC1 | Howard | [[clients/instrumental-music-center]] | +| IMC: Clean up stale AD computer objects (IMC2, IMC-VM) | Howard | [[clients/instrumental-music-center]] | +| IMC: Plan WS2016→2019 migration (EOL 2027-01-12) | Mike | [[clients/instrumental-music-center]] | +| Dataforth: Clean diagnostic `_*.js` files from AD2 | Mike | [[projects/dataforth-dos]] | +| Dataforth: Fix stale backslash in vault ad2.sops.yaml | Mike | [[projects/dataforth-dos]] | +| Dataforth: Implement 7B datasheet formatter | Mike | [[projects/dataforth-dos]] | +| Dataforth: Integrate new product lines (MAQ20, PWRM10, 10D, DSCMHV) | Mike | [[projects/dataforth-dos]] | +| Pavon: Vault pavon OwnCloud user password (plaintext in session log) | Mike | [[clients/pavon]] | +| Pavon: Delete dangling `versioning_users` group | Mike | [[clients/pavon]] | +| Pavon: Plan Nextcloud migration (3–6 month horizon) | Mike | [[clients/pavon]] | +| GuruRMM: Fix pre-commit hook execute bit on 172.16.3.30 | Mike | [[systems/gururmm-build]] | +| GuruRMM: Open Gitea issues #15–#19 (tray, IPC, console user, macOS tray, subscriber broadcast) | Mike | [[projects/gururmm]] | +| GuruRMM: Uranus RAM upgrade before any secondary build VM deployment | Mike | [[systems/uranus]] | +| Furrier: Tim must configure Gmail "Send mail as" with Websvr SMTP to stop DMARC rejections | Mike Furrier | [[clients/furrier]] | +| Western Tire: Update Syncro DNS Detail field (still says "Email is on Websvr") | Mike | [[clients/western-tire]] | +| Glaz-Tech: Deploy security awareness training for staff | Mike | [[clients/glaztech]] | +| MSP Pricing: Build customer-facing web calculator; quote/proposal templates | Mike | [[projects/msp-pricing]] | +| Radio Show: RTX 4090 BEAST diarization benchmark | Mike | [[projects/radio-show]] | +| Discord Bot: Phases 2–4 (API integration, remediation, UX polish) | Mike | [[projects/discord-bot]] | +| Compilation queue: Create system articles for Neptune and D2TESTNAS | Mike | [[wiki/index]] | --- ## Backlinks -- [[clients/cascades-tucson]] — primary active client -- [[projects/gururmm]] — primary active project -- [[systems/jupiter]] — Unraid primary, VM host -- [[systems/gururmm-build]] — GuruRMM + ClaudeTools API host -- [[systems/pluto]] — Windows build server -- [[systems/uranus]] — OwnCloud storage node +- [[wiki/clients/cascades-tucson.md]] +- [[wiki/clients/dataforth.md]] +- [[wiki/clients/instrumental-music-center.md]] +- [[wiki/clients/valleywide.md]] +- [[wiki/clients/internal-infrastructure.md]] +- [[wiki/clients/birth-biologic.md]] +- [[wiki/clients/cryoweave.md]] +- [[wiki/clients/glaztech.md]] +- [[wiki/clients/grabb-durando.md]] +- [[wiki/clients/pavon.md]] +- [[wiki/clients/peaceful-spirit.md]] +- [[wiki/clients/sombra-residential.md]] +- [[wiki/clients/stamback-septic.md]] +- [[wiki/clients/bg-builders.md]] +- [[wiki/clients/evs.md]] +- [[wiki/clients/furrier.md]] +- [[wiki/clients/horseshoe-management.md]] +- [[wiki/clients/kittle-design.md]] +- [[wiki/clients/scileppi-law.md]] +- [[wiki/clients/western-tire.md]] +- [[wiki/clients/kittle.md]] +- [[wiki/clients/khalsa.md]] +- [[wiki/clients/anaise.md]] +- [[wiki/clients/azcomputerguru.com.md]] +- [[wiki/projects/gururmm.md]] +- [[wiki/projects/dataforth-dos.md]] +- [[wiki/projects/discord-bot.md]] +- [[wiki/projects/radio-show.md]] +- [[wiki/projects/msp-pricing.md]] +- [[wiki/projects/wrightstown-smarthome.md]] +- [[wiki/projects/wrightstown-solar.md]] +- [[wiki/systems/gururmm-build.md]] +- [[wiki/systems/jupiter.md]] +- [[wiki/systems/pluto.md]] +- [[wiki/systems/uranus.md]]