initial commit

This commit is contained in:
2026-08-13 21:58:53 +02:00
commit 8fbea9874f
65 changed files with 4081 additions and 0 deletions
Executable
+61
View File
@@ -0,0 +1,61 @@
# moonweb-site
Monorepo for hub.moonweb.org, infra.moonweb.org, smarthome.moonweb.org,
code.moonweb.org and retro.moonweb.org. cv (stefankoelle.de) stays external
(Cloudflare Free-Tier limits to 5 Pages projects per repository).
See `SPEC.md` for the full specification and `PLAN.md` for the phased
implementation plan. Cloudflare Free-Tier limits to 5 Pages projects per
repository — cv (stefankoelle.de) stays external.
## What is real vs. placeholder
- Structure, layouts, themes, Eleventy configs, CI workflow: fully implemented.
- `code/_data/repos.json`: populated with real data pulled from the
`skoelle` GitHub account (public repos only, private repos like
`wetterapi` intentionally excluded from the public catalog).
- `infra/`, `smarthome/`: overview pages and detail pages with real content,
redacted per SPEC.md §6.
- `retro/`: intentionally minimal, per SPEC.md §5.
Note: stefankoelle.de (CV) is hosted separately and linked from the hub
and site-switcher — it is not part of this monorepo (Cloudflare Free-Tier
limits to 5 Pages projects per repository).
## Local development
Each site has its own minimal Eleventy config so you can preview one site
at a time:
```bash
npm install
npm run dev:hub # http://localhost:8081
npm run dev:infra # http://localhost:8082
npm run dev:smarthome # http://localhost:8083
npm run dev:code # http://localhost:8084
npm run dev:retro # http://localhost:8085
```
## Build
```bash
npm run build # builds all five Eleventy sites into dist/<site>/
```
## Deploy
Handled entirely by `.github/workflows/build-deploy.yml` on push to `main`:
builds all sites, then deploys each `dist/<site>` folder to its own
Cloudflare Pages project via `wrangler pages deploy`. See the workflow
file for the required repo secrets.
Note: Cloudflare Free-Tier limits to 5 Pages projects per repository —
cv (stefankoelle.de) stays external.
## GitHub aggregator (code.moonweb.org)
`scripts/github-aggregator/aggregate.py` reads a `.moonweb.yml` file from
each of your GitHub repos and regenerates `code/_data/repos.json`. Run it
manually whenever you want to refresh the catalog — see SPEC.md §8 for the
`.moonweb.yml` schema. It is *not* wired into CI; this is a deliberate,
manual step. cv (stefankoelle.de) is not included in this automation.