Commit graph

117 commits

Author SHA1 Message Date
sjat
b85479b9a0 feat(rack): validate shelf-mounted devices (mounted_on/shelf_face/shelf_slot) 2026-06-24 17:42:07 +02:00
sjat
4961a748d4 docs(rack): shelf-mounted devices implementation plan 2026-06-24 17:39:34 +02:00
sjat
d8b1fd3272 docs(rack): shelf-mounted devices design spec 2026-06-24 17:27:02 +02:00
sjat
613a5c3cab docs(hardware): clarify provisional cluster note in naming spec
All checks were successful
Build docs site / build (push) Successful in 50s
Build slides / build (push) Successful in 1m10s
2026-06-24 16:29:28 +02:00
sjat
34243bbf6f docs: record hardware naming scheme, refresh stale mf0x hints 2026-06-24 16:26:11 +02:00
sjat
fd21d4807d refactor(hardware): rename mf00-mf04 to srv01-srv05, add cluster field
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 16:23:23 +02:00
sjat
9869da5c6b docs(hardware): naming migration implementation plan 2026-06-24 16:16:25 +02:00
sjat
bcd5748d28 docs(hardware): hardware naming scheme design 2026-06-24 15:55:43 +02:00
sjat
773fec952f test(rack): cover peer_port below 1 in validate_links
All checks were successful
Build docs site / build (push) Successful in 52s
Build slides / build (push) Successful in 1m10s
2026-06-24 15:13:15 +02:00
sjat
e54cbb3f0f feat(rack): populate provisional network topology (sw01, pp01, links)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 15:09:02 +02:00
sjat
39644541f1 feat(rack): render mermaid network graph into the rack page 2026-06-24 15:05:42 +02:00
sjat
ed5bda83e0 feat(rack): validate network links against peer files and ports 2026-06-24 15:02:34 +02:00
sjat
734a6522c1 docs(rack): Phase 3 network implementation plan 2026-06-24 15:00:07 +02:00
sjat
8b137291c7 docs(rack): Phase 3 network design spec 2026-06-24 14:56:28 +02:00
sjat
1b5e8316ea docs(rack): note render_power precondition (validate_power first)
All checks were successful
Build docs site / build (push) Successful in 49s
Build slides / build (push) Successful in 1m9s
2026-06-24 14:46:29 +02:00
sjat
5c3dab55a4 feat(rack): enable mermaid, populate provisional power data
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 14:41:46 +02:00
sjat
d2744db4ee feat(rack): render mermaid power graph into the rack page 2026-06-24 14:38:23 +02:00
sjat
ed4e7c751a feat(rack): validate power feeds against PDU outlets 2026-06-24 14:35:19 +02:00
sjat
a45d6d0266 docs(rack): Phase 2 power implementation plan 2026-06-24 14:33:18 +02:00
sjat
f4022edf3b docs(rack): Phase 2 power design spec 2026-06-24 14:28:48 +02:00
sjat
9253d1ca0d docs(services): regenerate index after moving coursemanagement out of docs
All checks were successful
Build docs site / build (push) Successful in 51s
Build slides / build (push) Successful in 1m9s
The service note was moved to notes/coursemanagement.md but the generated
index still listed it, which fails the CI drift check.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 14:19:11 +02:00
sjat
4f13962812 Moved a note out of docs
Some checks failed
Build docs site / build (push) Failing after 51s
Build slides / build (push) Successful in 1m13s
2026-06-24 14:15:27 +02:00
sjat
74b43ed5af test(rack): guard empty rack value and cover 0U/both/multi-rack rendering
All checks were successful
Build docs site / build (push) Successful in 54s
Build slides / build (push) Successful in 1m13s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 14:05:56 +02:00
sjat
b7fb69cf9a ci(rack): generate rack artifacts, run tests, add nav entry
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 14:00:48 +02:00
sjat
b0c933011b fix(services): commit regenerated services index after coursemanagement fix
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 13:56:15 +02:00
sjat
15666e0470 feat(rack): populate rack01 and wire gen_rack into make targets
Add rack placement frontmatter to mf00–mf04, fix pre-existing schema
error in docs/services/coursemanagement.md (missing kind/name fields),
extend Makefile docs-index and docs-check targets to also run gen_rack,
add test target, generate rack01.md and rack01-elevation.svg.

