docs(wiki): add IX hosting server system article + radio site infra

- New wiki/systems/ix-server.md: IX web host (172.16.3.10) facts, the
  ACG hosted sites table, and a full record of radio.azcomputerguru.com
  (Astro static + React 19 islands; source in projects/radio-show/website/;
  build npm run build -> dist -> rsync to cPanel doc root).
- index.md: list the new IX systems article.
- radio-show.md: fix the stale "ix-server.md may not exist" backlink.
- memory reference_radio_website.md: add stack detail (React islands,
  wavesurfer/fuse, node>=22) + pointer to the new wiki article.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-05 17:19:13 -07:00
parent d4741e447f
commit c9b9a3f479
4 changed files with 121 additions and 3 deletions

View File

@@ -7,12 +7,14 @@ type: reference
## Radio Show Website ## Radio Show Website
- **URL:** https://radio.azcomputerguru.com - **URL:** https://radio.azcomputerguru.com
- **Platform:** Astro 6.0.4 (static site generator) - **Platform:** Astro 6.0.4 (`output: 'static'`) with **React 19 islands** (`@astrojs/react`), MDX, sitemap, RSS; `wavesurfer.js` (episode audio) + `fuse.js` (client search). Node >= 22.12.0.
- **Server:** IX server (172.16.3.10), cPanel account `azcomputerguru` - **Server:** IX server (172.16.3.10), cPanel account `azcomputerguru`
- **Document Root:** `/home/azcomputerguru/public_html/radio` - **Document Root:** `/home/azcomputerguru/public_html/radio`
- **Source Code:** `projects/radio-show/website/` in ClaudeTools repo - **Source Code:** `projects/radio-show/website/` in ClaudeTools repo (server holds only built `dist/`)
- **Content:** Markdown/MDX collections at `src/content/episodes/` and `src/content/blog/`
- **Build:** `cd projects/radio-show/website && npm run build` produces `dist/` folder - **Build:** `cd projects/radio-show/website && npm run build` produces `dist/` folder
- **Deploy:** rsync/SCP `dist/` contents to document root on IX server - **Deploy:** rsync/SCP `dist/` contents to document root on IX server
- **Full infra record:** `wiki/systems/ix-server.md`. human-flow can AST-scan the `.tsx` islands under `src/components`, not the `.astro` pages.
### Community Link ### Community Link
- The community page (`/community`) links to: - The community page (`/community`) links to:

View File

@@ -70,6 +70,7 @@ Run `/wiki-lint` to check for stale entries and broken backlinks.
| [Jupiter](systems/jupiter.md) | 172.16.3.20 — Unraid primary NAS; virsh host for all VMs; Docker: NPM, Gitea, Seafile; iDRAC at 172.16.1.73 | 2026-05-24 | | [Jupiter](systems/jupiter.md) | 172.16.3.20 — Unraid primary NAS; virsh host for all VMs; Docker: NPM, Gitea, Seafile; iDRAC at 172.16.1.73 | 2026-05-24 |
| [Pluto (Claude-Builder)](systems/pluto.md) | 172.16.3.36 — Windows Server 2019 virsh VM on Jupiter; exclusive Windows MSI + cargo build server for GuruRMM | 2026-05-24 | | [Pluto (Claude-Builder)](systems/pluto.md) | 172.16.3.36 — Windows Server 2019 virsh VM on Jupiter; exclusive Windows MSI + cargo build server for GuruRMM | 2026-05-24 |
| [Uranus](systems/uranus.md) | 172.16.3.21 — Unraid secondary (Dell R730xd); OwnCloud archive storage only; formerly Saturn's IP (reused Apr 2026); RAM too low for VMs | 2026-05-24 | | [Uranus](systems/uranus.md) | 172.16.3.21 — Unraid secondary (Dell R730xd); OwnCloud archive storage only; formerly Saturn's IP (reused Apr 2026); RAM too low for VMs | 2026-05-24 |
| [IX Web Hosting Server](systems/ix-server.md) | 172.16.3.10 / 72.194.62.5 — cPanel/WHM (CloudLinux 9.7); hosts ACG static sites incl. **radio.azcomputerguru.com** (Astro, source in `projects/radio-show/website/`), public site, Flarum community, Matomo analytics + ~87 client WordPress; behind Cloudflare tunnel `acg-origin` | 2026-06-05 |
## Patterns ## Patterns

View File

@@ -199,7 +199,7 @@ IX server access: paramiko with `look_for_keys=False, allow_agent=False`. Tailsc
## Backlinks ## Backlinks
- `wiki/systems/jupiter.md` [unverified — may not exist yet] — Jupiter server spec - `wiki/systems/jupiter.md` [unverified — may not exist yet] — Jupiter server spec
- `wiki/systems/ix-server.md` [unverified — may not exist yet] — IX hosting server spec - `wiki/systems/ix-server.md` — IX hosting server + the radio website (Astro) build/deploy record
- `wiki/projects/gururmm.md` — related ACG project - `wiki/projects/gururmm.md` — related ACG project
- `projects/radio-show/audio-processor/README.md` — full pipeline spec and configuration reference - `projects/radio-show/audio-processor/README.md` — full pipeline spec and configuration reference
- `projects/radio-show/post-show-workflow.md` — full post-show content workflow spec - `projects/radio-show/post-show-workflow.md` — full post-show content workflow spec

