{ config, pkgs, lib, ... }: let cfg = config.syscfg.server.containers; enabledConfigs = lib.filterAttrs (name: c: c.enable) cfg; containerSetsList = lib.mapAttrsToList (name: containerCfg: import (./defs + "/${name}.nix") { inherit config pkgs lib containerCfg; } ) enabledConfigs; mergedContainers = lib.attrsets.mergeAttrsList (lib.map(e: e.containers) containerSetsList); in { config = lib.mkIf ( enabledConfigs != {} ) { virtualisation.containers.containersConf.settings = { containers = { host_containers_internal = true; additional_hosts = [ "host.internal:host-gateway" ]; }; }; virtualisation.oci-containers = { backend = "podman"; containers = mergedContainers; }; }; }