Files
claudetools/wiki/systems/ix-server.md
Mike Swanson f98b111193 docs(wiki): full IX server inventory from live SSH
Expand wiki/systems/ix-server.md with a 2026-06-05 live SSH inventory:
- Host: CloudLinux 9.7, cPanel/WHM 134, 64-core Xeon Gold 6130, 62 GiB,
  4.4 T /home; Apache 2.4.67, MariaDB 10.11.16, ea-php 5.6-8.5,
  Exim 4.99.4, Dovecot 2.4.2, BIND 9.16.
- 72 cPanel accounts / 185 domains / 101 WordPress; full account ->
  primary-domain -> disk map (the "where does client X live" reference).
- ACG subdomain docroots (radio, community/Flarum, analytics/Matomo,
  portal, support, etc.) under the azcomputerguru account.
- GuruRMM agent enrolled (gururmm-agent.service).
- Backups appear unconfigured (/backup ~178M vs 1.6T /home) - flagged.
- SSH key auth from GURU-5070 now works; updated reference_ix_server_access
  memory (was stale: claimed key auth not set up) + index summary.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 17:58:10 -07:00

11 KiB
Raw Blame History

type, name, display_name, last_compiled, compiled_by, sources
type name display_name last_compiled compiled_by sources
system ix-server IX Web Hosting Server 2026-06-05 GURU-5070/claude-main
live SSH inventory 2026-06-05 (root@172.16.3.10, key auth from GURU-5070)
.claude/memory/reference_radio_website.md
.claude/memory/reference_ix_server_access.md
wiki/clients/internal-infrastructure.md
projects/radio-show/website/ (source tree)

IX Web Hosting Server

ix.azcomputerguru.com — Arizona Computer Guru's cPanel/WHM shared-hosting box. It hosts ACG's own static sites (incl. radio.azcomputerguru.com), the Flarum community forum, Matomo analytics, and ~72 client cPanel accounts (185 domains, 101 WordPress installs).

Operational history (account cleanups, WordPress hygiene, mail routing, the Cox→Cloudflare BGP workaround) lives in wiki/clients/internal-infrastructure.md. This article is the systems-level inventory — what the box is, what runs on it, and where each hosted thing lives. Last verified by live SSH 2026-06-05.

Host facts

Item Value
Hostname ix.azcomputerguru.com
Internal IP 172.16.3.10 (also 172.16.1.39); Tailscale or office LAN required
External IP 72.194.62.5 (SSH :22 firewalled from WAN — internal only)
OS CloudLinux 9.7 (Pavel Popovich), kernel 5.14.0 ...tuxcare.els (TuxCare ELS)
CPU / RAM 64× Intel Xeon Gold 6130 @ 2.10 GHz / 62 GiB
Disk / 70 G (xfs, 50% used); /home 4.4 T (xfs, 1.6 T used, 35%); /boot + EFI on sdb
Control panel cPanel/WHM 134.0 (build 35)
Web Apache 2.4.67 (cPanel EA4)
DB MariaDB 10.11.16 (per-account MySQL)
PHP ea-php 5.6 → 8.5 installed; default CLI 8.1.34
Mail Exim 4.99.4, Dovecot 2.4.2
DNS BIND 9.16 (104 local zones)
WHM / cPanel UI https://ix.azcomputerguru.com:2087 (WHM) · :2083 (cPanel) · :2096 (webmail) — must stay grey-cloud / DNS-only in Cloudflare (non-standard ports can't traverse the tunnel)

Access

From How
GURU-5070 ssh root@172.16.3.10SSH key auth works (verified 2026-06-05). System OpenSSH, internal IP, Tailscale up.
Scripts to gurushow paths paramiko look_for_keys=False, allow_agent=False (account-level key auth disabled)
Password fallback Vault infrastructure/ix-server.sops.yaml (root password)
WHM API whmapi1 <fn> over SSH (e.g. whmapi1 listaccts)
RMM gururmm-agent.service is enrolled and running — drive via /rmm when SSH isn't handy

