Operand

one point!? Oh.

gram: pool

> ./drop/op.nix

Lenses
(coming soon!)


{ pkgs, addr, plug, ...}:
let
  role = import ../basis/role.nix { inherit pkgs; };
  address = import ../basis/address.nix { inherit pkgs; } plug;
in {
  roles = {
    root = role "root" {} {};
  };

  module = let
    codebase = "/home/calliope/share/gram/op";
  in {
    imports = [
      (address addr)
      ../module/psql.nix

      ( import ../gram/elixir.nix {
        base = "op"; name = "op"; channel = 4000;
        user = "root"; codebase = builtins.fetchGit { ref = "main"; url = codebase; };
      })
    ];

    environment.systemPackages = with pkgs; [ isd helix
      elixir nodejs yarn git libgit2 gnupg openssl inotify-tools nushell
    ];
    networking.firewall.allowedTCPPorts = [ 4000 5173 ];
  };

  shares = [ {
    # use proto = "virtiofs" for MicroVMs that are started by systemd
    proto = "9p";
    tag = "home";
    # a host's /nix/store will be picked up so that no
    # squashfs/erofs will be built for it.
    source = "/home/calliope/share";
    mountPoint = "/root/share";
  } ];

}