Files
moonweb-site/PLAN.md
T
2026-08-13 21:58:53 +02:00

64 lines
5.1 KiB
Markdown
Executable File

# moonweb.org — Implementation Plan
Companion to `SPEC.md`. Defines order of work. All five sites (hub, infra, smarthome, code, retro) launch **simultaneously** — no staged rollout by domain. cv (stefankoelle.de) stays external (Cloudflare Free-Tier limits to 5 Pages projects per repository).
## 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.
## 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 (mirrors what's on `home.moonweb.org`: 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, and external links to stefankoelle.de, www.moonweb.org, 28k8.moonweb.org, home.moonweb.org).
## 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). Note: Cloudflare Free-Tier limits to 5 Pages projects per repository — cv (stefankoelle.de) stays external.
3. Do one full dry run per site locally before the first real deploy.
## Phase 3 — Launch
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.
## Phase 4 — Explicitly deferred (not part of this build)
- Migrating `/ledmatrix/` and any other stefankoelle.de sub-pages into smarthome.
- 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.
- Porting stefankoelle.de into the monorepo — stays external (Cloudflare Free-Tier limits to 5 Pages projects).
## Definition of done for this build
- All five sites live on Cloudflare Pages under their intended domains.
- 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 home.moonweb.org 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 untouched external sites (stefankoelle.de, www.moonweb.org, 28k8.moonweb.org).