{ lib, pkgs, config, ... }: let hostname = "dev"; in { # Create persist directories on the host # UID 1000 = dominik user inside the microvm systemd.tmpfiles.rules = [ "d /var/lib/microvm-persist 0755 root root -" "d /var/lib/microvm-persist/dev 0755 root root -" "d /var/lib/microvm-persist/dev/home 0755 root root -" "d /var/lib/microvm-persist/dev/home/dominik 0700 1000 100 -" ]; microvm.vms.dev = { # Use host's pkgs which already has overlays applied inherit pkgs; config = { imports = [ ../dev/configuration.nix ./network-prefix.nix ]; networkPrefix = config.networkPrefix; microvm = { mem = 4096; vcpu = 2; shares = [ { source = "/nix/store"; mountPoint = "/nix/.ro-store"; tag = "ro-store"; proto = "virtiofs"; } { source = "/var/lib/microvm-persist/dev"; mountPoint = "/persist"; tag = "persist"; proto = "virtiofs"; } { source = "/var/lib/microvm-persist/dev/home"; mountPoint = "/home"; tag = "home"; proto = "virtiofs"; } ]; volumes = [{ image = "rootfs.img"; mountPoint = "/"; size = 51200; }]; interfaces = [{ type = "tap"; id = "vm-${hostname}"; mac = "02:00:00:00:02:01"; }]; }; systemd.network.networks."10-lan" = { matchConfig.PermanentMACAddress = "02:00:00:00:02:01"; address = [ "${config.networkPrefix}.97.15/24" ]; gateway = [ "${config.networkPrefix}.97.1" ]; dns = [ "${config.networkPrefix}.97.1" ]; }; }; }; }