{
  inputs,
  flake,
  self
}: {
  modulesPath,
  pkgs,
  lib,
  ...
}: {
  imports = [
    self.nixosModules.hectic
    (modulesPath + "/profiles/qemu-guest.nix")
  ];

  hectic = {
    archetype.dev.enable = true;
    hardware.hetzner-cloud.enable = true;
  };

  users.users.root.openssh.authorizedKeys.keys = [
    ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICrbBG+U07f7OKvOxYIGYCaNvyozzxQF+I9Fb5TYZErK yukkop vm-postgres''
  ];



  services.postgresql =
  let
    package = pkgs.postgresql_15;
  in {
    enable = true;
    package = package;
    settings = 
    {
      port = 64317;
      listen_addresses = lib.mkForce "*";
      shared_preload_libraries = "";
    };
    extensions = [ package.pkgs.hemar ];
    authentication =  builtins.concatStringsSep "\n" [
      "local all       all     trust"
      "host  sameuser    all     127.0.0.1/32 scram-sha-256"
      "host  sameuser    all     ::1/128 scram-sha-256"
    ];
    initialScript = pkgs.writeText "init-sql-script" ''
      SET log_min_messages TO DEBUG1;
      SET client_min_messages TO DEBUG1;
      ALTER DATABASE postgres SET log_min_messages TO DEBUG1;
      ALTER DATABASE postgres SET client_min_messages TO DEBUG1;
      CREATE EXTENSION "hemar";

      \i ${flake}/package/c/hemar/test/mod.sql
    '';
  };                   

  environment.systemPackages =  with pkgs; [
    gdb
    hectic.nvim-pager
    #(writeScriptBin "check" ''
    #  journalctl -u postgresql.service | grep postgresql-post-start | sed 's|psql:/nix/store/[^:]*:[0-9]*: ||' | sed 's|^[^:]*:[^:]*:[^:]*: ||' | grep -v '^\[.*\]' | ${hectic.prettify-log}/bin/prettify-log --color-output
    #'')
  ];
  programs.zsh.shellAliases = self.lib.sharedShellAliasesForDevVm // {
    conn = "sudo su postgres -c 'psql -p 64317'";
  };

  virtualisation = {
    vmVariant = {
      systemd.services.fix-root-perms = {
        description = "Fix root directory permissions";
        after = [ "local-fs.target" ];
        wantedBy = [ "multi-user.target" ];
        serviceConfig = {
          Type = "oneshot";
          ExecStart = "${pkgs.coreutils}/bin/chmod 755 /";
        };
      };
      virtualisation = {
        diskSize = 1024*6;
        diskImage = null;
        forwardPorts = [ ];
      };
    };
  };
  networking.firewall = {
    enable = true;
    allowedTCPPorts = [
      80
    ];
  };
}
