{ "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" } ] }