Commit Graph

  • a63ef3d954 Phase 3.1: the postgres module adopts mesh-store instead of raising its own jschoubben 2026-09-16 20:32:12 +02:00
  • 41637befff Rename mesh-control -> mesh-controller, substrate -> foundation jschoubben 2026-09-16 18:40:40 +02:00
  • b520bd1825 The builder's workspace is a same-path bind, so sibling builds see the clone jschoubben 2026-09-16 16:02:26 +02:00
  • 065ddd6d69 gitea provides the package registry; the builder gets its npm credential jschoubben 2026-09-16 10:27:26 +02:00
  • abcba14edd Review: four manifests said something stale or nothing at all jschoubben 2026-09-15 22:03:33 +02:00
  • 1cb33732f2 Move amqp-ping's source, so the mesh has something to notice jschoubben 2026-09-15 21:03:43 +02:00
  • 71bbc7dab0 Name the two modules after their software: nftables and distribution jschoubben 2026-09-15 20:51:00 +02:00
  • bf1f67a485 listens names the port the software uses; serves is the mesh's to fill jschoubben 2026-09-15 12:59:00 +02:00
  • 9a41add136 showcase: a module that exercises everything a module can be jschoubben 2026-09-15 12:58:30 +02:00
  • c4e3ebee86 Move amqp-ping's source, so the mesh has something to notice jschoubben 2026-09-15 01:42:57 +02:00
  • d2dce34716 The catalogue asks on start, and registers a replay as history jschoubben 2026-09-15 01:26:58 +02:00
  • 4aa54fbbe0 Move amqp-ping's source, so the mesh has something to notice jschoubben 2026-09-14 23:42:52 +02:00
  • e0c92195d4 The builder names the registry by loopback until there is a certificate jschoubben 2026-09-14 22:38:05 +02:00
  • af1e3afa49 amqp-ping declares a broker secret it never mounts jschoubben 2026-09-14 21:20:48 +02:00
  • c61c7f74f9 Convert lavinmq: it is not only a broker, so it has to be built jschoubben 2026-09-14 21:05:10 +02:00
  • 030509558c Name the registry where every machine can reach it, not where the builder stands jschoubben 2026-09-14 21:00:48 +02:00
  • 680b91546c Migrate audit-logger: it builds itself now jschoubben 2026-09-14 12:58:30 +02:00
  • 071afc1e2c Merge pull request 'Modules compile in the toolchain and ship on the runtime' (#22) from feat/build-and-run-are-two-images into main jschoubben 2026-09-14 02:02:42 +02:00
  • cf116a4932 Modules compile in the toolchain and ship on the runtime jschoubben 2026-09-14 01:57:06 +02:00
  • 5ea88b149b The three modules name their base rather than pinning a copy of it jschoubben 2026-09-13 23:53:22 +02:00
  • 720e3706b2 Merge pull request 'The catalogue holds the module graph, and the modules that make it build themselves' (#21) from feat/the-catalogue-module into main jschoubben 2026-09-13 11:17:10 +02:00
  • 729582cc55 Remove what was only there to move a commit jschoubben 2026-09-13 11:15:33 +02:00
  • 21ad008879 Stale means the artifact moved, not the commit jschoubben 2026-09-13 02:48:21 +02:00
  • 87243bc524 Every module stands on a base the mesh built jschoubben 2026-09-13 02:45:37 +02:00
  • 1d0d9a3894 Name the module in its own runtime, and move the artifact with it jschoubben 2026-09-13 01:58:48 +02:00
  • 358c7d5a2d Move postgres's commit, to watch the mesh roll it out by itself jschoubben 2026-09-13 01:57:00 +02:00
  • d5300120d6 Move amqp-ping's commit, to see what the catalogue announces jschoubben 2026-09-13 01:49:48 +02:00
  • c80d9d0f7c The graph holds what a module declares, not only what it was built on jschoubben 2026-09-13 01:44:56 +02:00
  • 2d2ca80e3b Index the edge after the column that carries it exists jschoubben 2026-09-13 01:41:23 +02:00
  • f15c814145 A build edge names an artifact, because that is what the builder can see jschoubben 2026-09-13 01:37:51 +02:00
  • 9387f8b040 A module that listens is served, not run jschoubben 2026-09-13 01:30:39 +02:00
  • c774d5dbe0 Install the postgres client the way the runtime base can jschoubben 2026-09-13 01:28:15 +02:00
  • 6ebf51d312 postgres's runtime carries the client it provisions through jschoubben 2026-09-13 01:26:23 +02:00
  • 594295f009 The catalogue restarts when its database credentials change jschoubben 2026-09-13 01:22:38 +02:00
  • f7d57e9556 The catalogue brings its own postgres driver jschoubben 2026-09-13 01:16:23 +02:00
  • e742b6a569 The catalogue builds its own runtime, and postgres serves its tools jschoubben 2026-09-13 01:13:43 +02:00
  • d6c9c8d666 postgres builds its own runtime, like any other module jschoubben 2026-09-13 01:10:45 +02:00
  • 2a6fed6f4f The builder is told the mesh's name for the machine it runs on jschoubben 2026-09-13 01:07:37 +02:00
  • 81a80c675c The builder declares what it announces jschoubben 2026-09-13 00:57:41 +02:00
  • 39631d6f87 amqp-ping says what it is made of, and can be built from its own directory jschoubben 2026-09-13 00:52:57 +02:00
  • a73cb8a2f8 The catalogue, as a module that owns the module graph jschoubben 2026-09-12 23:16:05 +02:00
  • a4d10341e7 Declare what hello-web is made of, to prove a build from a path jschoubben 2026-09-12 16:57:18 +02:00
  • 5f76e34994 Add the builder as a module, so the mesh can be given one jschoubben 2026-09-12 16:45:59 +02:00
  • 5aacd2538b mesh-control: the enrolment endpoint is the substrate's, not the overlay's jschoubben 2026-09-11 11:48:51 +02:00
  • 2c322cb2fb mesh-control: the control plane could not read its own connections jschoubben 2026-09-11 11:38:28 +02:00
  • 290be37a93 step-ca: mount the directory, not each secret file jschoubben 2026-09-11 08:49:55 +02:00
  • 0d2c2dd989 minio: pin the manifest these machines can actually run jschoubben 2026-09-11 02:51:34 +02:00
  • 9ff320ecca Pin the operator's own images by digest, as every other image already is jschoubben 2026-09-11 01:06:14 +02:00
  • 4a1c5ac817 The artifact store requires nothing, because at genesis there is nothing jschoubben 2026-09-11 00:06:23 +02:00
  • 71f8012c5b The control plane as an ordinary module jschoubben 2026-09-10 23:43:07 +02:00
  • 16b4dc9ab9 step-ca: certify the machine the mesh reaches it at jschoubben 2026-09-10 21:12:48 +02:00
  • d9fbc72565 step-ca: give the CA's own secret material to the uid the CA runs as jschoubben 2026-09-10 20:57:58 +02:00
  • 43ca9c9c73 Give every module that would overflow its login a short slug jschoubben 2026-09-10 20:57:45 +02:00
  • 08be6683b6 route labels: nextcloud is 'drive' (real hostname), novox.be is the apex '@' jschoubben 2026-09-10 00:27:25 +02:00
  • f0665ba956 ADR 0056: selectable ACME issuer, step-ca init from operator root, route labels jschoubben 2026-09-10 00:21:42 +02:00
  • ff01adaa45 Add internal ACME CA (step-ca) as a generic acme-ca provision; wire route-proxy to consume it jschoubben 2026-09-09 23:07:54 +02:00
  • d018f1e16e Route names mirror real production hostnames from live Traefik jschoubben 2026-09-09 14:04:17 +02:00
  • e26ca38eaa novox conversions: give the web apps public names through route-proxy jschoubben 2026-09-09 12:51:15 +02:00
  • 431310fb03 novox conversions: short slugs for the login-length cap + real roundcube digest jschoubben 2026-09-09 02:35:47 +02:00
  • b3309a0ce9 mailu: full multi-container stack from the live novox deployment jschoubben 2026-09-09 01:04:55 +02:00
  • 8f99b5bd42 Add amqp-email-forwarder daemon module jschoubben 2026-09-09 00:41:06 +02:00
  • c423e21a8e Add novox.be; replace photos immich stub with the real app jschoubben 2026-09-09 00:36:48 +02:00
  • 1fc10be11b Convert only-office, n8n, de-spiegel to nox modules jschoubben 2026-09-09 00:30:06 +02:00
  • 6a84e97e53 Merge pull request 'module fixes from the whole-mesh dry-run: fail2ban capability + tool-runtime credential wiring' (#20) from feat/module-cred-fixes into main jschoubben 2026-09-08 18:45:24 +02:00
  • 5973d41966 umami: read the admin password from its mounted secret file jschoubben 2026-09-08 18:43:48 +02:00
  • d289e5a928 modules: wire tool-runtime app credentials as own-secrets jschoubben 2026-09-08 18:40:23 +02:00
  • 75fb16bbfb fail2ban: require the firewall capability, not the non-existent intrusion-prevention jschoubben 2026-09-08 18:27:34 +02:00
  • e0456746c3 Merge pull request 'local model: an ollama provider + a local-model consumer (ADR 0055)' (#19) from feat/local-model into main jschoubben 2026-09-07 05:26:02 +02:00
  • 29fe7c5bd0 local model: an ollama provider + a local-model consumer (ADR 0055) jschoubben 2026-09-07 05:25:21 +02:00
  • b33f9b14c7 Merge pull request 'openai-consumer: the static-key model-access consumer (ADR 0050)' (#18) from feat/openai-access into main jschoubben 2026-09-07 04:25:56 +02:00
  • c454c6a54c openai-consumer: the static-key model-access consumer (ADR 0050) jschoubben 2026-09-07 04:25:26 +02:00
  • 4cc1b976f5 Merge pull request 'model-usage: the vendor-neutral usage store (ADR 0054)' (#17) from feat/usage-store into main jschoubben 2026-09-07 04:08:21 +02:00
  • e8c3ea8979 model-usage: the vendor-neutral usage store (ADR 0054) jschoubben 2026-09-07 04:07:26 +02:00
  • bfbdf90496 Merge pull request 'anthropic model-access: manager + consumer modules' (#16) from feat/anthropic-module into main jschoubben 2026-09-07 02:48:51 +02:00
  • 19666ff054 anthropic-manager: seal over audited tweetnacl-sealedbox-js, not a hand-transcribed NaCl jschoubben 2026-09-07 02:17:37 +02:00
  • 4c98bee043 anthropic-manager: seal the refresh token to the node key, do no crypto to open jschoubben 2026-09-07 01:55:19 +02:00
  • c206e2e11e anthropic model-access modules: manager (refreshable-grant) and consumer jschoubben 2026-09-07 01:00:12 +02:00
  • cd46d53464 Merge pull request 'lavinmq: a user-facing AMQP provider (vhost-per-login)' (#15) from feat/convert-lavinmq into main jschoubben 2026-09-06 23:21:27 +02:00
  • 97707480d6 Add lavinmq amqp provider and amqp-ping consumer jschoubben 2026-09-06 15:50:19 +02:00
  • 090a839d42 Merge pull request 'route-proxy: the native ingress module (drop traefik)' (#14) from feat/route-proxy-module into main jschoubben 2026-09-06 15:17:21 +02:00
  • 89254ef2c8 hello-web: add slug so its identity fits the 20-char backend bound (ADR 0049) jschoubben 2026-09-06 15:16:56 +02:00
  • 36640f68e6 Add route-proxy provider and hello-web consumer modules jschoubben 2026-09-06 15:07:16 +02:00
  • 9dbbfbb5b4 Merge pull request 'fix: postgres consumers connect to the mesh-named db (the login), not a hardcoded name' (#13) from fix/consumer-db-name into main jschoubben 2026-09-06 13:47:34 +02:00
  • d301e05794 fix: postgres consumers connect to the db the mesh named (the login), not a hardcoded app name jschoubben 2026-09-06 13:47:16 +02:00
  • dc12df18b4 Merge pull request 'fix: DB/cache/store providers must serve their port (migration blocker)' (#12) from fix/db-provider-serves-port into main jschoubben 2026-09-06 03:31:50 +02:00
  • 1f0c3ac69e fix: db/cache/store providers must serve their port; drop baserow's empty redis contribution jschoubben 2026-09-06 02:38:22 +02:00
  • dba4554002 Merge pull request 'Convert confluence + jira on the tools-only template' (#11) from feat/convert-atlassian into main jschoubben 2026-09-06 01:54:51 +02:00
  • db8b60f4e4 Convert confluence and jira into nox catalog modules jschoubben 2026-09-06 01:49:22 +02:00
  • 2c3f241010 Merge pull request 'Convert gitlab — the tools-only external-SaaS exemplar (23 tools, lab-proven)' (#10) from feat/convert-gitlab into main jschoubben 2026-09-06 01:40:31 +02:00
  • 7eb156a82a Convert gitlab into a tools-only mesh catalog module jschoubben 2026-09-06 01:33:43 +02:00
  • 09b140fe86 Merge pull request 'Convert baserow, letta, invoicing (DB/S3 consumers)' (#9) from feat/land-db-consumers into main jschoubben 2026-09-06 01:14:30 +02:00
  • 8b82e47889 invoicing: point app/api at the real registry host jschoubben 2026-09-06 01:14:08 +02:00
  • 515b1e79c7 Convert baserow, letta, invoicing to mesh catalog DB consumers jschoubben 2026-09-05 23:27:04 +02:00
  • 3b5f214f3d Merge pull request 'mosquitto: run-once dynsec bootstrap + fix the exit-0-on-failure provisioner' (#8) from feat/mosquitto-bootstrap into main jschoubben 2026-09-06 01:06:08 +02:00
  • e58cbc1c46 mosquitto: don't read a rejected dynsec command as success jschoubben 2026-09-06 00:57:45 +02:00
  • ec1e7189a3 mosquitto: seed dynsec with a run-once bootstrap before the broker jschoubben 2026-09-06 00:33:28 +02:00
  • eb5cf65be3 Merge pull request 'Servarr events entrypoints don't crash the runtime when unconfigured' (#7) from fix/arr-events-guard into main jschoubben 2026-09-05 23:14:43 +02:00
  • 419dd68145 Servarr events: don't crash the runtime when unconfigured jschoubben 2026-09-05 23:13:56 +02:00
  • 50eb1e6f02 Merge pull request 'Media modules access the shared library, they do not own it (ADR 0051)' (#6) from feat/media-access-not-ownership into main jschoubben 2026-09-05 22:48:16 +02:00
  • 69c8a5edf8 media stack: the shared library is accessed, not owned jschoubben 2026-09-05 22:14:33 +02:00