summaryrefslogtreecommitdiff
path: root/modules/nixos/features
diff options
context:
space:
mode:
Diffstat (limited to 'modules/nixos/features')
-rw-r--r--modules/nixos/features/default.nix6
-rw-r--r--modules/nixos/features/tailscale.nix22
-rw-r--r--modules/nixos/features/virtualisation.nix10
3 files changed, 21 insertions, 17 deletions
diff --git a/modules/nixos/features/default.nix b/modules/nixos/features/default.nix
new file mode 100644
index 0000000..ade778e
--- /dev/null
+++ b/modules/nixos/features/default.nix
@@ -0,0 +1,6 @@
+{
+ imports = [
+ ./tailscale.nix
+ ./virtualisation.nix
+ ];
+}
diff --git a/modules/nixos/features/tailscale.nix b/modules/nixos/features/tailscale.nix
index d015437..ecb793a 100644
--- a/modules/nixos/features/tailscale.nix
+++ b/modules/nixos/features/tailscale.nix
@@ -5,18 +5,16 @@
...
}: let
cfg = config.features.tailscale;
- inherit (lib) mkDefault mkEnableOption mkIf optionalAttrs;
-
- baseDir = ../../../secrets/systems/${config.networking.hostName};
+ secretsDir = ../../../secrets/systems/${config.networking.hostName};
in {
options.features.tailscale = {
- enable = mkEnableOption "enable support for tailscale";
- ssh.enable = mkEnableOption "enable support for tailscale ssh";
+ enable = lib.mkEnableOption "enable support for tailscale";
+ ssh.enable = lib.mkEnableOption "enable support for tailscale ssh";
};
- config = mkIf cfg.enable {
- age.secrets = mkIf cfg.ssh.enable {
- tailscaleAuthKey.file = "${baseDir}/tailscaleAuthKey.age";
+ config = lib.mkIf cfg.enable {
+ age.secrets = lib.mkIf cfg.ssh.enable {
+ tailscaleAuthKey.file = "${secretsDir}/tailscaleAuthKey.age";
};
networking.firewall =
@@ -24,16 +22,14 @@ in {
allowedUDPPorts = [config.services.tailscale.port];
trustedInterfaces = ["tailscale0"];
}
- // optionalAttrs cfg.ssh.enable {
+ // lib.optionalAttrs cfg.ssh.enable {
allowedTCPPorts = [22];
};
- services = {
- tailscale.enable = mkDefault true;
- };
+ services.tailscale.enable = true;
# https://tailscale.com/kb/1096/nixos-minecraft/
- systemd.services = mkIf cfg.ssh.enable {
+ systemd.services = lib.mkIf cfg.ssh.enable {
tailscale-autoconnect = {
description = "Automatic connection to Tailscale";
diff --git a/modules/nixos/features/virtualisation.nix b/modules/nixos/features/virtualisation.nix
index 206a98e..2c9c527 100644
--- a/modules/nixos/features/virtualisation.nix
+++ b/modules/nixos/features/virtualisation.nix
@@ -5,17 +5,19 @@
...
}: let
cfg = config.features.virtualisation;
- inherit (lib) mkEnableOption mkIf;
in {
- options.features.virtualisation.enable = mkEnableOption "enable podman";
+ options.features.virtualisation = {
+ enable = lib.mkEnableOption "enable podman";
+ };
- config.virtualisation = mkIf cfg.enable {
+ config.virtualisation = lib.mkIf cfg.enable {
podman = {
enable = true;
- enableNvidia = true;
+ enableNvidia = lib.mkDefault (config.hardware.nvidia.enable or false);
extraPackages = with pkgs; [podman-compose];
autoPrune.enable = true;
};
+
oci-containers.backend = "podman";
};
}