Edge / routing

Cloudflare tunnel acg-origin (UUID 78d3e58f-1979-4f0e-a28b-98d6b3c3d867, cloudflared container on Jupiter) fronts the ACG hostnames → IX :443. ix.azcomputerguru.com itself is grey-cloud (direct to 72.194.62.5) so WHM/cPanel ports route. This tunnel is the workaround for the Cox BGP→Cloudflare routing break (see internal-infrastructure.md).

GuruRMM agent

  • Service: gururmm-agent.service (active/running), binary /usr/local/bin/gururmm-agent
  • Config: /etc/gururmm/agent.toml (root-only, 0600)
  • Means IX is reachable through the GuruRMM fleet as well as SSH.

Backups — gap to watch

/backup exists but is only ~178 M against a 1.6 T /home, and no WHM remote backup-transport destinations are configured. cPanel account backups do not appear to be comprehensively enabled/offloaded. [WARNING] Treat IX as not currently backed up until verified — flag before any risky account/site work.


ACG-owned sites on IX

The azcomputerguru cPanel account (/home/azcomputerguru/public_html/) hosts ACG's own sites as subdirectories. gurushow and acg are separate accounts.

Hostname Stack Document root
radio.azcomputerguru.com Astro static + React 19 islands .../public_html/radio
azcomputerguru.com Astro static (public site) .../public_html
community.azcomputerguru.com Flarum forum .../public_html/community/public
analytics.azcomputerguru.com Matomo .../public_html/analytics
portal / clientportal / clients / support / express / rdb / logos / adlice / khalsaportal .azcomputerguru.com misc apps/portals .../public_html/<name>
phoenixmanagedservices.com (+ subdomain) site .../public_html/phoenixmanagedservices.com
gurushow.com radio show brand site account gurushow/home/gurushow/public_html
(radio audio archive) static MP3 archive account gurushow/home/gurushow/public_html/archive/Radio/
acghosting.com hosting brand account acg

(*.cprapid.com auto-domains are cPanel temporary URLs — ignore.)

radio.azcomputerguru.com — "The Computer Guru Show" website

Public site for the radio show. Built by Claude; source in the ClaudeTools repo (projects/radio-show/website/) — the server holds only the built dist/. Live build confirmed 2026-06-05 (<html data-theme="dark">, dark-mode via localStorage; last deploy ~Mar 2026).

Item Value
URL https://radio.azcomputerguru.com
Source projects/radio-show/website/ (ClaudeTools repo)
Framework Astro ^6.0.4, output: 'static'
Islands / libs @astrojs/react (React 19), MDX, sitemap, RSS; wavesurfer.js (episode audio), fuse.js (client search)
Node >= 22.12.0
Content MD/MDX collections src/content/episodes/, src/content/blog/
Pages index, about, community, contact, live, subscribe, episodes/, blog/, feed.xml (RSS), 404
Layout src/layouts/BaseLayout.astro; components under src/components/{global,home,episodes}/
Analytics Matomo site ID 3 — tracker injected into built HTML before </head>

Build & deploy (pure static — no server runtime):

cd projects/radio-show/website
npm install            # first time (node >= 22.12.0)
npm run build          # -> dist/
rsync -az --delete dist/ root@172.16.3.10:/home/azcomputerguru/public_html/radio/

It is tier 1/3 of the post-show content workflow in wiki/projects/radio-show.md (episode pages + blog posts generated per episode). The audio pipeline / archive DB / FastAPI UI are separate from this static site.

human-flow note: the AST scanner can analyze the .tsx island components under src/components; it skips .astro page templates (those need a manual/heuristic pass).


Client cPanel accounts (72 accounts, 185 domains)

The "where does client X's website live" map — primary domain per account, sorted by disk. Account home is /home/<account>/, web root /home/<account>/public_html/. 101 WordPress installs across these accounts.

