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

2.3 KiB
Executable File

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:

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

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.