{ pkgs, ... }: let cids = import ../modules/staticids.nix; json = pkgs.formats.json { }; in { users.groups.podman.gid = cids.gids.podman; virtualisation = { containers.containersConf.settings = { containers.dns_servers = [ "10.42.97.10" ]; }; podman = { enable = true; dockerCompat = true; defaultNetwork.settings = { dns_enabled = true; # Enable DNS resolution in the podman network. }; }; }; environment.etc."containers/networks/server.json" = { source = json.generate "server.json" ({ name = "server"; id = "d3a55d6bcc28571c124b4e65cdf1831339045d296858f79e7130fa70da9c0904"; driver = "macvlan"; network_interface = "server"; ipv6_enabled = false; internal = false; dns_enabled = false; ipam_options = { driver = "dhcp"; }; }); }; systemd.sockets."netavark-dhcp-proxy" = { description = "Netavark DHCP proxy socket"; socketConfig = { ListenStream = "%t/podman/nv-proxy.sock"; SocketMode = 0660; }; wantedBy = [ "sockets.target" ]; }; systemd.services."netavark-dhcp-proxy" = { description = "Netavark DHCP proxy service"; after = [ "netavark-dhcp-proxy.socket" ]; requires = [ "netavark-dhcp-proxy.socket" ]; wantedBy = [ "multi-user.target" "netavark-dhcp-proxy.socket" ]; path = [ pkgs.netavark ]; startLimitIntervalSec = 0; serviceConfig = { Type = "exec"; ExecStart= "${pkgs.netavark}/bin/netavark dhcp-proxy -a 30"; }; }; }