diff options
Diffstat (limited to 'machines/profpatsch')
-rw-r--r-- | machines/profpatsch/base-server-options.toml | 8 | ||||
-rw-r--r-- | machines/profpatsch/base-server.nix | 51 | ||||
-rw-r--r-- | machines/profpatsch/base-server.toml | 26 |
3 files changed, 63 insertions, 22 deletions
diff --git a/machines/profpatsch/base-server-options.toml b/machines/profpatsch/base-server-options.toml new file mode 100644 index 00000000..3cfc6e51 --- /dev/null +++ b/machines/profpatsch/base-server-options.toml @@ -0,0 +1,8 @@ +[module] +type = "nixos-options" +version = "0.0.1" + +[vuizvui.user.profpatsch.server.sshPort] +description = "ssh port" +type = "port" +default = 6879 diff --git a/machines/profpatsch/base-server.nix b/machines/profpatsch/base-server.nix index 921e5d8d..7b0a714a 100644 --- a/machines/profpatsch/base-server.nix +++ b/machines/profpatsch/base-server.nix @@ -1,36 +1,43 @@ { config, pkgs, lib, ... }: let - cfg = config.vuizvui.user.profpatsch.server; + cfgImports = (import ../../pkgs/profpatsch/nixos-toml-modules.nix { inherit lib; }).readAnyToml ./base-server.toml + config; in { - imports = [ - ./base.nix - ]; + inherit (cfgImports) imports; - options.vuizvui.user.profpatsch.server.sshPort = lib.mkOption { - description = "ssh port"; - # TODO: replace with types.intBetween https://github.com/NixOS/nixpkgs/pull/27239 - type = with lib.types; addCheck int (x: x >= 0 && x <= 65535); - default = 6879; - }; + # TODO: cannot read options from pkgs because it would lead to an infinite recursion + # in the module system, since the pkgs passed into this module already requires all options. + options = ((import ../../pkgs/profpatsch/nixos-toml-modules.nix { inherit lib; }).readAnyToml ./base-server-options.toml).options + ; - config = { + config = cfgImports.config; - programs.mosh.enable = true; - services.openssh = { - enable = true; - listenAddresses = [ { addr = "0.0.0.0"; port = cfg.sshPort; } ]; - }; + # options.vuizvui.user.profpatsch.server.sshPort = lib.traceValSeqN 3 (lib.mkOption { + # description = "ssh port"; + # # TODO: replace with types.intBetween https://github.com/NixOS/nixpkgs/pull/27239 + # type = with lib.types; addCheck int (x: x >= 0 && x <= 65535); + # default = 6879; + # }); - networking.firewall = { - enable = true; - allowPing = true; - allowedTCPPorts = [ cfg.sshPort ]; - }; + # config = { - }; + # programs.mosh.enable = true; + + # services.openssh = { + # enable = true; + # listenAddresses = [ { addr = "0.0.0.0"; port = cfg.sshPort; } ]; + # }; + + # networking.firewall = { + # enable = true; + # allowPing = true; + # allowedTCPPorts = [ cfg.sshPort ]; + # }; + + # }; } diff --git a/machines/profpatsch/base-server.toml b/machines/profpatsch/base-server.toml new file mode 100644 index 00000000..b2b4a88a --- /dev/null +++ b/machines/profpatsch/base-server.toml @@ -0,0 +1,26 @@ +[module] +type = "nixos-config" +version = "0.0.1" + +[[imports]] +module = "./base.nix" + +[configVariables] +server = [ "vuizvui", "user", "profpatsch", "server" ] + +[programs.mosh] +enable = true + +[services.openssh] +enable = true + + [[services.openssh.listenAddresses]] + addr = "0.0.0.0" + port._configVariable.server = "sshPort" + +[networking.firewall] +enable = true +allowPing = true + +[[networking.firewall.allowedTCPPorts]] +_configVariable.server = "sshPort" |