# The whole `ace` server's converted service set, installed together on ONE node behind the mesh # substrate — the media/home-automation half of the whole-mesh rehearsal (novox/hq). Sibling of # scenarios/whole-mesh-novox.yml; same topology, a different (larger, media-heavy) module set. # # Substrate (store, broker, control) rides `anchor` and NOTHING else; ALL of ace's services ride the # `ace` node. An overlay is placed so the two DB consumers (baserow, letta) reach the postgres/redis # providers co-located with them. The media stack (sonarr/radarr/lidarr/plex/bazarr/nzbget/ # qbittorrent/bookshelf) shares the operator-owned library directories under /services/media (ADR # 0051 `accesses`); the test pre-creates them on the node, as the operator would, before the push — # the mesh confirms the paths exist and mounts them, but creates and chowns none of it. # # MESH_LAB_HOST_BINARY=.../mesh-host MESH_LAB_BUNDLE=.../examples/substrate-first-node.lock # The runtimes are built by scripts/build-module-runtime.sh (one per module); every server image must # be in the local daemon to be stocked. The media/app images are pulled by their pinned digests and # tagged :mesh so repositoryFor matches the module.json paths (postgres/redis/portainer/mssql reuse # their existing local tags). The test loads each committed module.json from mesh-catalog and rewrites # its image references to what this scenario's own registry serves by digest. scenario: whole-mesh-ace segments: hosting: kind: public cidr: [192.0.2.0/24] machines: anchor: at: { segment: hosting, address: [192.0.2.10] } inbound: allow memory: 4GiB cpus: 4 disk: 20GiB # The whole ace service set — 24 modules, ~50 containers, several heavy (Plex, Home Assistant, # Letta ~1.8GiB, Baserow ~1.5GiB, the UniFi controller's JVM, mssql ~2GiB). Sized past novox. ace: at: { segment: hosting, address: [192.0.2.20] } inbound: allow memory: 18GiB cpus: 8 disk: 120GiB images: # The first-node substrate. - postgres:17-alpine - cloudamqp/lavinmq:latest - mesh-control:development # The module server images. Reused local tags where the exact version does not matter for a boot # (postgres/redis/portainer/mssql); pinned-digest :mesh tags for the media/app images. - redis:7-alpine - lscr.io/linuxserver/sonarr:mesh - lscr.io/linuxserver/radarr:mesh - lscr.io/linuxserver/lidarr:mesh - lscr.io/linuxserver/bazarr:mesh - lscr.io/linuxserver/nzbget:mesh - lscr.io/linuxserver/qbittorrent:mesh - lscr.io/linuxserver/jackett:mesh - lscr.io/linuxserver/ombi:mesh - lscr.io/linuxserver/tautulli:mesh - lscr.io/linuxserver/unifi-controller:mesh - plexinc/pms-docker:mesh - ghcr.io/pennydreadful/bookshelf:mesh - ghcr.io/home-assistant/home-assistant:mesh - eclipse-mosquitto:mesh - influxdb:mesh - grafana/grafana:mesh - baserow/baserow:mesh - letta/letta:mesh - nodered/node-red:mesh - searxng/searxng:mesh - valkey/valkey:mesh - portainer/portainer-ce:latest - mcr.microsoft.com/mssql/server:2022-latest # The per-module runtimes (built by scripts/build-module-runtime.sh). - mesh-runtime-postgres:development - mesh-runtime-redis:development - mesh-runtime-sonarr:development - mesh-runtime-radarr:development - mesh-runtime-lidarr:development - mesh-runtime-plex:development - mesh-runtime-bazarr:development - mesh-runtime-nzbget:development - mesh-runtime-qbittorrent:development - mesh-runtime-jackett:development - mesh-runtime-ombi:development - mesh-runtime-tautulli:development - mesh-runtime-bookshelf:development - mesh-runtime-home-assistant:development - mesh-runtime-mosquitto:development - mesh-runtime-influxdb:development - mesh-runtime-grafana:development - mesh-runtime-baserow:development - mesh-runtime-letta:development - mesh-runtime-nodered:development - mesh-runtime-searxng:development - mesh-runtime-unifi:development - mesh-runtime-portainer:development - mesh-runtime-mssql:development place: all: [host, runtime]