{ 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.oci-containers = { backend = "podman"; containers = mergedContainers; }; # systemd.services.init-podman-network = { # description = "Create Podman network with subnet"; # after = [ "network.target" ]; # wantedBy = [ "multi-user.target" ]; # serviceConfig.Type = "oneshot"; # script = '' # ${pkgs.podman}/bin/podman network inspect podnet || \ # ${pkgs.podman}/bin/podman network create --subnet=10.88.0.0/16 podnet # ''; # }; }; }