Positions are provisional placeholders to prove the pipeline; correct when mounting.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 13:56:09 +02:00
sjat
039b1212b9 feat(rack): render page and orchestrate generation 2026-06-24 13:51:52 +02:00
sjat
2fd0df1597 feat(rack): render SVG elevation (U1 at top, front/rear columns) 2026-06-24 13:48:19 +02:00
sjat
a1b889209a feat(rack): detect U overlaps within a rack face
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 13:45:08 +02:00
sjat
3324c01810 feat(rack): gen_rack placement parsing and validation 2026-06-24 13:42:21 +02:00
sjat
717de70eca feat(hardware): allow rack item kinds (pdu, patch-panel, shelf, blank, ups, kvm) 2026-06-24 13:40:01 +02:00
sjat
f8bcd7ec7f docs(plan): rack elevation Phase 1 implementation plan
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 13:32:52 +02:00
sjat
c362c93f65 docs(spec): rack documentation design (md → CI → SVG/mermaid)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 13:25:28 +02:00
sjat
6b06550447 docs(hardware): record DDR4-2666 RAM type for mf01/mf02, fix mf00 status
Some checks failed
Build docs site / build (push) Failing after 45s
Build slides / build (push) Successful in 1m13s
Add ram_type (DDR4-2666 non-ECC UDIMM) to mf01 and mf02 frontmatter, and
set mf00's placeholder status to staging so the overview index regenerates.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 20:42:13 +02:00
22749de762 first cut of a VPN presentation
Some checks failed
Build docs site / build (push) Failing after 40s
Build slides / build (push) Successful in 1m6s
2026-06-01 16:10:26 +02:00
sjat
1f9b203cb4 test: re-trigger ntfy alert after phone settings update
Some checks failed
Build docs site / build (push) Failing after 40s
Build slides / build (push) Successful in 1m1s
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 11:58:29 +02:00
sjat
87d4b66bd0 test: re-trigger ntfy alert to verify phone delivery
Some checks failed
Build docs site / build (push) Failing after 44s
Build slides / build (push) Successful in 1m5s
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 11:52:31 +02:00
sjat
df4637e269 test: deliberately break CI to verify ntfy alert (will revert)
Some checks failed
Build docs site / build (push) Failing after 39s
Build slides / build (push) Successful in 1m2s
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 11:46:44 +02:00
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
7b59a9c1b8 docs(hardware): drop the model field
All checks were successful
Build docs site / build (push) Successful in 43s
Build slides / build (push) Successful in 1m6s
Removed from per-host frontmatter, the index column, and the Specs table.
Model values kept churning (case manufacturer vs. "custom") without adding
useful information.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 10:37:04 +02:00
sjat
c0b6986984 Updated notes on mf00
All checks were successful
Build docs site / build (push) Successful in 43s
Build slides / build (push) Successful in 1m1s
2026-05-27 10:35:04 +02:00
sjat
41c4834dbd fix(docs-ci): unblock build by tolerating "?" placeholders in hardware frontmatter
All checks were successful
Build docs site / build (push) Successful in 46s
Build slides / build (push) Successful in 1m7s
mf00.md used bare ? in YAML (a complex-key indicator), breaking gen_overview.py.
Quoted the placeholders and taught fmt_cpu/fmt_ram/fmt_storage/fmt_nic to render
string values literally so unknown specs show as "?" in both the per-host Specs
table and the hardware index. Also regenerates docs/hardware/index.md to clear
the accumulated drift (mf02 16 GB, mf04 entry, mf00 custom).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 10:31:46 +02:00
sjat
c50a3b5acf Updated hardware descriptions to custom instead of case manufactorers
Some checks failed
Build docs site / build (push) Failing after 28s
Build slides / build (push) Successful in 48s
2026-05-20 09:18:48 +02:00
sjat
69d1f16a69 Added mf04 - an old stationary. Details needs updating.
Some checks failed
Build docs site / build (push) Failing after 28s
Build slides / build (push) Successful in 48s
2026-05-19 17:43:18 +02:00
sjat
10d37f6ad2 Upgraded mf02 to 16gb ram
Some checks failed
Build docs site / build (push) Failing after 34s
Build slides / build (push) Successful in 57s
2026-05-19 17:29:39 +02:00
sjat
9017a91ae2 docs(index): list Services alongside Hardware on the home page
All checks were successful
Build docs site / build (push) Successful in 30s
Build slides / build (push) Successful in 49s
Sidebar nav had Services after the previous commit, but the home page
body still only mentioned Hardware and House rules. Add a matching
bullet so visitors land somewhere obvious.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 17:54:24 +02:00
sjat
1288f3972b Updated forgejo text
All checks were successful
Build docs site / build (push) Successful in 31s
Build slides / build (push) Successful in 49s
2026-05-18 17:52:31 +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
sjat
96d2efc75c docs(dev): relocate MARP-MERMAID-Readme.md under notes/dev/
All checks were successful
Build docs site / build (push) Successful in 30s
Build slides / build (push) Successful in 48s
This file is pre-implementation reference material for the Marp +
Mermaid pipeline, not site content, so it belongs under notes/dev/
alongside the existing plans/ and specs/. Renamed to kebab-case to
match the filename convention.

  MARP-MERMAID-Readme.md -> notes/dev/marp-mermaid-setup.md

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 17:18:20 +02:00
sjat
62fcd8ac27 docs: add proper README at repo root and per-tree READMEs
All checks were successful
Build docs site / build (push) Successful in 29s
Build slides / build (push) Successful in 48s
- Rewrite the 84-byte Danish placeholder README.md into a proper
  English entry point: what this repo is, live URLs, layout, build
  instructions (make targets), and conventions, with pointers to
  CLAUDE.md for the long form.
- Add short READMEs to notes/, sandbox/, and scripts/ so each tree
  documents its own purpose at the boundary where someone is likely
  to land on it via the Forgejo web UI or a clone.

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