mirror of
https://github.com/skoelle/moonweb-site.git
synced 2026-09-17 17:00:25 +00:00
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:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user