mirror of
https://github.com/skoelle/moonweb-site.git
synced 2026-09-17 17:00:25 +00:00
64 lines
5.1 KiB
Markdown
Executable File
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).
|