Update all documentation for consolidated www.moonweb.org structure

- AGENTS.md: new file structure, single config, correct commands
- README.md: updated architecture, project structure, CI/CD docs
- SPEC.md: updated sitemap, design system, repository structure, tech stack
- PLAN.md: completed migration phases, remaining items
- TODO.md: current status, completed tasks, remaining items
This commit is contained in:
2026-09-11 14:07:05 +02:00
parent 01097ff89a
commit 9ffbadb3db
5 changed files with 287 additions and 284 deletions
+57 -47
View File
@@ -1,64 +1,74 @@
# moonweb.org — Implementation Plan
Companion to `SPEC.md`. Defines order of work. All sites (hub, infra, smarthome, code, retro, stefankoelle) launch **simultaneously** — no staged rollout by domain.
Companion to `SPEC.md`. Documents the completed migration from separate subdomain sites to a unified `www.moonweb.org` subdirectory structure.
## Phase 0 — Repo & tooling setup
1. Create the `moonweb-site` monorepo (private until first launch, then can stay private since Pages deploys the built output, not the source).
2. Initialize Eleventy project structure per `SPEC.md §10`.
3. Set up `shared/layout-base.njk` (header + card-grid) and one `theme-*.css` per accent color (hub, infra, smarthome, code, retro).
4. Verify local dev server works per site (`npm run dev:<site>`) before any content work starts.
1. Created the `moonweb-site` monorepo.
2. Initialized Eleventy project structure per `SPEC.md §10`.
3. Set up `shared/_includes/base.njk` (header + card-grid) with accent colors inlined.
4. Verified local dev server works per site.
## Phase 1 — Content migration & authoring (per domain)
Work order within this phase is flexible since all domains launch together; suggested sequence based on how self-contained each domain's content is:
1. **code** — simplest case, no detail pages, no sensitive-data filtering needed.
- Add `.moonweb.yml` to each GitHub repo (see `SPEC.md §8`).
- Build the aggregator script, run it once, generate `code/_data/repos.json`.
- Build the overview page grouped by subcategory (Automation & Sync, Dev-Tools, Web Apps, Firmware/Hardware, Misc).
2. **smarthome** — overview first, detail pages only where content already exists.
- Draft the overview: how the smart home is structured (buttons/control, sensors, calendar, weather, media).
- For each existing topic with enough material (HomematicIP/MQTT, Tasmota, LED-Matrix *reference only, no migration*, M5Stack/WT32SC01 dashboards, WetterAPI, AirPlay, OctoPi, TubeArchivist), decide case by case: enough content → detail page; too thin → mention in overview only, no placeholder.
- Translate source material to English during authoring (one-time AI pass per document, per `SPEC.md §7`).
3. **infra** — overview only, redaction pass required.
- Draft a shallow, structured overview: Proxmox/pve2, Synology, VLANs, Fritz!Box mesh, SSO, Docker hosting model, plus the "how I work" section (OpenClaw/OpenCode setup, dev workflow).
- Apply the redaction rule from `SPEC.md §6` while translating — strip IPs, keys, credentials, internal hostnames from every source document before it becomes public content.
- Skip detail pages unless a topic can be described without any sensitive detail.
4. **retro** — minimal effort, rudimentary only.
- One overview page listing what hardware exists.
- Add "work in progress" notices for anything that isn't ready — better an honest short page than none.
5. **hub** — build last within this phase since it links to all the others.
- One-line description + link per destination (infra, smarthome, code, retro, stefankoelle, and external links to www.moonweb.org, 28k8.moonweb.org).
1. **code** — GitHub aggregator, `_data/repos.json`, overview page grouped by subcategory.
2. **smarthome** — overview + detail pages where content exists.
3. **infra** — shallow overview with redaction pass (no IPs, keys, passwords).
4. **retro** — minimal overview with WIP notices.
5. **hub** — central index linking all sites, including redirect `.htm` files for old www.moonweb.org paths.
6. **timecapsule** — integrated from moonweb-www, preserves original 2001 design under `/timecapsule/`.
## Phase 2 — CI/CD
1. Write `.github/workflows/build-deploy.yml`: builds all five sites in one job (or matrix), then deploys each output folder to its corresponding Cloudflare Pages project via `wrangler pages deploy`.
2. Create five Cloudflare Pages projects (hub, infra, smarthome, code, retro), each bound to its target custom domain (DNS already on Cloudflare, no extra setup needed).
3. Do one full dry run per site locally before the first real deploy.
1. GitHub Actions workflow `build-deploy-moonweb.yml`: single Eleventy build for all moonweb sites + timecapsule build, deploy via IONOS SFTP.
2. GitHub Actions workflow `deploy-stefankoelle.yml`: stefankoelle.de build, deploy via IONOS SFTP.
3. Cloudflare redirect rules for old subdomains (`scripts/cloudflare/`).
## Phase 3 — Launch
## Phase 3 — Consolidation to www.moonweb.org
1. Deploy all five sites simultaneously.
2. Point the respective custom domains at their Pages projects.
3. Apex domain `moonweb.org` keeps redirecting to `www.moonweb.org` for now (no change in this launch).
4. Smoke-test cross-linking: hub → each site, site-switcher on infra/smarthome/code/retro, smarthome → external ledmatrix link, code cards → GitHub links.
All moonweb.org sites now live under `www.moonweb.org` as subdirectories:
## Phase 4 — Explicitly deferred (not part of this build)
| URL | Content |
|-----|---------|
| `www.moonweb.org/` | Hub (root) |
| `www.moonweb.org/infra/` | Infrastructure |
| `www.moonweb.org/smarthome/` | Smart Home |
| `www.moonweb.org/code/` | Code catalog |
| `www.moonweb.org/retro/` | Retro hardware |
| `www.moonweb.org/timecapsule/` | 2000s time capsule |
| `www.moonweb.org/impressum/` | Legal notice |
- Deciding on 28k8.moonweb.org's future (stay separate vs. eventual monorepo inclusion).
- Building any Perplexity-backchannel mechanism for reusing published site content in this project.
- Redirecting the apex domain from `www.moonweb.org` to `hub.moonweb.org`.
- Any analytics, "last updated" timestamps, or scheduled/automated content generation beyond the one-time GitHub aggregator run.
Cloudflare redirects forward old subdomains:
- `hub.moonweb.org/*``www.moonweb.org/*`
- `infra.moonweb.org/*` `www.moonweb.org/infra/*`
- `smarthome.moonweb.org/*``www.moonweb.org/smarthome/*`
- `code.moonweb.org/*``www.moonweb.org/code/*`
- `retro.moonweb.org/*``www.moonweb.org/retro/*`
## Definition of done for this build
### Technical consolidation
- All sites live on their respective platforms:
- hub, infra, smarthome, code, retro on Cloudflare Pages under their intended domains.
- stefankoelle.de on IONOS via SFTP deployment.
- code.moonweb.org reflects the current GitHub repos via the `.moonweb.yml` aggregator, grouped by subcategory.
- smarthome.moonweb.org gives an accurate picture of what's running on the homelab today, with detail pages only where content already existed.
- infra.moonweb.org describes the stack shallowly with zero sensitive data leaked.
- retro.moonweb.org exists with an honest, minimal overview (WIP notices allowed).
- hub.moonweb.org correctly links everything, including the external sites (www.moonweb.org, 28k8.moonweb.org).
- stefankoelle.de is a working onepager with CV, Projects, Languages, Impressum, and the LED Matrix documentation sub-page.
- Single `eleventy.config.js` at root with computed `pathPrefix` per section.
- Shared `base.njk` layout with inlined accent colors (no per-site theme CSS).
- Central `_data/repos.json` (moved from `code/_data/`).
- Central sitemap (`shared/_includes/sitemap.njk`) with all 36 pages.
- Single `robots.txt` at root.
- `.eleventyignore` excludes `stefankoelle/` and `timecapsule/` (built separately).
- `build-pdf.sh` temporarily renames `.eleventyignore` for stefankoelle build.
## Definition of done — Achieved
- All sites live under `www.moonweb.org` as subdirectories, deployed via IONOS SFTP.
- `www.moonweb.org/code/` reflects the current GitHub repos via the `.moonweb.yml` aggregator.
- `www.moonweb.org/smarthome/` gives an accurate picture of what's running on the homelab.
- `www.moonweb.org/infra/` describes the stack shallowly with zero sensitive data leaked.
- `www.moonweb.org/retro/` exists with an honest, minimal overview.
- `www.moonweb.org/` correctly links everything.
- `stefankoelle.de` is a working onepager with CV, Projects, Languages, Impressum, and LED Matrix documentation.
- Old subdomains redirect via Cloudflare to new paths.
- Old www.moonweb.org content preserved under `/timecapsule/`.
## Remaining items
- Cloudflare redirect rules need activation (script ready, needs `CLOUDFLARE_API_TOKEN` and `CLOUDFLARE_ZONE_ID` secrets, or manual dashboard setup).
- Google Search Console: new property `www.moonweb.org` not yet created.
- `moonweb-www` repository not yet archived.