c1a65e2354
nodered: the sidecar dials the port it was given
jschoubben2026-09-29 23:50:11 +02:00
a5e21cb438
grafana: its directories are placed, its admin password is a file, and it runs the build in use
jschoubben2026-09-29 23:43:00 +02:00
fe0ed3b74e
influxdb: place its directories, hand secrets over as files, name its UI
jschoubben2026-09-29 23:42:18 +02:00
75eee9d4a0
jackett: its config dir is placed, and its tools find their own key
jschoubben2026-09-29 23:41:21 +02:00
0c91e08bad
nodered: its settings are files the mesh writes, and its editor is locked
jschoubben2026-09-29 23:41:18 +02:00
37c212d5b4
unifi: placed data, mesh-assigned ports, an https route, and its password as a file
jschoubben2026-09-29 23:39:50 +02:00
718fb12ef7
icecast: its passwords are a file the mesh writes, not the image's environment
jschoubben2026-09-29 23:39:36 +02:00
a32394ec22
mosquitto: its directories are placed, not stated, and it runs the build in use
jschoubben2026-09-29 23:05:41 +02:00
8064e5da8f
Merge pull request 'searxng: its settings are a file the mesh writes, not the image's defaults' (#143) from feat/searxng-settings-as-a-file into main
mesh-admin2026-09-29 20:45:13 +00:00
63a255c5cb
searxng: bind its route where its state now lives
jschoubben2026-09-29 22:41:56 +02:00
7ad1fbd5c6
searxng: its settings are a file the mesh writes, not the image's defaults
jschoubben2026-09-29 22:33:38 +02:00
67f5f4cffd
Merge pull request 'ca-trust: a machine trusts the mesh's authority because a module put its root there' (#142) from feat/ca-trust into main
jschoubben2026-09-29 14:06:36 +00:00
8797335fbc
ca-trust: a machine trusts the mesh's authority because a module put its root there
jschoubben2026-09-29 15:07:40 +02:00
53dc108603
Merge pull request 'Remove the network-checker module: it does not do what was decided' (#141) from chore/remove-the-network-checker-module into main
mesh-admin2026-09-29 12:43:34 +00:00
ebf5ba2d4c
Remove the network-checker module: it does not do what was decided
jschoubben2026-09-29 14:43:25 +02:00
bbac08a7d2
Merge pull request 'A network-checker module: dial what the mesh claims, from where the callers are' (#140) from feat/a-network-checker-module into main
mesh-admin2026-09-29 11:44:37 +00:00
784a5a6514
A network-checker module: dial what the mesh claims, from where the callers are
jschoubben2026-09-29 13:44:16 +02:00
0c31499fb0
Merge pull request 'Every module names its endpoints, and every route names the one it serves' (#139) from feat/modules-name-their-endpoints into main
mesh-admin2026-09-29 09:51:56 +00:00
f118344246
Every module names its endpoints, and every route names the one it serves
jschoubben2026-09-29 11:51:39 +02:00
822df220ab
Merge pull request 'A routed module listens from the mesh, not from anywhere' (#138) from fix/a-routed-module-listens-from-the-mesh into main
mesh-admin2026-09-29 00:58:39 +00:00
9eb1265bc8
A routed module listens from the mesh, not from anywhere
jschoubben2026-09-29 02:54:10 +02:00
41cfc70b53
Merge pull request 'The resolver declares both protocols it answers on' (#137) from fix/the-resolver-declares-both-protocols into main
mesh-admin2026-09-28 22:04:19 +00:00
acedc5d9d9
The resolver declares both protocols it answers on
jschoubben2026-09-28 23:53:03 +02:00
521a8dd1e2
Merge pull request 'sshd: the daemon it owns starts at boot' (#136) from fix/sshd-declares-the-daemon-it-owns into main
mesh-admin2026-09-28 19:43:29 +00:00
e145e2236c
sshd: the daemon it owns starts at boot
jschoubben2026-09-28 21:43:27 +02:00
4d7e37e319
Merge pull request 'fail2ban bans through an action every machine has' (#135) from fix/fail2ban-bans-through-what-every-machine-has into main
mesh-admin2026-09-28 18:48:26 +00:00
026421fd6e
fail2ban: ban through an action every machine has
jschoubben2026-09-28 20:48:24 +02:00
af89bb11ff
Merge pull request 'fail2ban declares the log its own recidive jail reads' (#134) from fix/fail2ban-declares-the-log-its-own-jail-reads into main
mesh-admin2026-09-28 18:45:34 +00:00
7c18cdbd39
fail2ban: declare the log its own recidive jail reads
jschoubben2026-09-28 20:45:32 +02:00
4fb16b2e6b
Merge pull request 'fail2ban restarts when the log declaration changes' (#133) from fix/fail2ban-restarts-on-its-log-target into main
mesh-admin2026-09-28 18:42:44 +00:00
c5af8635c8
fail2ban: restart when the log declaration changes
jschoubben2026-09-28 20:42:42 +02:00
87366c5f36
Merge pull request 'fail2ban declares where it logs, so the recidive jail has a file to read' (#132) from fix/fail2ban-declares-where-it-logs into main
mesh-admin2026-09-28 18:41:16 +00:00
f8ca36aacf
fail2ban: declare where it logs, so the recidive jail has a file to read
jschoubben2026-09-28 20:41:09 +02:00
812355bf31
Merge pull request 'The catalogue hears what it missed' (#131) from feat/the-catalogue-hears-what-it-missed into main
mesh-admin2026-09-28 14:08:48 +00:00
016ddb2b3a
The catalogue hears what it missed
jschoubben2026-09-28 16:08:46 +02:00
ea17bf46d2
Merge pull request 'The catalogue prepares its own schema instead of migrating at start' (#130) from feat/the-catalogue-prepares-its-own-schema into main
mesh-admin2026-09-28 13:40:30 +00:00
4258f01614
The catalogue prepares its own schema instead of migrating at start
jschoubben2026-09-28 15:40:28 +02:00
4d9b4fdfa6
Merge pull request 'The catalogue declares the event it emits on starting' (#129) from fix/the-catalogue-declares-the-event-it-emits into main
mesh-admin2026-09-28 07:49:06 +00:00
eff11b1d4d
The catalogue declares the event it emits on starting
jschoubben2026-09-28 09:49:03 +02:00
4ead13d4d4
Merge pull request 'A merge says which files it changed' (#128) from feat/a-merge-rebuilds-what-it-changed into main
mesh-admin2026-09-28 07:20:05 +00:00
3b77dde666
A merge says which files it changed
jschoubben2026-09-28 09:17:38 +02:00
5ea4961980
Merge pull request 'A merge older than the watching is history, not news' (#127) from fix/a-merge-older-than-the-watching-is-history into main
mesh-admin2026-09-28 03:08:22 +00:00
2b8a668d06
A merge older than the watching is history, not news
jschoubben2026-09-28 05:08:20 +02:00
719fb1e025
Merge pull request 'A merge the forge announces is said in its log' (#126) from fix/a-merge-announced-is-said into main
mesh-admin2026-09-28 02:44:19 +00:00
ac5630bee2
A merge the forge announces is said in its log
jschoubben2026-09-28 04:44:17 +02:00
1c995fa9fc
Merge pull request 'The forge watches every repository, not the administrator's own' (#125) from fix/the-forge-watches-every-repository into main
mesh-admin2026-09-28 02:31:25 +00:00
d70cb18ea0
The forge watches every repository, not the administrator's own
jschoubben2026-09-28 04:31:20 +02:00
1d71787896
Merge pull request 'The forge announces every merge, whoever made it' (#124) from feat/the-forge-announces-every-merge into main
mesh-admin2026-09-28 01:03:48 +00:00
eb62289f89
The forge announces every merge, whoever made it
jschoubben2026-09-28 02:54:48 +02:00
f5969a2f9f
Merge pull request 'nats declares the certificate directory it mounts' (#123) from feat/nats-serves-the-meshs-certificate into main
jschoubben2026-09-27 22:31:20 +00:00
7f3d259cf5
nats: drop the access to a certificate directory it no longer mounts
jschoubben2026-09-28 00:16:23 +02:00
721149eda1
nats declares the certificate directory it mounts
jschoubben2026-09-28 00:15:59 +02:00
8e27bc1e36
Merge pull request 'nats serves the mesh's existing broker certificate' (#122) from feat/nats-serves-the-meshs-certificate into main
jschoubben2026-09-27 22:07:29 +00:00
b1b18ae390
Merge pull request 'nats declares the upstream image it is built from' (#121) from fix/nats-declares-its-base into main
jschoubben2026-09-27 21:40:50 +00:00
3f0a174392
nats declares the upstream image it is built from
jschoubben2026-09-27 23:40:16 +02:00
c0edebefb9
Merge pull request 'lavinmq, amqp-ping and amqp-email-forwarder leave the catalogue' (#120) from feat/amqp-leaves-the-catalogue into main
jschoubben2026-09-27 21:30:19 +00:00
b9605a6e3b
lavinmq, amqp-ping and amqp-email-forwarder leave the catalogue
jschoubben2026-09-27 23:27:24 +02:00
dca84d3bb4
Merge pull request 'lavinmq holds mesh-broker again, now the check reads the store' (#119) from restore/broker-claim into main
jschoubben2026-09-27 20:24:22 +00:00
9f9ce92d0f
lavinmq holds mesh-broker again, now the check reads the store
jschoubben2026-09-27 22:23:37 +02:00
6e5b2557ba
Merge pull request 'Undo: claiming mesh-broker made lavinmq unbuildable' (#118) from revert/broker-seat-claim into main
jschoubben2026-09-27 19:53:49 +00:00
f97b7dd544
Undo: lavinmq cannot hold mesh-broker, and claiming it makes lavinmq unbuildable
jschoubben2026-09-27 21:27:55 +02:00
5f5798ec8a
Merge pull request 'lavinmq keeps mesh-broker until something else can take it' (#117) from fix/broker-seat-must-stay-held into main
jschoubben2026-09-27 19:17:45 +00:00
42550dbe43
lavinmq keeps mesh-broker until something else can take it
jschoubben2026-09-27 21:13:13 +02:00
51713dd631
Merge pull request 'The Go base has to be 1.26 for what compiles the controller's code' (#116) from fix/go-126-base into main
jschoubben2026-09-27 19:00:38 +00:00
4cda964a43
The Go base has to be 1.26 for what compiles the controller's code
jschoubben2026-09-27 20:58:09 +02:00
adb02da136
Merge pull request 'The nats module, and every manifest's event names made local' (#115) from feat/nats-genesis into main
jschoubben2026-09-27 17:31:04 +00:00
06954b5a70
Merge main: the trunk's seat names, this branch's event names
jschoubben2026-09-27 18:25:57 +02:00
3d7d896014
Merge pull request 'fail2ban never bans a tunnel peer: ignoreip names the mesh range' (#113) from fix/fail2ban-ignores-the-mesh-range into main
jschoubben2026-09-27 14:55:55 +00:00
278610c0c3
fail2ban never bans a tunnel peer: ignoreip names the mesh range
jschoubben2026-09-27 16:55:34 +02:00
b58a3b487d
A build's outcome belongs to the role, not to the module holding it
jschoubben2026-09-27 15:37:21 +02:00
7b06a7a408
Event names are local now, in the manifests and in the code
jschoubben2026-09-27 14:42:28 +02:00
f0a6ce8d4a
Merge pull request 'Rename seat claims to mesh-*/node-*; retire verdaccio (ADR 0121)' (#112) from feat/system-seats-named-by-scope into main
jschoubben2026-09-27 12:32:29 +00:00
6bedcd3f21
Rename seat claims to the mesh-*/node-* convention; retire verdaccio (ADR 0121)
jschoubben2026-09-27 14:30:56 +02:00
a093c88c32
nats declares its own server settings, and where the mesh's users go
jschoubben2026-09-27 02:50:35 +02:00
f67f0ca9bc
Merge pull request 'dnsmasq owns its resolver format: node-zones is a template (ADR 0120)' (#111) from feat/roster-facts-are-templates into main
jschoubben2026-09-26 23:51:29 +00:00
968473219a
dnsmasq owns its resolver format: node-zones is a template, not a controller formatter (ADR 0120)
jschoubben2026-09-27 01:33:28 +02:00
ad219beee2
Merge pull request 'The uplink's managers are modules: networkmanager, systemd-networkd, dhcpcd (hq ADR 0117)' (#110) from feat/the-uplink-modules into main
jschoubben2026-09-26 23:00:30 +00:00
fd09b1a50e
review: the uplink managers are the machine's — no state on their services, none for dhcpcd; comments corrected
jochen2026-09-27 00:07:27 +02:00
7aea08d6c3
dhcpcd's mesh block goes at the start: lines after an interface line are that interface's
jochen2026-09-26 23:48:20 +02:00
23d735a0bf
The uplink's managers are modules (hq ADR 0117)
jochen2026-09-26 23:47:31 +02:00
226eab4c6f
Merge pull request 'dnsmasq: the operator's own names have a home the mesh never rewrites' (#109) from feat/dnsmasq-has-a-home-for-operator-names into main
jschoubben2026-09-26 20:43:53 +00:00
bb8f2e76a9
dnsmasq: the operator's own names have a home the mesh never rewrites
jschoubben2026-09-26 22:43:29 +02:00
ea7f6796e8
lavinmq is a provider, not foundation
jschoubben2026-09-26 21:08:40 +02:00
372450851f
Merge pull request 'mssql: its data is placed — the last /services placement retires' (#108) from feat/mssql-data-is-placed into main
jschoubben2026-09-26 18:36:16 +00:00
f4e4e12c99
mssql: its data is placed — the last /services placement retires
jschoubben2026-09-26 20:36:03 +02:00
fd9be011c0
Merge pull request 'sshd: the operator's door is a module' (#107) from feat/sshd-module into main
jschoubben2026-09-26 18:15:08 +00:00
a85b0ee346
sshd: the operator's door is a module
jschoubben2026-09-26 20:14:54 +02:00
34243c9e34
Merge pull request 'dnsmasq: the runtime's DNS is written into daemon.json, never over it' (#106) from fix/dnsmasq-writes-into-daemon-json into main
jschoubben2026-09-26 18:12:20 +00:00
870a541072
dnsmasq: the runtime's DNS is written into daemon.json, never over it
jschoubben2026-09-26 20:12:06 +02:00
9b063a77b2
nats: the module, and an image that reloads in place
jschoubben2026-09-26 19:34:14 +02:00
a59750fa28
Merge pull request 'mailu: the smtp provision serves the name its certificate answers to' (#105) from fix/smtp-serves-its-tls-name into main
jschoubben2026-09-26 17:27:06 +00:00
81592a3b2c
mailu: the smtp provision serves the name its certificate answers to
jschoubben2026-09-26 19:26:53 +02:00
705ceec1e7
Merge pull request 'Six modules name no /var/lib: the root is a place, the maps reference it' (#104) from feat/six-modules-name-no-var-lib into main
jschoubben2026-09-26 16:21:00 +00:00
afdd149ab7
Six modules name no /var/lib: the root is a place, the maps reference it
jschoubben2026-09-26 18:20:47 +02:00
dde8b15483
Merge pull request 'mailu: seventeen data directories are placed, not stated' (#103) from feat/mailu-dirs-are-placed into main
jschoubben2026-09-26 16:07:24 +00:00
8a046be198
mailu: seventeen data directories are placed, not stated
jschoubben2026-09-26 18:07:11 +02:00
668278bde4
Merge pull request 'nextcloud: it lives under its own name, and html is placed' (#102) from feat/nextcloud-lives-under-its-own-name into main
jschoubben2026-09-26 16:05:41 +00:00