115
wiki/systems/ix-server.md Normal file
View File

@@ -0,0 +1,115 @@
---
type: system
name: ix-server
display_name: IX Web Hosting Server
last_compiled: 2026-06-05
compiled_by: GURU-5070/claude-main
sources:
- .claude/memory/reference_radio_website.md
- .claude/memory/reference_resource_map.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 public-facing static sites (including **radio.azcomputerguru.com**),
the community forum, the analytics server, and ~87 client WordPress installs.
> Deep operational detail (cPanel account hygiene, WordPress hygiene, mail
> accounts, the Cox→Cloudflare BGP workaround) lives in
> [`wiki/clients/internal-infrastructure.md`](../clients/internal-infrastructure.md).
> This article is the **systems-level** record and the home for the ACG static
> sites deployed here.
## Host facts
| Item | Value |
|---|---|
| Hostname | `ix.azcomputerguru.com` |
| Internal IP | `172.16.3.10` (Tailscale required) |
| External IP | `72.194.62.5` |
| Stack | CloudLinux 9.7, Apache, WHM/cPanel, per-account MySQL/MariaDB |
| WHM | `https://ix.azcomputerguru.com:2087`**DNS-only / grey-cloud** in Cloudflare (`:2087`/`:2083` can't traverse the tunnel) |
| SSH | `ssh root@172.16.3.10` (internal) or `ssh root@72.194.62.5` (external) |
| Vault | `infrastructure/ix-server.sops.yaml` |
| Edge | Cloudflare tunnel `acg-origin` (UUID `78d3e58f-1979-4f0e-a28b-98d6b3c3d867`) on Jupiter routes the ACG hostnames to IX `:443` |
[WARNING] Do NOT attempt interactive/key-based SSH from scripts to the `gurushow`
account host path — for that account use paramiko with `look_for_keys=False,
allow_agent=False`. Root SSH uses the vault password (`infrastructure/ix-server.sops.yaml`).
## Hosted ACG sites
| Hostname | Stack | cPanel account / doc root |
|---|---|---|
| **radio.azcomputerguru.com** | Astro static (+ React islands) | `azcomputerguru``/home/azcomputerguru/public_html/radio` |
| azcomputerguru.com | Astro static (public site) | `acg` / `azcomputerguru` |
| community.azcomputerguru.com | Flarum forum | (forum DB) |
| analytics.azcomputerguru.com | Matomo | — |
| (radio audio archive) | static MP3 archive | `gurushow``/home/gurushow/public_html/archive/Radio/` |
| ~87 client sites | WordPress | per-client cPanel accounts |
All four ACG hostnames above reach IX through the Cloudflare tunnel (all returned
HTTP 200 via tunnel as of the 2026-04-13 cutover). `ix.azcomputerguru.com` itself
stays grey-cloud (direct to `72.194.62.5`) so WHM/cPanel ports work.
---
## radio.azcomputerguru.com — "The Computer Guru Show" website
The public site for the radio show. **Built by Claude; source lives in the
ClaudeTools repo**, not on the server — the server only holds the built `dist/`.
| 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), `@astrojs/mdx`, `@astrojs/sitemap`, `@astrojs/rss`; `wavesurfer.js` (episode audio waveform), `fuse.js` (client-side search) |
| Node | `>= 22.12.0` |
| Content | Markdown/MDX collections at `src/content/episodes/` and `src/content/blog/` (`src/content.config.ts`) |
| Pages | `index`, `about`, `community`, `contact`, `live`, `subscribe`, `episodes/`, `blog/`, `feed.xml` (RSS), `404` |
| Layout | single `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
```bash
cd projects/radio-show/website
npm install # first time only (node >= 22.12.0)
npm run build # -> dist/
# deploy: rsync dist/ contents to the IX doc root
rsync -az --delete dist/ <ix>:/home/azcomputerguru/public_html/radio/
```
`astro.config.mjs` pins `site: 'https://radio.azcomputerguru.com'` (correct
canonical URLs + sitemap + RSS). There is no server-side runtime — it is a pure
static deploy.
### Relationship to the radio-show project
The website is **tier 1/3** of the post-show content workflow documented in
[`wiki/projects/radio-show.md`](../projects/radio-show.md): each episode produces
an episode page (`src/content/episodes/sXXeYY-slug.md`) and 13 deep-dive blog
posts (`src/content/blog/<slug>.md`), generated from show-prep + debrief and
deployed here. The audio-processing pipeline, archive DB, and FastAPI browse UI
are separate from this static site.
### human-flow note
The site is Astro static but ships **React 19 islands**, so the `human-flow`
AST scanner can analyze its `.tsx` island components (it skips `.astro`
templates). Point it at `projects/radio-show/website/src/components` for a
component-level Friction Index; the page-level `.astro` flows still need a
manual/heuristic pass.
---
## Backlinks
- [`wiki/clients/internal-infrastructure.md`](../clients/internal-infrastructure.md) — full IX operational record (cPanel/WordPress hygiene, mail, Cox/Cloudflare)
- [`wiki/projects/radio-show.md`](../projects/radio-show.md) — the radio show project (audio pipeline + post-show workflow)
- [`wiki/systems/jupiter.md`](jupiter.md) — runs the `cloudflared` tunnel container that fronts IX
- Memory: `reference_radio_website.md`, `reference_ix_server_ssh.md`, `reference_resource_map.md`