{
  pkgs,
  fleetFlake,
  ...
}:
{
  security.polkit.enable = true;
  virtualisation.libvirtd.enable = true;

  networking.firewall.allowedTCPPorts = [
    2222
  ];

  imports = [ ../nginx-base ];

  services.nginx.virtualHosts."git.slavni.aciceri.dev" = {
    forceSSL = true;
    enableACME = true;
    locations."/" = {
      proxyPass = "http://127.0.0.1:13000";
    };
  };

  systemd.services.vm-sala =
    let
      initial-config = fleetFlake.inputs.nixos-generators.nixosGenerate {
        system = "x86_64-linux";
        modules = [
          # fleetFlake.inputs.nixos-vscode-server.nixosModule
          (
            {
              modulesPath,
              lib,
              config,
              ...
            }:
            {
              # services.vscode-server = {
              #   enable = true;
              #   enableFHS = true;
              # };
              system.build.qcow = lib.mkForce (
                import "${toString modulesPath}/../lib/make-disk-image.nix" {
                  inherit lib config pkgs;
                  diskSize = 50 * 1024;
                  format = "qcow2";
                  partitionTableType = "hybrid";
                }
              );
              services.openssh.enable = true;
              environment.systemPackages = with pkgs; [
                vim
                git
                htop
              ];
              users.users.root = {
                password = "password";
                openssh.authorizedKeys.keys = [
                  (import "${fleetFlake.outPath}/lib").keys.users.ccr-ssh
                  "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC7qikwR0a4LDoMQIVvtX+gyJ41OsAOWe8RcXc4ksIBP9x1nCcSrItlgC2soADB77QGIgyeyLGmnTCtMj5/s8NdREAycPeXLii1WRakbT7oZ/hTEmvAgObpadeYJn3LhaUDNtmsnAqqh2pRpCpSsAdhfIt+YyV4VgRYSfaa12Ozp/H6NI9bJMNttmG8TmY9V4zyskV9bE+up9y8Yuck2bZV/GjQe6UWgxsiC3XPSrFFGuxyaFMRGsc8h86xVwTAmwaHESEFhRvHD4EtdPNss0jqmSI6m4AoSZQ2wq7eiH8ZiYzERF0FnEFf4UsyOTM7j78bfogNLfKrdcEIPLrNNFFc3Iarfe9CJn3DdSnwwPnhFU1MBBXSbGOp1IyN3+gpjHwLMPzozlDAVqOwx6XpnpF78VpeknFBHCbkcKC/R0MXzqf900wH3i2HvfB7v9e9EUFzCQ0vUC+1Og+BFw3F5VSo0QtZyLc4BJ/akBs5mEE6TnuWQa/GhlY8Lz7wbcV1AaBOAQdx+NTbL/+Q31SJ1XsXtGtXCrwMY9noUTyVfpGVXo7Mn4HSslmeQ9SKfYKjyetkBR/1f8a47O3rCggjBy1AlfLjgbERnXy+0Ma4T8lnPZAKt3s9Ya1JupZ7SO7D5j7WfPKP+60c372/RrX1wXsxEeLvBJ0jd8GnSCXDOuvHTQ=="
                ];
              };
            }
          )
        ];
        format = "qcow";
      };
      image = "${initial-config}/nixos.qcow2";
      start-vm = pkgs.writeShellApplication {
        name = "start-vm";
        runtimeInputs = with pkgs; [ qemu ];
        text = ''
          [ ! -f /var/lib/vm-sala/nixos.qcow2 ] && \
            install ${image} /var/lib/vm-sala

          qemu-system-x86_64 \
            -enable-kvm \
            -cpu host \
            -smp 2 \
            -m 4096 \
            -nic user,model=virtio-net-pci,hostfwd=tcp::2222-:22,hostfwd=tcp::13000-:3000 \
            -nographic \
            -drive file=/var/lib/vm-sala/nixos.qcow2
        '';
      };
    in
    {
      wantedBy = [ "multi-user.target" ];
      after = [ "network.target" ];
      serviceConfig = {
        ExecStart = "${start-vm}/bin/start-vm";
      };
    };
}
