df0e9017e0
nextcloud: set OBJECTSTORE_S3_REGION to match minio's actual region
jschoubben2026-09-25 14:12:05 +02:00
b60dd5e3e3
nextcloud: use a module-owned mesh-admin account instead of 'admin'
jschoubben2026-09-25 13:51:40 +02:00
b865978e19
nextcloud: use a named build stage for docker:cli, not ARG-in-COPY-from
jschoubben2026-09-25 13:49:02 +02:00
cdbc850c52
nextcloud: declare docker:cli as a pinned build.on base
jschoubben2026-09-25 13:48:00 +02:00
e2b3723dd9
nextcloud: fix hardcoded sidecar port and missing docker CLI in runtime image
jschoubben2026-09-25 13:47:03 +02:00
5f74c41a3e
nextcloud: give the admin password a real _FILE variant, not an env-file
jschoubben2026-09-25 13:42:21 +02:00
4329ca9392
nextcloud: deliver the admin password to the sidecar too
jschoubben2026-09-25 13:41:17 +02:00
066254e5c4
nextcloud: pin an image whose PHP matches this Nextcloud version
jschoubben2026-09-25 13:39:16 +02:00
440e3e446e
minio: set the region to eu-west, matching where this mesh actually runs
jschoubben2026-09-25 10:45:01 +02:00
20df40c949
minio: revert to single-node after measuring the real cost of sharding
jschoubben2026-09-24 23:07:02 +02:00
6a6dd4a7dc
minio: name the network minio-net, not minio
jschoubben2026-09-24 20:31:20 +02:00
973d80aaa2
minio: publish both public routes now that a module can answer route twice
jschoubben2026-09-24 18:45:52 +02:00
945390e59a
minio: run the real 4-node/8-drive erasure-coded cluster, not a single container
jschoubben2026-09-24 18:31:38 +02:00
49c5903861
Merge pull request 'minio: repin to pgsty's fork, build the runtime sidecar, move data off HAL's live drive' (#57) from fix/minio-repin-and-move-off-hal-data into main
jschoubben2026-09-24 16:15:09 +00:00
35e8a3fe19
minio: repin to pgsty's fork, build the runtime sidecar, move data off HAL's live drive
jschoubben2026-09-24 17:55:49 +02:00
ed0f4602a6
keycloak: use Hostname v2's actual config shape, not v1's deprecated flags
jschoubben2026-09-24 17:27:04 +02:00
13d0361640
keycloak: carry over HAL's hostname/proxy settings, dropped during conversion
jschoubben2026-09-24 17:25:16 +02:00
61eb201f8a
postgres: declare the data directory's real owner; keycloak: use the port template
jschoubben2026-09-24 16:39:11 +02:00
5c3781d8c2
Merge pull request '4 modules: persistent data is a directory bind, never a named volume' (#54) from fix/persistent-data-is-a-directory-bind-not-a-volume into main
jschoubben2026-09-24 14:24:15 +00:00
6a3e0ab9d3
4 modules: persistent data is a directory bind, never a named volume
jschoubben2026-09-24 16:12:03 +02:00
3e8ecfa4eb
Merge pull request '11 modules: a container's ports say the software's port, not the machine's' (#53) from fix/091-ports-machine-side-is-the-mesh-to-assign into main
jschoubben2026-09-24 13:53:34 +00:00
12f885ffc5
11 modules: a container's ports say the software's port, not the machine's
jschoubben2026-09-24 15:45:58 +02:00
7551a65579
Merge pull request 'postgres: the provisioner connects to mesh-store's actual port, not a hardcoded 5432' (#52) from fix/postgres-provisioner-connects-to-the-actual-store-port into main
jschoubben2026-09-24 13:38:45 +00:00
135101ce6e
postgres: fix the port override properly — a twin variable, not a raw substitution
jschoubben2026-09-24 15:27:16 +02:00
088022d63b
postgres: the provisioner connects to mesh-store's actual port, not a hardcoded 5432
jschoubben2026-09-24 15:24:07 +02:00
415ad7a168
Merge pull request 'gitea: the token needs read:user, not just write:repository and write:issue' (#51) from fix/gitea-user-repos-scope into main
jschoubben2026-09-24 09:49:36 +00:00
aaf341a2d8
gitea: the token needs read:user, not just write:repository and write:issue
jschoubben2026-09-24 11:43:46 +02:00
8a458aa5c4
Merge pull request 'The forge mints its own API token with the admin account the vault delivers' (#49) from fix/gitea-mints-its-token into main
jschoubben2026-09-24 08:41:13 +00:00
d036b43bfc
Merge main into fix/gitea-mints-its-token to pick up the resolver conversion and artifact-store seat fix
jschoubben2026-09-24 10:40:57 +02:00
5a94b78891
Merge pull request 'Convert the resolver from the module it replaces: forward, answer at 127.0.0.1, point the runtime at it' (#50) from convert/dnsmasq-from-hal into main
jschoubben2026-09-23 23:13:08 +00:00
3d81bf41c6
Convert the resolver from the module it replaces: forward, answer at 127.0.0.1, point the runtime at it
jschoubben2026-09-23 23:53:51 +02:00
ed094031fd
The forge mints its own API token with the admin account the vault delivers
jschoubben2026-09-23 23:48:36 +02:00
4d8be01c5f
Merge pull request 'The artifact store's seat is one per mesh' (#48) from fix/the-artifact-store-is-one-per-mesh into main
jschoubben2026-09-23 21:42:25 +00:00
833d8ec3ec
The artifact store's seat is one per mesh
jschoubben2026-09-23 23:40:54 +02:00
9f2c678355
Merge pull request 'Convert mssql from the module it replaces, not from a blank page' (#46) from convert/mssql-from-hal into main
jschoubben2026-09-23 18:22:51 +00:00
cae0d00a7d
Convert mssql from the module it replaces, not from a blank page
jschoubben2026-09-23 20:22:34 +02:00
c001e054fd
Merge pull request 'Pin the analytics module to the version the machine it replaces is running' (#45) from fix/umami-matches-production into main
jschoubben2026-09-23 00:48:13 +00:00
b69edbb16f
Pin the analytics module to the version the machine it replaces is running
jschoubben2026-09-23 02:47:23 +02:00
b0d48d5c54
Merge pull request 'Pin the package registry to the version the machine it replaces is running' (#44) from fix/verdaccio-matches-production into main
jschoubben2026-09-23 00:37:31 +00:00
a3eca8f4e6
Pin the package registry to the version the machine it replaces is running: 6.10.3, not 6.10.1
jschoubben2026-09-23 02:24:07 +02:00
f11534102d
Merge pull request 'Pin the forge to the version the machine it replaces is running' (#43) from fix/gitea-matches-production into main
jschoubben2026-09-23 00:28:26 +02:00
a29475617a
Pin the forge to the version the machine it replaces is running: 1.27.3, not 1.22.6
jschoubben2026-09-23 00:28:11 +02:00
176bbd6085
Merge pull request 'route-adapter: provide route by writing into the predecessor's proxy (hq ADR 0104)' (#42) from feat/route-adapter into main
jschoubben2026-09-23 00:12:48 +02:00
bd5b349a0d
route-adapter: provide route by writing into the predecessor's proxy (hq ADR 0104)
jschoubben2026-09-23 00:11:21 +02:00
4f4a0750de
Merge pull request 'The store keeps the vector extension the predecessor's database had' (#41) from fix/store-keeps-pgvector into main
jschoubben2026-09-22 23:30:34 +02:00
5eb1baf5fe
Keep the vector extension the predecessor's database had: the store runs the pgvector build of the same major
jschoubben2026-09-22 23:30:21 +02:00
d0fed5b982
Merge pull request 'The forge's own address follows the port the node gave it (hq issue 088)' (#40) from feat/forge-address into main
jschoubben2026-09-22 23:29:47 +02:00
cf30d4b3d0
The forge's sidecar dials the port the machine put the forge on (hq issue 088)
jschoubben2026-09-22 22:36:34 +02:00
5706c00566
Merge pull request 'The builder's package binding is settable per node (hq issue 085)' (#39) from feat/packages-port into main
jschoubben2026-09-22 21:59:57 +02:00
b2e29871fd
Protect the address the builder sends its registry password to
jschoubben2026-09-22 21:56:51 +02:00
d63f006cb8
The builder's package binding takes its port from the node, not from the manifest
jschoubben2026-09-22 21:39:54 +02:00
6e88982498
Merge pull request 'Adoption mode: guards, and a filter unit that never flushes the ruleset (hq ADR 0100, 0103)' (#38) from feat/adoption-mode into main
jschoubben2026-09-22 21:01:56 +02:00
90104d0818
Reload the filter on a rule change rather than restart it, so the node is never unfiltered in between (hq ADR 0102)
jschoubben2026-09-22 19:47:43 +02:00
84012fab2e
Make the stock nftables unit's stop delete only the mesh's table on nodes that still have it enabled (hq ADR 0100)
jschoubben2026-09-22 18:06:15 +02:00
0c37d7389d
Guard the store and management ports on adopted nodes, and load the filter through a unit that never flushes the ruleset (hq ADR 0100)
jschoubben2026-09-22 17:32:26 +02:00
f4097b3c57
Merge pull request 'n8n and baserow no longer take the shared cache (issue 081)' (#37) from multiple-fixes into main
jschoubben2026-09-22 13:53:14 +02:00
431627c510
baserow: its data directory is 0755, as the image ships it — the cache it runs for itself does so as another user, who must reach its own directory beneath (issue 081)
jschoubben2026-09-22 13:46:01 +02:00
93634041db
baserow: its texts no longer name the shared cache it stopped taking
jschoubben2026-09-22 12:34:58 +02:00
24cbac816d
n8n and baserow no longer take the shared cache: neither can keep its keys and channels under the login it is granted — baserow runs its own, n8n in its shipped mode needs none (novox/hq issue 081)
jschoubben2026-09-22 12:26:33 +02:00
b2a48558ea
Merge pull request 'redis: a consumer's ACL loses the dangerous category (issue 080)' (#36) from multiple-fixes into main
jschoubben2026-09-22 02:19:14 +02:00
c71bbd497f
redis: INFO is allowed back — client libraries ask it at connect, and it reads nothing a consumer keeps
jschoubben2026-09-22 02:03:23 +02:00
421f4d8577
redis: a consumer's ACL loses the dangerous category — a key pattern does not confine FLUSHALL (novox/hq issue 080)
jschoubben2026-09-22 01:39:29 +02:00
54af5e8536
Merge pull request 'route-proxy: the trust gate names the binding it reads; the server names the gate (ADR 0099)' (#35) from multiple-fixes into main
jschoubben2026-09-21 23:58:48 +02:00
6fb2003b8d
route-proxy: the trust gate names the binding it reads and runs again when the authority moved; the server follows it (ADR 0099)
jschoubben2026-09-21 23:25:06 +02:00
64d62978f6
Merge pull request 'Multiple fixes: five modules keep their secrets from the vault (ADR 0094), the authority makes its own root (076), the builder on the host network, route-proxy declares its bases' (#34) from multiple-fixes into main
jschoubben2026-09-21 22:58:24 +02:00
ac651c7ac2
route-proxy: the trust container names its artifact
jschoubben2026-09-21 22:55:35 +02:00
1c964cd571
route-proxy: the trust gate retries with a timeout and checks for a certificate; its images are declared artifacts (ADRs 0096, 0097, 0098)
jschoubben2026-09-21 22:53:29 +02:00
28b8feebfc
The authority makes its own root at first start, and the proxy fetches it through a gate
jschoubben2026-09-21 22:26:28 +02:00
82256fcdb0
The builder runs on the machine's network: it copies images into the mesh's registry itself now
jschoubben2026-09-21 22:24:43 +02:00
facd41806d
Five modules keep their own secrets from the vault, under local names; route-proxy declares its bases
jschoubben2026-09-21 22:16:10 +02:00
126969a829
Merge pull request 'The controller's manifest lives in the controller's repository, not here (hq issue 072)' (#33) from feat/one-controller-manifest into main
jschoubben2026-09-21 19:23:18 +02:00
a514d9827c
The controller's manifest lives in the controller's repository, not here
jschoubben2026-09-21 15:17:47 +02:00
e0d34723f7
Merge pull request 'Six modules take their secrets from files; the rest say precisely why not (issue 041)' (#32) from feat/migration-blockers into main
jschoubben2026-09-21 13:48:46 +02:00
1289510538
mongodb names its secrets' owner: the image drops to its own user before it reads the password file
jschoubben2026-09-21 13:43:41 +02:00
50b639ff52
The env-file references to files the conversion removed go with them
jschoubben2026-09-21 12:43:41 +02:00
0b2f3bfbd3
grafana stays a declared exception until a bed exercises its admin password
jschoubben2026-09-21 12:31:59 +02:00
1a28e5aec6
Six modules take their secrets from files; the rest say precisely why not
jschoubben2026-09-21 12:29:25 +02:00
db597bcb71
Merge pull request 'The controller reads its credentials from files; every other env-file secret says why' (#31) from feat/secret-not-in-environment into main
jschoubben2026-09-21 11:59:08 +02:00
8647ea6671
The control plane's secret files belong to its own account (secrets-owner)
jschoubben2026-09-21 10:19:00 +02:00
32dec5f0c2
The controller reads its credentials from files; every other env-file secret says why
jschoubben2026-09-21 10:10:33 +02:00
d03520f4ed
Merge pull request 'Add mesh-vault; redis, postgres and lavinmq take their passwords from files' (#30) from feat/secrets-vault into main
jschoubben2026-09-21 10:03:12 +02:00
82e513a360
Add the mesh-vault module; redis takes its password from it
jschoubben2026-09-20 23:08:28 +02:00
8105ab6141
Merge pull request 'minio: pull image from quay.io (docker.io denies anonymous pulls)' (#29) from fix/minio-pull-from-quay into main
jschoubben2026-09-20 22:03:50 +02:00
4ce9de6f3a
Merge pull request 'Correct lavinmq Dockerfile's stale MESH_TOOL_MODULES comment (061 review)' (#28) from fix/lavinmq-dockerfile-comment into main
jschoubben2026-09-20 13:42:03 +02:00
43c9c973e2
Merge pull request 'The mesh builds its own catalogue (issue 060)' (#27) from feat/the-mesh-builds-its-catalogue into main
jschoubben2026-09-20 12:53:04 +02:00
965c58fe44
Defer minio from the buildable set too (issue 060)
jschoubben2026-09-18 02:51:09 +02:00
b8d390cbae
Defer model-usage and anthropic-manager from the buildable set (issue 060)
jschoubben2026-09-18 02:48:09 +02:00
e362fb951c
The rest of the catalogue becomes mesh-buildable (issue 060, batch 2)
jschoubben2026-09-18 02:14:09 +02:00
591b26f712
Ten migration-critical modules become mesh-buildable (issue 060)
jschoubben2026-09-18 02:02:21 +02:00
83a78b4fb3
Merge pull request 'Refs name the registry; lavinmq's runtime runs its provisioner (042/048/061)' (#26) from feat/refs-name-the-registry into main
jschoubben2026-09-18 01:00:43 +02:00
1891b09c65
lavinmq's runtime container runs its provisioner
jschoubben2026-09-17 23:54:56 +02:00
2dab3069d2
The builder names the registry by the binding again (ADR 0082)
jschoubben2026-09-17 23:05:25 +02:00
728922a016
Merge pull request 'Foundation modules claim a mesh-scoped seat named after their server' (#25) from multi-node/foundation-seats into main
jschoubben2026-09-17 02:15:59 +02:00
fccc1e6552
The foundation modules claim a mesh-scoped seat named after their server
jschoubben2026-09-17 02:13:26 +02:00
a24362b74b
Merge pull request 'The adopted broker declares its amqps bus port (5671) in listens' (#24) from fix/broker-declares-amqps-port into main
jschoubben2026-09-17 01:44:47 +02:00
06fd436eca
The adopted broker declares its amqps bus port (5671) in listens
jschoubben2026-09-17 01:01:54 +02:00
f155493926
Merge pull request 'Foundation modules adopted, and the mesh-controller/foundation rename' (#23) from feat/foundation-and-rename into main
jschoubben2026-09-16 23:22:47 +02:00
5e4dc3748e
Phase 3.2: the lavinmq module adopts mesh-broker instead of raising its own
jschoubben2026-09-16 21:24:13 +02:00