Commit graph

8 commits

Author SHA1 Message Date
sjat
baf1992b0e ci(docs): notify ntfy when main build fails
All checks were successful
Build docs site / build (push) Successful in 44s
Build slides / build (push) Successful in 1m4s
Adds an `if: failure()` step that POSTs to ntfy.sh on a failed push-to-main
run. Topic comes from the NTFY_TOPIC secret so it stays out of the public
repo; missing secret silently no-ops via `|| true`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 11:24:29 +02:00
sjat
c743416ded feat(docs): add services category alongside hardware
All checks were successful
Build docs site / build (push) Successful in 32s
Build slides / build (push) Successful in 52s
Mirror the auto-indexed per-host pattern for a new docs/services/
category, seeded with the six things currently deployed on or around
makerfloss.eu: docs, slides, forgejo, gandi-dns, marp, mermaid.

Generator/hook generalisation:
- scripts/gen_overview.py: replace the hardcoded `hostname` check
  with a configurable `key_field` (default: hostname). Add a generic
  `key-link` column kind (replaces the old `hostname-link`) and a
  `url-link` kind that renders the value as a clickable link.
- scripts/overview_config.yml: declare hardware's key_field, then add
  a `services` block (key_field=name, its own kind/status enums,
  grouped by kind for the index table).
- scripts/mkdocs_hooks.py: route by `page.file.src_uri` so each
  hardware/* page gets a "Specs" table and each services/* page gets
  a "Service" table; both share the helpers in gen_overview.

Wiring:
- Makefile: docs-index and docs-check now regenerate and drift-check
  both indices.
- .forgejo/workflows/docs.yml: same on the CI runner.
- mkdocs.yml: add Services to nav.
- README.md, CLAUDE.md: list services/ in the repo-layout block.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 17:48:15 +02:00
Claude
50775186fb fix(docs-ci): install nodejs in python image — actions/checkout needs node
All checks were successful
Build docs site / build (push) Successful in 31s
Build slides / build (push) Successful in 52s
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 21:17:59 +02:00
sjat
da19ce1bef Revert "fix(docs-ci): install nodejs in python image — actions/checkout needs node"
This reverts commit 3fe690edf0.
2026-05-17 21:17:41 +02:00
Claude
3fe690edf0 fix(docs-ci): install nodejs in python image — actions/checkout needs node
Some checks failed
Build docs site / build (push) Successful in 30s
Build slides / build (push) Has been cancelled
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 21:17:06 +02:00
sjat
e5c8e86708 Revert "fix(docs-ci): install nodejs in python image — actions/checkout needs node"
This reverts commit d51d68abca.
2026-05-17 21:17:06 +02:00
Claude
d51d68abca fix(docs-ci): install nodejs in python image — actions/checkout needs node
All checks were successful
Build docs site / build (push) Successful in 31s
Build slides / build (push) Successful in 53s
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 21:12:42 +02:00
sjat
6b1a61461b feat(docs): MkDocs Material site + auto-generated hardware overview
Bootstraps an MkDocs Material documentation site (rendered to
docs.makerfloss.eu by the Forgejo Actions runner). The first feature
is an auto-generated hardware overview built from per-host YAML
frontmatter blocks under docs/hardware/.

- mkdocs.yml, requirements.txt: MkDocs Material 9.5 + pyyaml
- Makefile: docs-index | docs-build | docs-serve | docs-check
- scripts/gen_overview.py: stdlib + pyyaml generator, deterministic and
  offline. Reads scripts/overview_config.yml — category-driven so
  services/vms can plug in later without touching the script.
- scripts/overview_config.yml: hardware schema and index layout
- docs/hardware/{makerfloss,fisi,tembo}.md: 3 sample entries
- docs/hardware/index.md: GENERATED, committed (CI fails on drift)
- docs/index.md: site landing page
- .forgejo/workflows/docs.yml: drift-check + mkdocs build --strict +
  rsync site/ to /srv/docs-makerfloss/html on push to main
- .gitignore: site/, .venv, __pycache__

Schema:
- hostname, kind, status (required; kind/status are enums)
- model, location, cpu, cpu_cores, cpu_threads, ram_gb, storage_gb,
  storage_type (enum), storage_notes, nic_gbps (all optional)
- Filename stem MUST equal hostname (enforced by generator)
- Extra optional fields are accepted silently and live on the per-page

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 21:10:58 +02:00