Disk Account Primary domain
85 G westernt westerntire.com
38 G azcomputerguru azcomputerguru.com (ACG — see above)
27 G grabblaw grabblaw.com
25 G voicesofthewest voicesofthewest.net
18 G computergurume computerguru.me
8.7 G acg acghosting.com (ACG)
8.7 G gurushow gurushow.com (ACG — radio archive)
8.0 G sparcora sparcoracing.com
7.6 G azrestaurant azrestaurantsupply.com
7.0 G acepickupparts acepickupparts.com
6.7 G perkins classicsingleaction.com
6.1 G danaise danaise.com
5.3 G sandtekomachine sandtekomachinery.com
4.4 G remotesystems remotesystems.us
4.3 G thegirlsestate thegirlsestatesales.com
3.0 G upracing upracing.com
2.8 G farwest farwestwell.com
2.6 G tucsonadobe tucsonadobe.com
2.5 G hightechmortgage hightechmortgage.com
2.1 G bruceext bruceexterminating.com
2.0 G outaboundssports outaboundssports.com
1.9 G jrkco jrkco.com
1.9 G compoundfitness compoundfunctionalfitness.com
1.7 G ezfastautoglass ezfastautoglass.com
1.5 G rednourlaw rednourlaw.com
1.4 G johnmartell martellappraisals.com
1.4 G peacefulspirit bestmassageintucson.com
1.1 G rrspc rrspc.com (active local mail, MX to mail.rrspc.com)
1.1 G nwpool northwestpoolcare.com
898 M azwebdesign arizonawebsitedesign.pro
835 M berman agingwithoutfamily.org
819 M arizonahatters arizonahatters.com
805 M tucsongc tucsongoldencorral.com
795 M pcatucson pcatucson.com
774 M themarcgroup themarcgroup.com
722 M fsgtucson fsgtucson.com
680 M antivaxxer anti-vaxxer.org
635 M desertfox tucsonpaintball.net
604 M tarafulcreations tarafulcreations.com
583 M phxpropane phxpropane.com
568 M gentlemansacres gentlemansacres.com
518 M rarengineer rarengineer.com (MX may resolve to IX)
492 M ucryo ucryo.com
479 M packetdial packetdial.com
358 M royalweedcontrol royalweedcontrol.net
356 M drsticken drsticken.com
345 M photonicapps photonicapps.com
340 M thrive thriveappraisalservices.com
325 M cryoweave cryoweave.com
299 M atlantisbevco atlantisbevcollc.com
267 M zammit valleydevelopmentcorp.com
258 M blackswanarchery blackswanarchery.com
242 M lifelong lifelonglearningacademy.com
239 M thecentu thecenturions.com
151 M ultraper ultraperformance.com
80 M goldench goldenchoicecatering.com
78 M cascades cascadestucson.com
67 M jefffurr jefffurrier.com
37 M lamaddux lamaddux.com
34 M martylryan martylryan.com
33 M hoopevents hoopevents.news
27 M grygutis barbaragrygutis.com
25 M bardach bardach.net
24 M wolkin rswolkin.com
20 M devconllc devconllc.com
19 M horseshoemgt horseshoemgt.com
16 M starrpass starrpass.com
16 M jparkinsonaz jparkinsonaz.com
16 M heieck heieck.org
8 M jackfurr jackfurrier.com
8 M glaztech glaztech.com
3 M drelenaparra drelenaparra.com

Several of these map to ACG managed-service clients — e.g. cryoweave (CryoWeave), rednourlaw (Rednour Law), peacefulspirit (Peaceful Spirit), grabblaw (Grabb & Durando), ucryo (Universal Cryogenics), horseshoemgt (Horseshoe Mgmt), glaztech (Glaz-Tech), westernt/jackfurr/jefffurr (Furrier / Western Tire). 185 total domains include addon/parked/subdomains.

To regenerate this inventory: ssh root@172.16.3.10 then whmapi1 listaccts (full account data), /etc/trueuserdomains (primary domain → account), /etc/userdomains (all domains → account), /var/cpanel/userdata/<account>/<domain> (per-domain docroot).