{
  nodes,
  lib,
  ...
}: let
  extractGlobal = name: node:
    if node ? config.homelab.global
    then {
      ${name} = {
        hostname = node.config.homelab.global.hostname;
        monitoring = map (e: "${e.name}:${toString e.port}") node.config.homelab.global.monitoring.endpoints;
        backups = map (b: "${b.name}(${b.backend})") node.config.homelab.global.backups.jobs;
        proxy = map (p: "${p.subdomain}.${node.config.homelab.global.domain}") node.config.homelab.global.reverseProxy.entries;
      };
    }
    else {};
in
  lib.foldl (acc: name: acc // (extractGlobal name nodes.${name})) {} (builtins.attrNames nodes)
