Seed the placement files from what each node runs today, so placement lives in the catalogue (issue 1126, ADR 0549 §4) #520

Merged
mesh-tools merged 1 commits from feat/1126-seed into main 2026-10-27 08:20:34 +00:00
4 changed files with 2256 additions and 0 deletions
+1113
View File
File diff suppressed because it is too large Load Diff
+269
View File
@@ -0,0 +1,269 @@
{
"v": 1,
"node": "g14",
"decided": {
"address": "10.10.0.4",
"account": "jochen",
"tunnel": {
"interface": "wg0",
"unit": "wg-quick@wg0",
"config": "/etc/wireguard/wg0.conf",
"port": 51820,
"mtu": 1380,
"address": "10.10.0.4/24",
"range": "10.10.0.0/24",
"public-key": "mq76YPW0FrExhAvt/ZG1SB2BK6/cPISKgXO53SEMazU="
}
},
"modules": [
{
"module": "adwaita"
},
{
"module": "asus-zephyrus-g14"
},
{
"module": "avahi"
},
{
"module": "blueman"
},
{
"module": "bluetooth"
},
{
"module": "ca-trust"
},
{
"module": "claude-code",
"has-mesh-wide": true,
"has-layer": true
},
{
"module": "clipmenu"
},
{
"module": "cups"
},
{
"module": "dbus"
},
{
"module": "dev-tools"
},
{
"module": "disk-load"
},
{
"module": "dmenu"
},
{
"module": "docker"
},
{
"module": "docker-compose"
},
{
"module": "dunst",
"has-layer": true
},
{
"module": "fail2ban"
},
{
"module": "feh"
},
{
"module": "flatpak"
},
{
"module": "fonts"
},
{
"module": "forticlient"
},
{
"module": "gnome-keyring"
},
{
"module": "go"
},
{
"module": "hostname",
"has-layer": true
},
{
"module": "i3"
},
{
"module": "i3status-rust"
},
{
"module": "kernel"
},
{
"module": "lemurs"
},
{
"module": "localization"
},
{
"module": "logrotate"
},
{
"module": "memory-pressure"
},
{
"module": "mesh-build-go",
"has-layer": true
},
{
"module": "mesh-build-node",
"bindings": {
"npm-package-registry": {
"node": "novox",
"module": "gitea"
}
}
},
{
"module": "mesh-cli"
},
{
"module": "mesh-files"
},
{
"module": "mesh-host",
"has-layer": true
},
{
"module": "mesh-mail-notifier"
},
{
"module": "mesh-provisioner-client"
},
{
"module": "mesh-reads"
},
{
"module": "mesh-wireguard"
},
{
"module": "netcheck"
},
{
"module": "networkmanager"
},
{
"module": "nextcloud-client"
},
{
"module": "nftables"
},
{
"module": "nm-applet"
},
{
"module": "node-env"
},
{
"module": "node-tools"
},
{
"module": "nodejs"
},
{
"module": "okioki",
"has-layer": true
},
{
"module": "openrazer"
},
{
"module": "pacman",
"has-layer": true
},
{
"module": "picom"
},
{
"module": "polychromatic"
},
{
"module": "power",
"has-mesh-wide": true,
"has-layer": true
},
{
"module": "powerlevel10k"
},
{
"module": "restic"
},
{
"module": "rofi"
},
{
"module": "screen-lock"
},
{
"module": "sensors"
},
{
"module": "slack"
},
{
"module": "snapd"
},
{
"module": "ssh-client"
},
{
"module": "sshd"
},
{
"module": "sudo"
},
{
"module": "systemd"
},
{
"module": "systemd-resolved"
},
{
"module": "time-sync"
},
{
"module": "triggerhappy"
},
{
"module": "xclip"
},
{
"module": "xdg",
"has-mesh-wide": true,
"has-layer": true
},
{
"module": "xorg"
},
{
"module": "xterm"
},
{
"module": "zsh"
},
{
"module": "zsh-autosuggestions"
},
{
"module": "zsh-syntax-highlighting"
}
],
"pins": {
"wildcard-resolution": {
"node": "novox",
"module": "dnsmasq"
}
}
}
+584
View File
@@ -0,0 +1,584 @@
{
"v": 1,
"node": "novox",
"decided": {
"endpoint": "142.132.152.141:51820",
"site": "hosting",
"hub": true,
"address": "10.10.0.1",
"public-domain": "novox.be",
"account": "jochens",
"agent-account": "nox",
"tunnel": {
"interface": "wg0",
"unit": "wg-quick@wg0",
"config": "/etc/wireguard/wg0.conf",
"port": 51820,
"address": "10.10.0.1/24",
"range": "10.10.0.0/24",
"public-key": "xW0ETQwyR9rHi2XSfOJrKkairE+Fp70FPNNcirqMixY="
},
"peer-names": {
"XT1l25Z0/YhRNQ8FQM+9XsAp7chx5MI0eLOOg1SUEXA=": "shanks",
"mq76YPW0FrExhAvt/ZG1SB2BK6/cPISKgXO53SEMazU=": "g14",
"zTKYP6Sz1hDwnwxIHgiGXYAeGcWbqti3tcSvKEA0Ew4=": "ace"
}
},
"modules": [
{
"module": "artifact-store-tools",
"has-mesh-wide": true,
"has-layer": true
},
{
"module": "avahi"
},
{
"module": "ca-trust"
},
{
"module": "claude-code",
"has-mesh-wide": true,
"has-layer": true
},
{
"module": "claude-licence-manager",
"bindings": {
"postgres-database": {
"node": "novox",
"module": "postgres"
},
"secret": {
"node": "novox",
"module": "mesh-vault"
}
}
},
{
"module": "dbus"
},
{
"module": "de-spiegel",
"ports": {
"35621": 20005
},
"bindings": {
"smtp": {
"node": "novox",
"module": "mailu"
}
}
},
{
"module": "desk-channel",
"has-layer": true
},
{
"module": "dev-tools"
},
{
"module": "disk-load"
},
{
"module": "distribution",
"layer": {
"ports": {
"5000": 5100
}
},
"has-layer": true
},
{
"module": "dnsmasq"
},
{
"module": "docker"
},
{
"module": "fail2ban"
},
{
"module": "gitea",
"ports": {
"3000": 20000
},
"bindings": {
"postgres-database": {
"node": "novox",
"module": "postgres"
},
"secret": {
"node": "novox",
"module": "mesh-vault"
}
},
"layer": {
"expose": {
"22": "anywhere"
},
"ports": {
"22": 222
}
},
"has-layer": true
},
{
"module": "go"
},
{
"module": "hostname",
"has-layer": true
},
{
"module": "invoicing",
"ports": {
"80": 20007,
"9000": 20008
},
"bindings": {
"mongodb-database": {
"node": "novox",
"module": "mongodb"
},
"s3-bucket": {
"node": "novox",
"module": "minio"
}
}
},
{
"module": "kernel",
"has-layer": true
},
{
"module": "keycloak",
"ports": {
"8080": 20009
},
"bindings": {
"postgres-database": {
"node": "novox",
"module": "postgres"
}
},
"has-layer": true
},
{
"module": "link2pay"
},
{
"module": "localization"
},
{
"module": "logrotate"
},
{
"module": "mailu",
"ports": {
"110": 110,
"143": 143,
"25": 25,
"4243": 20004,
"465": 465,
"587": 587,
"8080": 20010,
"993": 993,
"995": 995
},
"bindings": {
"postgres-database": {
"node": "novox",
"module": "postgres"
},
"secret": {
"node": "novox",
"module": "mesh-vault"
}
},
"has-mesh-wide": true,
"has-layer": true
},
{
"module": "mesh-build-go",
"has-layer": true
},
{
"module": "mesh-build-node",
"bindings": {
"npm-package-registry": {
"node": "novox",
"module": "gitea"
}
}
},
{
"module": "mesh-catalog",
"bindings": {
"postgres-database": {
"node": "novox",
"module": "postgres"
}
}
},
{
"module": "mesh-cli"
},
{
"module": "mesh-config"
},
{
"module": "mesh-controller"
},
{
"module": "mesh-delivery-checker"
},
{
"module": "mesh-delivery-forge-bridge"
},
{
"module": "mesh-delivery-gate",
"has-layer": true
},
{
"module": "mesh-delivery-indexer"
},
{
"module": "mesh-delivery-teller"
},
{
"module": "mesh-delivery-watchman"
},
{
"module": "mesh-files"
},
{
"module": "mesh-grants"
},
{
"module": "mesh-host",
"has-layer": true
},
{
"module": "mesh-issues"
},
{
"module": "mesh-knowledge",
"bindings": {
"postgres-database": {
"node": "novox",
"module": "postgres"
}
}
},
{
"module": "mesh-mail",
"bindings": {
"postgres-database": {
"node": "novox",
"module": "postgres"
},
"s3-bucket": {
"node": "novox",
"module": "minio"
}
},
"has-mesh-wide": true,
"has-layer": true
},
{
"module": "mesh-mail-reader",
"bindings": {
"postgres-database": {
"node": "novox",
"module": "postgres"
}
}
},
{
"module": "mesh-mail-web",
"bindings": {
"oidc-client": {
"node": "novox",
"module": "keycloak"
}
},
"layer": {
"endpoints": {
"web": {
"reach": "internal"
}
}
},
"has-layer": true
},
{
"module": "mesh-provisioner"
},
{
"module": "mesh-provisioner-client"
},
{
"module": "mesh-reads"
},
{
"module": "mesh-vault"
},
{
"module": "mesh-wireguard"
},
{
"module": "messenger",
"has-mesh-wide": true,
"has-layer": true
},
{
"module": "minio",
"ports": {
"9000": 20001,
"9001": 20002
}
},
{
"module": "mongodb",
"ports": {
"27017": 20006
}
},
{
"module": "mssql",
"layer": {
"ports": {
"1433": 4848
}
},
"has-layer": true
},
{
"module": "nats"
},
{
"module": "netcheck"
},
{
"module": "nextcloud",
"ports": {
"80": 20003
},
"bindings": {
"postgres-database": {
"node": "novox",
"module": "postgres"
},
"s3-bucket": {
"node": "novox",
"module": "minio"
}
}
},
{
"module": "nftables"
},
{
"module": "node-env"
},
{
"module": "node-tools"
},
{
"module": "nodejs"
},
{
"module": "only-office"
},
{
"module": "pacman",
"has-layer": true
},
{
"module": "photos",
"ports": {
"9000": 20011
},
"bindings": {
"mongodb-database": {
"node": "novox",
"module": "mongodb"
},
"s3-bucket": {
"node": "novox",
"module": "minio"
}
}
},
{
"module": "postgres",
"layer": {
"ports": {
"5432": 6852
}
},
"has-layer": true
},
{
"module": "power",
"has-mesh-wide": true,
"has-layer": true
},
{
"module": "powerlevel10k"
},
{
"module": "records",
"has-mesh-wide": true,
"has-layer": true
},
{
"module": "restic",
"layer": {
"places": {
"repository": "/home/restic"
}
},
"has-layer": true
},
{
"module": "route-proxy"
},
{
"module": "ssh-client"
},
{
"module": "sshd"
},
{
"module": "step-ca"
},
{
"module": "sudo"
},
{
"module": "systemd"
},
{
"module": "systemd-networkd"
},
{
"module": "telegram"
},
{
"module": "time-sync"
},
{
"module": "umami",
"bindings": {
"postgres-database": {
"node": "novox",
"module": "postgres"
},
"secret": {
"node": "novox",
"module": "mesh-vault"
}
},
"layer": {
"expose": {
"3000": "mesh"
},
"ports": {
"3000": 1212
}
},
"has-layer": true
},
{
"module": "website",
"ports": {
"8080": 20012
}
},
{
"module": "zsh",
"has-layer": true
},
{
"module": "zsh-autosuggestions"
},
{
"module": "zsh-syntax-highlighting"
}
],
"holds": [
{
"claim": "git",
"scope": "mesh",
"module": "gitea",
"site": "hosting"
},
{
"claim": "mesh-artifact-store",
"scope": "mesh",
"module": "distribution",
"site": "hosting"
},
{
"claim": "mesh-broker",
"scope": "mesh",
"module": "nats",
"site": "hosting"
},
{
"claim": "mesh-catalog",
"scope": "mesh",
"module": "mesh-catalog",
"site": "hosting"
},
{
"claim": "mesh-config",
"scope": "mesh",
"module": "mesh-config",
"site": "hosting"
},
{
"claim": "mesh-controller",
"scope": "mesh",
"module": "mesh-controller",
"site": "hosting"
},
{
"claim": "mesh-delivery",
"scope": "mesh",
"module": "mesh-delivery-gate",
"site": "hosting"
},
{
"claim": "mesh-dns-resolver",
"scope": "mesh",
"module": "dnsmasq",
"site": "hosting"
},
{
"claim": "mesh-provisioner",
"scope": "mesh",
"module": "mesh-provisioner",
"site": "hosting"
},
{
"claim": "mesh-store",
"scope": "mesh",
"module": "postgres",
"site": "hosting"
},
{
"claim": "mesh-vault",
"scope": "mesh",
"module": "mesh-vault",
"site": "hosting"
},
{
"claim": "npm-package-registry",
"scope": "mesh",
"module": "gitea",
"site": "hosting"
}
]
}
+290
View File
@@ -0,0 +1,290 @@
{
"v": 1,
"node": "shanks",
"decided": {
"site": "home",
"address": "10.10.0.3",
"account": "jochen",
"tunnel": {
"interface": "wg0",
"unit": "wg-quick@wg0",
"config": "/etc/wireguard/wg0.conf",
"port": 51820,
"address": "10.10.0.3/24",
"range": "10.10.0.0/24",
"public-key": "XT1l25Z0/YhRNQ8FQM+9XsAp7chx5MI0eLOOg1SUEXA="
}
},
"modules": [
{
"module": "adwaita"
},
{
"module": "avahi"
},
{
"module": "blueman"
},
{
"module": "bluetooth"
},
{
"module": "brother",
"bindings": {
"s3-bucket": {
"node": "novox",
"module": "minio"
}
},
"has-layer": true
},
{
"module": "buildah"
},
{
"module": "ca-trust"
},
{
"module": "claude-code",
"has-mesh-wide": true,
"has-layer": true
},
{
"module": "clipmenu"
},
{
"module": "cups"
},
{
"module": "dbus"
},
{
"module": "dev-tools"
},
{
"module": "disk-load"
},
{
"module": "dmenu"
},
{
"module": "docker"
},
{
"module": "docker-compose"
},
{
"module": "dunst"
},
{
"module": "fail2ban"
},
{
"module": "feh"
},
{
"module": "flatpak"
},
{
"module": "fonts"
},
{
"module": "forticlient"
},
{
"module": "gnome-keyring"
},
{
"module": "go"
},
{
"module": "hostname",
"has-layer": true
},
{
"module": "i3"
},
{
"module": "i3status-rust"
},
{
"module": "kernel",
"has-layer": true
},
{
"module": "lab",
"bindings": {
"npm-package-registry": {
"node": "novox",
"module": "gitea"
}
},
"has-mesh-wide": true,
"has-layer": true
},
{
"module": "lemurs"
},
{
"module": "localization"
},
{
"module": "logrotate"
},
{
"module": "mesh-build-go",
"has-layer": true
},
{
"module": "mesh-build-image"
},
{
"module": "mesh-build-node",
"bindings": {
"npm-package-registry": {
"node": "novox",
"module": "gitea"
}
}
},
{
"module": "mesh-cli"
},
{
"module": "mesh-delivery-builder"
},
{
"module": "mesh-delivery-view"
},
{
"module": "mesh-files"
},
{
"module": "mesh-host",
"has-layer": true
},
{
"module": "mesh-mail-notifier"
},
{
"module": "mesh-provisioner-client"
},
{
"module": "mesh-reads"
},
{
"module": "mesh-wireguard"
},
{
"module": "mounts",
"has-layer": true
},
{
"module": "netcheck"
},
{
"module": "networkmanager"
},
{
"module": "nextcloud-client"
},
{
"module": "nftables"
},
{
"module": "nm-applet"
},
{
"module": "node-env"
},
{
"module": "node-tools"
},
{
"module": "nodejs"
},
{
"module": "openrazer"
},
{
"module": "pacman",
"has-layer": true
},
{
"module": "picom"
},
{
"module": "polychromatic"
},
{
"module": "power",
"has-mesh-wide": true,
"has-layer": true
},
{
"module": "powerlevel10k"
},
{
"module": "restic"
},
{
"module": "rofi"
},
{
"module": "screen-lock"
},
{
"module": "slack"
},
{
"module": "snapd"
},
{
"module": "ssh-client"
},
{
"module": "sshd"
},
{
"module": "sudo"
},
{
"module": "systemd"
},
{
"module": "systemd-resolved"
},
{
"module": "time-sync"
},
{
"module": "xclip"
},
{
"module": "xdg",
"has-mesh-wide": true,
"has-layer": true
},
{
"module": "xorg"
},
{
"module": "xterm"
},
{
"module": "zsh"
},
{
"module": "zsh-autosuggestions"
},
{
"module": "zsh-syntax-highlighting"
}
],
"pins": {
"wildcard-resolution": {
"node": "novox",
"module": "dnsmasq"
}
}
}