diff --git a/placement/ace.json b/placement/ace.json deleted file mode 100644 index b82ce55f..00000000 --- a/placement/ace.json +++ /dev/null @@ -1,1113 +0,0 @@ -{ - "v": 1, - "node": "ace", - "decided": { - "site": "home", - "address": "10.10.0.2", - "public-domain": "zurag.be", - "account": "ace", - "tunnel": { - "interface": "wg0", - "unit": "wg-quick@wg0", - "config": "/etc/wireguard/wg0.conf", - "port": 51820, - "address": "10.10.0.2/24", - "range": "10.10.0.0/24", - "public-key": "zTKYP6Sz1hDwnwxIHgiGXYAeGcWbqti3tcSvKEA0Ew4=" - } - }, - "modules": [ - { - "module": "avahi" - }, - { - "module": "baserow", - "ports": { - "80": 20011 - }, - "bindings": { - "postgres-database": { - "node": "ace", - "module": "postgres" - } - }, - "layer": { - "endpoints": { - "web": { - "label": "baserow", - "reach": "public" - } - } - }, - "has-layer": true - }, - { - "module": "bazarr", - "ports": { - "6767": 20020 - }, - "has-mesh-wide": true, - "layer": { - "accesses": { - "anime": "/storage/media/anime", - "downloads": "/storage/downloads", - "movies": "/storage/media/movies", - "series": "/storage/media/series" - }, - "endpoints": { - "web": { - "label": "subs", - "reach": "public" - } - }, - "places": { - "config": { - "owner": "1001:2000", - "path": "/var/lib/bazarr/config" - } - } - }, - "has-layer": true, - "mesh-wide-values": { - "pgid": 1000, - "puid": 1000 - }, - "values": { - "pgid": 2000, - "puid": 1001 - } - }, - { - "module": "bookshelf", - "ports": { - "8787": 20021 - }, - "has-mesh-wide": true, - "layer": { - "accesses": { - "books": "/data/media/books", - "downloads": "/data/downloads" - }, - "endpoints": { - "web": { - "label": "books", - "reach": "public" - } - }, - "places": { - "config": { - "owner": "1000:1000", - "path": "/var/lib/bookshelf/config" - } - } - }, - "has-layer": true, - "mesh-wide-values": { - "pgid": 1000, - "puid": 1000 - }, - "values": { - "downloads": { - "jackett-api": { - "adopt-hosts": [ - "jackett" - ] - }, - "nzbget-api": { - "name": "NZBGet" - }, - "qbittorrent-api": { - "name": "qBitTorrent" - } - }, - "pgid": 1000, - "puid": 1000 - } - }, - { - "module": "buildah" - }, - { - "module": "ca-trust" - }, - { - "module": "car-hunter", - "ports": { - "3000": 20016 - }, - "bindings": { - "oidc-client": { - "node": "novox", - "module": "keycloak" - }, - "postgres-database": { - "node": "ace", - "module": "postgres" - } - }, - "layer": { - "endpoints": { - "web": { - "label": "car-hunter", - "reach": "public" - } - } - }, - "has-layer": true - }, - { - "module": "claude-code", - "has-mesh-wide": true, - "has-layer": true - }, - { - "module": "dbus" - }, - { - "module": "dev-tools" - }, - { - "module": "disk-load" - }, - { - "module": "dnsmasq" - }, - { - "module": "docker" - }, - { - "module": "f1-circuits", - "ports": { - "8000": 20007 - }, - "layer": { - "endpoints": { - "web": { - "label": "f1-circuits", - "reach": "public" - } - } - }, - "has-layer": true - }, - { - "module": "fail2ban" - }, - { - "module": "go" - }, - { - "module": "grafana", - "ports": { - "3000": 20012 - }, - "bindings": { - "influxdb-api": { - "node": "ace", - "module": "influxdb" - }, - "oidc-client": { - "node": "novox", - "module": "keycloak" - } - }, - "layer": { - "endpoints": { - "web": { - "label": "grafana", - "reach": "public" - } - } - }, - "has-layer": true - }, - { - "module": "home-assistant", - "bindings": { - "mqtt-topic": { - "node": "ace", - "module": "mosquitto" - } - }, - "layer": { - "endpoints": { - "sonos-events": { - "reach": "public" - }, - "web": { - "label": "home-assistant", - "reach": "both" - }, - "webrtc": { - "reach": "public" - } - }, - "places": { - "config": { - "path": "/var/lib/home-assistant/config" - } - } - }, - "has-layer": true - }, - { - "module": "hostname", - "has-layer": true - }, - { - "module": "icecast", - "ports": { - "8000": 20005 - }, - "bindings": { - "secret": { - "node": "novox", - "module": "mesh-vault" - } - }, - "layer": { - "endpoints": { - "stream": { - "label": "icecast", - "reach": "public" - } - } - }, - "has-layer": true - }, - { - "module": "influxdb", - "layer": { - "endpoints": { - "api": { - "label": "influx", - "port": 8086, - "reach": "internal" - } - } - }, - "has-layer": true - }, - { - "module": "jackett", - "ports": { - "9117": 20004 - }, - "has-mesh-wide": true, - "layer": { - "endpoints": { - "web": { - "label": "indexers", - "reach": "public" - } - } - }, - "has-layer": true, - "mesh-wide-values": { - "pgid": 1000, - "puid": 1000 - } - }, - { - "module": "kernel", - "has-layer": true - }, - { - "module": "kometa", - "layer": { - "places": { - "config": { - "owner": "1000:1000", - "path": "/var/lib/kometa/config" - } - } - }, - "has-layer": true, - "values": { - "libraries": { - "Formula 1": { - "metadata_files": [ - { - "url": "https://f1-circuits.zurag.be/kometa/formula-1-metadata.yml" - } - ] - } - }, - "pgid": 1000, - "puid": 1000 - } - }, - { - "module": "letta", - "ports": { - "8283": 20002 - }, - "bindings": { - "postgres-database": { - "node": "ace", - "module": "postgres" - } - }, - "layer": { - "endpoints": { - "web": { - "label": "letta", - "reach": "public" - } - } - }, - "has-layer": true - }, - { - "module": "lidarr", - "ports": { - "8686": 20022 - }, - "has-mesh-wide": true, - "layer": { - "accesses": { - "downloads": "/storage/downloads", - "music": "/storage/media/music" - }, - "endpoints": { - "web": { - "label": "lidarr", - "reach": "both" - } - }, - "places": { - "config": { - "owner": "1001:2000", - "path": "/var/lib/lidarr/config" - }, - "custom-cont-init": { - "path": "/var/lib/lidarr/custom-cont-init" - }, - "custom-services": { - "path": "/var/lib/lidarr/custom-services" - } - } - }, - "has-layer": true, - "mesh-wide-values": { - "pgid": 1000, - "puid": 1000 - }, - "values": { - "downloads": { - "jackett-api": { - "adopt-hosts": [ - "indexers.zurag.be", - "jackett" - ] - }, - "nzbget-api": { - "name": "NZBGet" - }, - "qbittorrent-api": { - "name": "qBitTorrent" - } - }, - "pgid": 2000, - "puid": 1001 - } - }, - { - "module": "localization" - }, - { - "module": "logrotate" - }, - { - "module": "matrix", - "ports": { - "6167": 20008, - "80": 20009 - }, - "layer": { - "endpoints": { - "client": { - "label": "matrix", - "reach": "public" - }, - "web": { - "label": "element", - "reach": "public" - } - } - }, - "has-layer": true - }, - { - "module": "media-importer", - "layer": { - "accesses": { - "downloads": "/storage/downloads" - }, - "places": { - "library": "/storage/media/poc" - } - }, - "has-layer": true - }, - { - "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-assigner" - }, - { - "module": "mesh-files" - }, - { - "module": "mesh-host", - "has-layer": true - }, - { - "module": "mesh-provisioner-client" - }, - { - "module": "mesh-reads" - }, - { - "module": "mesh-wireguard" - }, - { - "module": "mosquitto", - "layer": { - "endpoints": { - "mqtt": { - "port": 1883, - "reach": "public" - }, - "mqtt-websockets": { - "port": 8081, - "reach": "internal" - } - } - }, - "has-layer": true - }, - { - "module": "mssql", - "layer": { - "endpoints": { - "database": { - "port": 4848, - "reach": "internal" - } - } - }, - "has-layer": true - }, - { - "module": "n8n", - "ports": { - "5678": 20025 - }, - "bindings": { - "postgres-database": { - "node": "ace", - "module": "postgres" - } - }, - "layer": { - "accesses": { - "media": "/storage/media" - }, - "endpoints": { - "web": { - "label": "n8n", - "reach": "public" - } - } - }, - "has-layer": true - }, - { - "module": "netcheck" - }, - { - "module": "networkmanager" - }, - { - "module": "nfs-server", - "has-layer": true - }, - { - "module": "nftables" - }, - { - "module": "node-env" - }, - { - "module": "node-tools" - }, - { - "module": "nodejs" - }, - { - "module": "nodered", - "ports": { - "1880": 20006 - }, - "bindings": { - "mqtt-topic": { - "node": "ace", - "module": "mosquitto" - } - }, - "layer": { - "endpoints": { - "web": { - "label": "nodered", - "reach": "public" - } - } - }, - "has-layer": true - }, - { - "module": "nzbgeek" - }, - { - "module": "nzbget", - "ports": { - "6789": 20017 - }, - "has-mesh-wide": true, - "layer": { - "accesses": { - "downloads": "/storage/downloads" - }, - "endpoints": { - "web": { - "label": "nzbget", - "reach": "internal" - } - }, - "places": { - "config": { - "owner": "1001:2000", - "path": "/var/lib/nzbget/config" - } - } - }, - "has-layer": true, - "mesh-wide-values": { - "pgid": 1000, - "puid": 1000 - }, - "values": { - "max-download-speed": 10, - "options": { - "UMask": "0000" - }, - "pgid": 2000, - "puid": 1001, - "username": "nzbget" - } - }, - { - "module": "ombi", - "ports": { - "3579": 20024 - }, - "has-mesh-wide": true, - "layer": { - "endpoints": { - "web": { - "label": "ombi", - "reach": "public" - } - }, - "places": { - "config": { - "owner": "1001:2000", - "path": "/var/lib/ombi/config" - } - } - }, - "has-layer": true, - "mesh-wide-values": { - "pgid": 1000, - "puid": 1000 - }, - "values": { - "pgid": 2000, - "puid": 1001 - } - }, - { - "module": "pacman", - "has-layer": true - }, - { - "module": "plex", - "has-mesh-wide": true, - "layer": { - "accesses": { - "anime": "/storage/media/anime", - "audiobooks": "/storage/media/audiobooks", - "formula-1": "/storage/media/formula-1", - "live-shows": "/storage/media/live-shows", - "movies": "/storage/media/movies", - "music": "/storage/media/music", - "series": "/storage/media/series", - "sport-games": "/storage/media/sport-games" - }, - "endpoints": { - "gdm-1": { - "reach": "public" - }, - "gdm-2": { - "reach": "public" - }, - "gdm-3": { - "reach": "public" - }, - "gdm-4": { - "reach": "public" - }, - "stream": { - "label": "plex" - } - }, - "expose": { - "32400": "anywhere" - }, - "places": { - "config": { - "owner": "1000:1000", - "path": "/mnt/plex/config" - }, - "data": { - "owner": "1000:1000", - "path": "/mnt/plex/data" - }, - "previews": { - "owner": "1000:1000", - "path": "/storage/plex-media" - }, - "transcode": { - "owner": "1000:1000", - "path": "/mnt/plex/temp" - } - } - }, - "has-layer": true, - "mesh-wide-values": { - "pgid": 1000, - "puid": 1000 - }, - "values": { - "pgid": 1000, - "puid": 1000 - } - }, - { - "module": "postgres", - "layer": { - "endpoints": { - "database": { - "port": 5434, - "reach": "internal" - } - } - }, - "has-layer": true - }, - { - "module": "power", - "has-mesh-wide": true, - "has-layer": true - }, - { - "module": "powerlevel10k" - }, - { - "module": "qbittorrent", - "has-mesh-wide": true, - "layer": { - "accesses": { - "downloads": "/storage/downloads" - }, - "endpoints": { - "peers": { - "reach": "public" - }, - "peers-udp": { - "reach": "public" - }, - "web": { - "label": "tor", - "reach": "public" - } - }, - "places": { - "config": { - "owner": "1001:2000", - "path": "/var/lib/qbittorrent/config" - } - } - }, - "has-layer": true, - "mesh-wide-values": { - "pgid": 1000, - "puid": 1000 - }, - "values": { - "max-download-speed": 10, - "pgid": 2000, - "puid": 1001, - "username": "admin" - } - }, - { - "module": "radarr", - "ports": { - "7878": 20019 - }, - "has-mesh-wide": true, - "layer": { - "accesses": { - "downloads": "/storage/downloads", - "movies": "/storage/media/movies" - }, - "endpoints": { - "web": { - "label": "movies", - "reach": "public" - } - }, - "places": { - "config": { - "owner": "1001:2000", - "path": "/var/lib/radarr/config" - } - } - }, - "has-layer": true, - "mesh-wide-values": { - "pgid": 1000, - "puid": 1000 - }, - "values": { - "downloads": { - "jackett-api": { - "adopt-hosts": [ - "jackett" - ] - }, - "nzbget-api": { - "name": "NZBGet" - }, - "qbittorrent-api": { - "name": "qBitTorrent" - } - }, - "pgid": 2000, - "puid": 1001 - } - }, - { - "module": "redis", - "ports": { - "6379": 20003 - }, - "bindings": { - "secret": { - "node": "novox", - "module": "mesh-vault" - } - }, - "layer": { - "endpoints": { - "cache": { - "reach": "internal" - } - } - }, - "has-layer": true - }, - { - "module": "restic", - "layer": { - "places": { - "repository": "/storage/restic" - } - }, - "has-layer": true - }, - { - "module": "route-proxy" - }, - { - "module": "searxng", - "ports": { - "8080": 20000 - }, - "layer": { - "endpoints": { - "web": { - "label": "searxng", - "reach": "public" - } - } - }, - "has-layer": true - }, - { - "module": "snake", - "ports": { - "80": 20015 - }, - "layer": { - "endpoints": { - "web": { - "label": "snake", - "reach": "public" - } - } - }, - "has-layer": true - }, - { - "module": "sonarr", - "ports": { - "8989": 20018 - }, - "has-mesh-wide": true, - "layer": { - "accesses": { - "anime": "/storage/media/anime", - "downloads": "/storage/downloads", - "series": "/storage/media/series" - }, - "endpoints": { - "web": { - "label": "series", - "reach": "public" - } - }, - "places": { - "config": { - "owner": "1001:2000", - "path": "/var/lib/sonarr/config" - } - } - }, - "has-layer": true, - "mesh-wide-values": { - "pgid": 1000, - "puid": 1000 - }, - "values": { - "downloads": { - "jackett-api": { - "adopt-hosts": [ - "jackett" - ] - }, - "nzbget-api": { - "name": "NZBGet" - }, - "qbittorrent-api": { - "name": "qBitTorrent" - } - }, - "pgid": 2000, - "puid": 1001 - } - }, - { - "module": "ssh-client" - }, - { - "module": "sshd" - }, - { - "module": "sudo" - }, - { - "module": "supabase", - "ports": { - "8000": 20010 - }, - "layer": { - "endpoints": { - "api": { - "label": "supabase", - "reach": "public" - }, - "pooler-session": { - "port": 5433, - "reach": "internal" - }, - "pooler-transaction": { - "port": 6543, - "reach": "internal" - } - } - }, - "has-layer": true - }, - { - "module": "systemd" - }, - { - "module": "tautulli", - "ports": { - "8181": 20023 - }, - "has-mesh-wide": true, - "layer": { - "endpoints": { - "web": { - "label": "tautulli", - "reach": "public" - } - }, - "places": { - "config": { - "owner": "1001:2000", - "path": "/var/lib/tautulli/config" - } - } - }, - "has-layer": true, - "mesh-wide-values": { - "pgid": 1000, - "puid": 1000 - }, - "values": { - "pgid": 2000, - "puid": 1001 - } - }, - { - "module": "time-sync" - }, - { - "module": "txt-game", - "ports": { - "3000": 20001 - }, - "bindings": { - "postgres-database": { - "node": "ace", - "module": "postgres" - } - }, - "layer": { - "endpoints": { - "web": { - "label": "txt", - "reach": "public" - } - } - }, - "has-layer": true - }, - { - "module": "unifi", - "layer": { - "endpoints": { - "discovery": { - "port": 10001, - "reach": "public" - }, - "discovery-l2": { - "port": 1902, - "reach": "internal" - }, - "inform": { - "port": 8080, - "reach": "public" - }, - "portal": { - "port": 8880, - "reach": "internal" - }, - "portal-tls": { - "port": 8843, - "reach": "internal" - }, - "speedtest": { - "port": 6789, - "reach": "internal" - }, - "stun": { - "port": 3478, - "reach": "public" - }, - "syslog": { - "port": 5514, - "reach": "internal" - }, - "web": { - "label": "unifi", - "port": 8443, - "reach": "internal" - } - } - }, - "has-layer": true - }, - { - "module": "youtube", - "layer": { - "accesses": { - "downloads": "/storage/downloads" - }, - "places": { - "downloads": "/storage/downloads/youtube" - } - }, - "has-layer": true - }, - { - "module": "zsh" - }, - { - "module": "zsh-autosuggestions" - }, - { - "module": "zsh-syntax-highlighting" - } - ], - "pins": { - "postgres-database": { - "node": "ace", - "module": "postgres" - }, - "wildcard-resolution": { - "node": "novox", - "module": "dnsmasq" - } - }, - "holds": [ - { - "claim": "mesh-dns-resolver", - "scope": "mesh", - "module": "dnsmasq", - "site": "home" - } - ] -} diff --git a/placement/g14.json b/placement/g14.json deleted file mode 100644 index 74ea2fb4..00000000 --- a/placement/g14.json +++ /dev/null @@ -1,269 +0,0 @@ -{ - "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" - } - } -} diff --git a/placement/novox.json b/placement/novox.json deleted file mode 100644 index 740397d1..00000000 --- a/placement/novox.json +++ /dev/null @@ -1,584 +0,0 @@ -{ - "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" - } - ] -} diff --git a/placement/shanks.json b/placement/shanks.json deleted file mode 100644 index 3d69e3ea..00000000 --- a/placement/shanks.json +++ /dev/null @@ -1,290 +0,0 @@ -{ - "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" - } - } -}