From 9892f55ae27fd26c99c8f9a40a0fe8addde2222c Mon Sep 17 00:00:00 2001 From: ibizaman Date: Fri, 10 Oct 2025 07:18:21 +0200 Subject: [PATCH] mod: make imports explicit and remove system --- demo/homeassistant/flake.nix | 5 +- demo/nextcloud/flake.nix | 6 +- docs/default.nix | 39 ++++--- docs/usage.md | 22 ++-- flake.nix | 169 ++++++++++++++++--------------- modules/blocks/authelia.nix | 6 ++ modules/blocks/lldap.nix | 11 +- modules/blocks/restic.nix | 6 +- modules/blocks/ssl.nix | 6 +- modules/blocks/tinyproxy.nix | 2 - modules/blocks/vpn.nix | 2 - modules/services/arr.nix | 4 + modules/services/deluge.nix | 4 + modules/services/forgejo.nix | 26 ++--- modules/services/hledger.nix | 4 + modules/services/immich.nix | 4 + modules/services/open-webui.nix | 4 + modules/services/pinchflat.nix | 4 + modules/services/vaultwarden.nix | 4 + test/blocks/authelia.nix | 5 +- test/blocks/lldap.nix | 2 - test/blocks/restic.nix | 1 - test/blocks/ssl.nix | 3 +- test/services/hledger.nix | 2 - test/services/open-webui.nix | 1 - test/services/pinchflat.nix | 1 - test/services/vaultwarden.nix | 2 +- 27 files changed, 201 insertions(+), 144 deletions(-) diff --git a/demo/homeassistant/flake.nix b/demo/homeassistant/flake.nix index 1f8b27a..d1e355c 100644 --- a/demo/homeassistant/flake.nix +++ b/demo/homeassistant/flake.nix @@ -15,7 +15,10 @@ basic = { config, ... }: { imports = [ ./configuration.nix - selfhostblocks.nixosModules.x86_64-linux.default + selfhostblocks.nixosModules.authelia + selfhostblocks.nixosModules.home-assistant + selfhostblocks.nixosModules.sops + selfhostblocks.nixosModules.ssl sops-nix.nixosModules.default ]; diff --git a/demo/nextcloud/flake.nix b/demo/nextcloud/flake.nix index 9cb7aaa..c849e6c 100644 --- a/demo/nextcloud/flake.nix +++ b/demo/nextcloud/flake.nix @@ -15,7 +15,11 @@ basic = { config, ... }: { imports = [ ./configuration.nix - selfhostblocks.nixosModules.x86_64-linux.default + selfhostblocks.nixosModules.authelia + selfhostblocks.nixosModules.nextcloud-server + selfhostblocks.nixosModules.nginx + selfhostblocks.nixosModules.sops + selfhostblocks.nixosModules.ssl sops-nix.nixosModules.default ]; diff --git a/docs/default.nix b/docs/default.nix index c15cb0f..21a7a33 100644 --- a/docs/default.nix +++ b/docs/default.nix @@ -30,7 +30,7 @@ let ghRoot = (gitHubDeclaration "ibizaman" "selfhostblocks" "").url; - buildOptionsDocs = args@{ modules, ... }: + buildOptionsDocs = { modules, filterOptionPath ? null }: args: let config = { _module.check = false; @@ -51,7 +51,7 @@ let }; }; - options = lib.filterAttrs (name: v: name == "shb") eval.options; + options = lib.setAttrByPath filterOptionPath (lib.getAttrFromPath filterOptionPath eval.options); in buildPackages.nixosOptionsDoc ({ inherit options; @@ -63,22 +63,30 @@ let gitHubDeclaration "ibizaman" "selfhostblocks" (lib.removePrefix "/" (lib.removePrefix shbPath (toString decl)))) opt.declarations; }; - } // builtins.removeAttrs args [ "modules" "includeModuleSystemOptions" ]); + } // builtins.removeAttrs args [ "includeModuleSystemOptions" ]); scrubbedModule = { _module.args.pkgs = lib.mkForce (nmd.scrubDerivations "pkgs" pkgs); _module.check = false; }; - allOptionsDocs = paths: (buildOptionsDocs { - modules = paths ++ allModules ++ [ scrubbedModule ]; - variablelistId = "selfhostblocks-options"; - }).optionsJSON; + allOptionsDocs = paths: (buildOptionsDocs + { + modules = paths ++ allModules ++ [ scrubbedModule ]; + filterOptionPath = [ "shb" ]; + } + { + variablelistId = "selfhostblocks-options"; + }).optionsJSON; - individualModuleOptionsDocs = paths: (buildOptionsDocs { - modules = paths ++ [ scrubbedModule ]; - variablelistId = "selfhostblocks-options"; - }).optionsJSON; + individualModuleOptionsDocs = filterOptionPath: paths: (buildOptionsDocs + { + modules = paths ++ [ scrubbedModule ]; + inherit filterOptionPath; + } + { + variablelistId = "selfhostblocks-options"; + }).optionsJSON; nmd = import nmdsrc { inherit lib; @@ -138,11 +146,16 @@ in stdenv.mkDerivation { (pkgs.path + "/nixos/modules/services/misc/forgejo.nix") ]}/share/doc/nixos/options.json '' - + lib.concatStringsSep "\n" (lib.mapAttrsToList (name: path: '' + + lib.concatStringsSep "\n" (lib.mapAttrsToList (name: cfg': + let + cfg = if builtins.isAttrs cfg' then cfg' else { module = cfg'; }; + module = if builtins.isList cfg.module then cfg.module else [ cfg.module ]; + optionRoot = cfg.optionRoot or [ "shb" (lib.last (lib.splitString "/" name)) ]; + in '' substituteInPlace ./modules/${name}/docs/default.md \ --replace-fail \ '@OPTIONS_JSON@' \ - ${individualModuleOptionsDocs (if builtins.isList path then path else [ path ])}/share/doc/nixos/options.json + ${individualModuleOptionsDocs optionRoot module}/share/doc/nixos/options.json '') modules) + '' find . -name "*.md" -print0 | \ diff --git a/docs/usage.md b/docs/usage.md index a6a1613..f2d06e1 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -13,7 +13,7 @@ Then, in your `nixosConfigurations`, you can import all modules with: ```nix imports = [ - inputs.selfhostblocks.nixosModules.x86_64-linux.default + inputs.selfhostblocks.default ]; ``` @@ -21,9 +21,9 @@ or selectively import some with, for example: ```nix imports = [ - inputs.selfhostblocks.nixosModules.x86_64-linux.authelia - inputs.selfhostblocks.nixosModules.x86_64-linux.lldap - inputs.selfhostblocks.nixosModules.x86_64-linux.nextcloud + inputs.selfhostblocks.authelia + inputs.selfhostblocks.lldap + inputs.selfhostblocks.nextcloud ]; ``` @@ -133,7 +133,7 @@ The following snippets show how to deploy Self Host Blocks using the standard de machine = nixosSystem' { inherit system; modules = [ - selfhostblocks.nixosModules.${system}.default + selfhostblocks.nixosModules.default ]; }; }; @@ -172,7 +172,7 @@ some not using Self Host Blocks, then you can do the following: machine2 = shbNixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ - selfhostblocks.nixosModules.${system}.default + selfhostblocks.nixosModules.default ]; }; }; @@ -212,7 +212,7 @@ The following snippets show how to deploy Self Host Blocks using the deployment machine = { selfhostblocks, ... }: { imports = [ - selfhostblocks.nixosModules.${system}.default + selfhostblocks.nixosModules.default ]; }; }; @@ -258,7 +258,7 @@ in this case you can use the `colmena.meta.nodeNixpkgs` option: machine2 = { selfhostblocks, ... }: { imports = [ - selfhostblocks.nixosModules.${system}.default + selfhostblocks.nixosModules.default ]; # Machine specific configuration goes here. @@ -307,7 +307,7 @@ The following snippets show how to deploy Self Host Blocks using the deployment in nixosModules.machine = { imports = [ - selfhostblocks.nixosModules.${system}.default + selfhostblocks.nixosModules.default ]; }; @@ -378,7 +378,7 @@ in this case you can do: nixosModules.machine2 = { imports = [ - selfhostblocks.nixosModules.${system}.default + selfhostblocks.nixosModules.default ]; }; @@ -578,7 +578,7 @@ as well as [Skarabox][], my sibling project used to bootstrap a server. nixosModules.skarabox = { imports = [ skarabox.nixosModules.skarabox - selfhostblocks.nixosModules.${system}.default + selfhostblocks.nixosModules.default sops-nix.nixosModules.default ({ config, ... }: { skarabox.hostname = "skarabox"; diff --git a/flake.nix b/flake.nix index 1f239de..2f327ec 100644 --- a/flake.nix +++ b/flake.nix @@ -51,81 +51,9 @@ ]; in { - nixosModules.default = self.nixosModules.${system}.all; - nixosModules.all = { - imports = [ - self.nixosModules.${system}.insecure - - # blocks - self.nixosModules.${system}.authelia - self.nixosModules.${system}.davfs - self.nixosModules.${system}.hardcodedsecret - self.nixosModules.${system}.lldap - self.nixosModules.${system}.mitmdump - self.nixosModules.${system}.monitoring - self.nixosModules.${system}.nginx - self.nixosModules.${system}.postgresql - self.nixosModules.${system}.restic - self.nixosModules.${system}.ssl - self.nixosModules.${system}.sops - self.nixosModules.${system}.tinyproxy - self.nixosModules.${system}.vpn - self.nixosModules.${system}.zfs - - # services - self.nixosModules.${system}.arr - self.nixosModules.${system}.audiobookshelf - self.nixosModules.${system}.deluge - self.nixosModules.${system}.forgejo - self.nixosModules.${system}.grocy - self.nixosModules.${system}.hledger - self.nixosModules.${system}.immich - self.nixosModules.${system}.home-assistant - self.nixosModules.${system}.jellyfin - self.nixosModules.${system}.nextcloud-server - self.nixosModules.${system}.open-webui - self.nixosModules.${system}.pinchflat - self.nixosModules.${system}.vaultwarden - ]; - }; - - nixosModules.insecure = { - nixpkgs.config.permittedInsecurePackages = [ - ]; - }; - - nixosModules.authelia = modules/blocks/authelia.nix; - nixosModules.davfs = modules/blocks/davfs.nix; - nixosModules.hardcodedsecret = modules/blocks/hardcodedsecret.nix; - nixosModules.lldap = modules/blocks/lldap.nix; - nixosModules.mitmdump = modules/blocks/mitmdump.nix; - nixosModules.monitoring = modules/blocks/monitoring.nix; - nixosModules.nginx = modules/blocks/nginx.nix; - nixosModules.postgresql = modules/blocks/postgresql.nix; - nixosModules.restic = modules/blocks/restic.nix; - nixosModules.ssl = modules/blocks/ssl.nix; - nixosModules.sops = modules/blocks/sops.nix; - nixosModules.tinyproxy = modules/blocks/tinyproxy.nix; - nixosModules.vpn = modules/blocks/vpn.nix; - nixosModules.zfs = modules/blocks/zfs.nix; - - nixosModules.arr = modules/services/arr.nix; - nixosModules.audiobookshelf = modules/services/audiobookshelf.nix; - nixosModules.deluge = modules/services/deluge.nix; - nixosModules.forgejo = modules/services/forgejo.nix; - nixosModules.grocy = modules/services/grocy.nix; - nixosModules.hledger = modules/services/hledger.nix; - nixosModules.immich = modules/services/immich.nix; - nixosModules.home-assistant = modules/services/home-assistant.nix; - nixosModules.jellyfin = modules/services/jellyfin.nix; - nixosModules.nextcloud-server = modules/services/nextcloud-server.nix; - nixosModules.open-webui = modules/services/open-webui.nix; - nixosModules.pinchflat = modules/services/pinchflat.nix; - nixosModules.vaultwarden = modules/services/vaultwarden.nix; - packages.manualHtml = pkgs.callPackage ./docs { inherit nmdsrc; - allModules = self.nixosModules.${system}.all.imports ++ contractDummyModules; + allModules = self.nixosModules.all.imports ++ contractDummyModules; release = builtins.readFile ./VERSION; substituteVersionIn = [ @@ -135,7 +63,10 @@ modules = { "blocks/authelia" = ./modules/blocks/authelia.nix; "blocks/lldap" = ./modules/blocks/lldap.nix; - "blocks/ssl" = ./modules/blocks/ssl.nix; + "blocks/ssl" = { + module = ./modules/blocks/ssl.nix; + optionRoot = [ "shb" "certs" ]; + }; "blocks/mitmdump" = ./modules/blocks/mitmdump.nix; "blocks/monitoring" = ./modules/blocks/monitoring.nix; "blocks/postgresql" = ./modules/blocks/postgresql.nix; @@ -148,14 +79,29 @@ ]; "services/home-assistant" = ./modules/services/home-assistant.nix; "services/jellyfin" = ./modules/services/jellyfin.nix; - "services/nextcloud-server" = ./modules/services/nextcloud-server.nix; + "services/nextcloud-server" = { + module = ./modules/services/nextcloud-server.nix; + optionRoot = [ "shb" "nextcloud" ]; + }; "services/open-webui" = ./modules/services/open-webui.nix; "services/pinchflat" = ./modules/services/pinchflat.nix; "services/vaultwarden" = ./modules/services/vaultwarden.nix; - "contracts/backup" = ./modules/contracts/backup/dummyModule.nix; - "contracts/databasebackup" = ./modules/contracts/databasebackup/dummyModule.nix; - "contracts/secret" = ./modules/contracts/secret/dummyModule.nix; - "contracts/ssl" = ./modules/contracts/ssl/dummyModule.nix; + "contracts/backup" = { + module = ./modules/contracts/backup/dummyModule.nix; + optionRoot = [ "shb" "contracts" "backup" ]; + }; + "contracts/databasebackup" = { + module = ./modules/contracts/databasebackup/dummyModule.nix; + optionRoot = [ "shb" "contracts" "databasebackup" ]; + }; + "contracts/secret" = { + module = ./modules/contracts/secret/dummyModule.nix; + optionRoot = [ "shb" "contracts" "secret" ]; + }; + "contracts/ssl" = { + module = ./modules/contracts/ssl/dummyModule.nix; + optionRoot = [ "shb" "contracts" "ssl" ]; + }; }; }; @@ -327,5 +273,70 @@ } ) // { herculesCI.ciSystems = [ "x86_64-linux" ]; + + nixosModules.default = self.nixosModules.all; + nixosModules.all = { + imports = [ + # blocks + self.nixosModules.authelia + self.nixosModules.davfs + self.nixosModules.hardcodedsecret + self.nixosModules.lldap + self.nixosModules.mitmdump + self.nixosModules.monitoring + self.nixosModules.nginx + self.nixosModules.postgresql + self.nixosModules.restic + self.nixosModules.ssl + self.nixosModules.sops + self.nixosModules.tinyproxy + self.nixosModules.vpn + self.nixosModules.zfs + + # services + self.nixosModules.arr + self.nixosModules.audiobookshelf + self.nixosModules.deluge + self.nixosModules.forgejo + self.nixosModules.grocy + self.nixosModules.hledger + self.nixosModules.immich + self.nixosModules.home-assistant + self.nixosModules.jellyfin + self.nixosModules.nextcloud-server + self.nixosModules.open-webui + self.nixosModules.pinchflat + self.nixosModules.vaultwarden + ]; + }; + + nixosModules.authelia = modules/blocks/authelia.nix; + nixosModules.davfs = modules/blocks/davfs.nix; + nixosModules.hardcodedsecret = modules/blocks/hardcodedsecret.nix; + nixosModules.lldap = modules/blocks/lldap.nix; + nixosModules.mitmdump = modules/blocks/mitmdump.nix; + nixosModules.monitoring = modules/blocks/monitoring.nix; + nixosModules.nginx = modules/blocks/nginx.nix; + nixosModules.postgresql = modules/blocks/postgresql.nix; + nixosModules.restic = modules/blocks/restic.nix; + nixosModules.ssl = modules/blocks/ssl.nix; + nixosModules.sops = modules/blocks/sops.nix; + nixosModules.tinyproxy = modules/blocks/tinyproxy.nix; + nixosModules.vpn = modules/blocks/vpn.nix; + nixosModules.zfs = modules/blocks/zfs.nix; + + nixosModules.arr = modules/services/arr.nix; + nixosModules.audiobookshelf = modules/services/audiobookshelf.nix; + nixosModules.deluge = modules/services/deluge.nix; + nixosModules.forgejo = modules/services/forgejo.nix; + nixosModules.grocy = modules/services/grocy.nix; + nixosModules.hledger = modules/services/hledger.nix; + nixosModules.immich = modules/services/immich.nix; + nixosModules.home-assistant = modules/services/home-assistant.nix; + nixosModules.jellyfin = modules/services/jellyfin.nix; + nixosModules.nextcloud-server = modules/services/nextcloud-server.nix; + nixosModules.open-webui = modules/services/open-webui.nix; + nixosModules.pinchflat = modules/services/pinchflat.nix; + nixosModules.vaultwarden = modules/services/vaultwarden.nix; }; } diff --git a/modules/blocks/authelia.nix b/modules/blocks/authelia.nix index 651e70d..2638a8c 100644 --- a/modules/blocks/authelia.nix +++ b/modules/blocks/authelia.nix @@ -17,6 +17,12 @@ let listenPort = if cfg.debug then 9090 else 9091; in { + imports = [ + ./lldap.nix + ./mitmdump.nix + ./postgresql.nix + ]; + options.shb.authelia = { enable = lib.mkEnableOption "selfhostblocks.authelia"; diff --git a/modules/blocks/lldap.nix b/modules/blocks/lldap.nix index b313d28..be29692 100644 --- a/modules/blocks/lldap.nix +++ b/modules/blocks/lldap.nix @@ -48,6 +48,13 @@ let }; in { + imports = [ + ./hardcodedsecret.nix + ./mitmdump.nix + + (lib.mkRenamedOptionModule [ "shb" "ldap" ] [ "shb" "lldap" ]) + ]; + options.shb.lldap = { enable = lib.mkEnableOption "the LDAP service"; @@ -321,10 +328,6 @@ in default = true; }; }; - - imports = [ - (lib.mkRenamedOptionModule [ "shb" "ldap" ] [ "shb" "lldap" ]) - ]; config = lib.mkIf cfg.enable { diff --git a/modules/blocks/restic.nix b/modules/blocks/restic.nix index 3654ae1..3f41edb 100644 --- a/modules/blocks/restic.nix +++ b/modules/blocks/restic.nix @@ -7,7 +7,7 @@ let contracts = pkgs.callPackage ../contracts {}; inherit (lib) concatStringsSep filterAttrs flatten literalExpression optionals listToAttrs mapAttrsToList mkEnableOption mkOption mkMerge; - inherit (lib) generators hasPrefix mkIf nameValuePair optionalAttrs removePrefix; + inherit (lib) hasPrefix mkIf nameValuePair optionalAttrs removePrefix; inherit (lib.types) attrsOf enum int ints oneOf nonEmptyStr nullOr str submodule; commonOptions = { name, prefix, config, ... }: { @@ -106,6 +106,10 @@ let fullName = name: repository: "restic-backups-${name}_${repoSlugName repository.path}"; in { + imports = [ + ./hardcodedsecret.nix + ]; + options.shb.restic = { instances = mkOption { description = "Files to backup following the [backup contract](./contracts-backup.html)."; diff --git a/modules/blocks/ssl.nix b/modules/blocks/ssl.nix index 414f3fb..6f4ebc5 100644 --- a/modules/blocks/ssl.nix +++ b/modules/blocks/ssl.nix @@ -38,7 +38,7 @@ in This option implements the SSL Generator contract. ''; type = contracts.ssl.certs-paths; - default = rec { + default = { key = "/var/lib/certs/cas/${config._module.args.name}.key"; cert = "/var/lib/certs/cas/${config._module.args.name}.cert"; }; @@ -110,7 +110,7 @@ in This option implements the SSL Generator contract. ''; type = contracts.ssl.certs-paths; - default = rec { + default = { key = "/var/lib/certs/selfsigned/${config._module.args.name}.key"; cert = "/var/lib/certs/selfsigned/${config._module.args.name}.cert"; }; @@ -306,8 +306,6 @@ in config = let - filterProvider = provider: lib.attrsets.filterAttrs (k: i: i.provider == provider); - serviceName = lib.strings.removeSuffix ".service"; in lib.mkMerge [ diff --git a/modules/blocks/tinyproxy.nix b/modules/blocks/tinyproxy.nix index 40431bd..69d8191 100644 --- a/modules/blocks/tinyproxy.nix +++ b/modules/blocks/tinyproxy.nix @@ -25,8 +25,6 @@ let }); configFile = name: cfg: settingsFormat.generate "tinyproxy-${name}.conf" cfg.settings; - - someEnabled = any (mapAttrsToList (name: c: c.enable) cfg); in { options = diff --git a/modules/blocks/vpn.nix b/modules/blocks/vpn.nix index 946c6e6..97c5412 100644 --- a/modules/blocks/vpn.nix +++ b/modules/blocks/vpn.nix @@ -197,8 +197,6 @@ let echo "Running route-down DONE" ''; }; - - someEnabled = lib.any (lib.mapAttrsToList (name: c: c.enable) cfg); in { options = diff --git a/modules/services/arr.nix b/modules/services/arr.nix index b08b793..d889185 100644 --- a/modules/services/arr.nix +++ b/modules/services/arr.nix @@ -336,6 +336,10 @@ let }); in { + imports = [ + ../blocks/nginx.nix + ]; + options.shb.arr = lib.listToAttrs (lib.mapAttrsToList appOption apps); config = lib.mkMerge [ diff --git a/modules/services/deluge.nix b/modules/services/deluge.nix index c5bf6cb..0860e00 100644 --- a/modules/services/deluge.nix +++ b/modules/services/deluge.nix @@ -18,6 +18,10 @@ let lib.concatStringsSep "\n" lines; in { + imports = [ + ../blocks/nginx.nix + ]; + options.shb.deluge = { enable = lib.mkEnableOption "selfhostblocks.deluge"; diff --git a/modules/services/forgejo.nix b/modules/services/forgejo.nix index 648c17d..9171d1c 100644 --- a/modules/services/forgejo.nix +++ b/modules/services/forgejo.nix @@ -9,6 +9,20 @@ let inherit (lib.types) attrsOf bool enum listOf nullOr package port submodule str; in { + imports = [ + ../blocks/nginx.nix + + (lib.mkRemovedOptionModule [ "shb" "forgejo" "adminPassword" ] ''Instead, define an admin user in shb.forgejo.users and give it the same password, like so: + shb.forgejo.users = { + "forgejoadmin" = { + isAdmin = true; + email = "forgejoadmin@example.com"; + password.result = ; + }; + }; + '') + ]; + options.shb.forgejo = { enable = mkEnableOption "selfhostblocks.forgejo"; @@ -346,18 +360,6 @@ in }; }; - imports = [ - (lib.mkRemovedOptionModule [ "shb" "forgejo" "adminPassword" ] ''Instead, define an admin user in shb.forgejo.users and give it the same password, like so: - shb.forgejo.users = { - "forgejoadmin" = { - isAdmin = true; - email = "forgejoadmin@example.com"; - password.result = ; - }; - }; - '') - ]; - config = mkMerge [ (mkIf cfg.enable { services.forgejo = { diff --git a/modules/services/hledger.nix b/modules/services/hledger.nix index c417ced..f956280 100644 --- a/modules/services/hledger.nix +++ b/modules/services/hledger.nix @@ -8,6 +8,10 @@ let fqdn = "${cfg.subdomain}.${cfg.domain}"; in { + imports = [ + ../blocks/nginx.nix + ]; + options.shb.hledger = { enable = lib.mkEnableOption "selfhostblocks.hledger"; diff --git a/modules/services/immich.nix b/modules/services/immich.nix index e1ecf0a..c2bbd31 100644 --- a/modules/services/immich.nix +++ b/modules/services/immich.nix @@ -74,6 +74,10 @@ let inherit (lib.types) attrs attrsOf bool enum listOf nullOr port submodule str path; in { + imports = [ + ../blocks/nginx.nix + ]; + options.shb.immich = { enable = mkEnableOption "selfhostblocks.immich"; diff --git a/modules/services/open-webui.nix b/modules/services/open-webui.nix index 595b1a4..61e77d0 100644 --- a/modules/services/open-webui.nix +++ b/modules/services/open-webui.nix @@ -9,6 +9,10 @@ let oauthScopes = [ "openid" "email" "profile" "groups" "${roleClaim}" ]; in { + imports = [ + ../blocks/nginx.nix + ]; + options.shb.open-webui = { enable = lib.mkEnableOption "the Open-WebUI service"; diff --git a/modules/services/pinchflat.nix b/modules/services/pinchflat.nix index 6abaf52..ba6ca39 100644 --- a/modules/services/pinchflat.nix +++ b/modules/services/pinchflat.nix @@ -8,6 +8,10 @@ let shblib = pkgs.callPackage ../../lib {}; in { + imports = [ + ../blocks/nginx.nix + ]; + options.shb.pinchflat = { enable = lib.mkEnableOption "the Pinchflat service."; diff --git a/modules/services/vaultwarden.nix b/modules/services/vaultwarden.nix index aae1ee7..6a4f239 100644 --- a/modules/services/vaultwarden.nix +++ b/modules/services/vaultwarden.nix @@ -11,6 +11,10 @@ let dataFolder = if lib.versionOlder (config.system.stateVersion or "24.11") "24.11" then "/var/lib/bitwarden_rs" else "/var/lib/vaultwarden"; in { + imports = [ + ../blocks/nginx.nix + ]; + options.shb.vaultwarden = { enable = lib.mkEnableOption "selfhostblocks.vaultwarden"; diff --git a/test/blocks/authelia.nix b/test/blocks/authelia.nix index 357cbf5..c673c43 100644 --- a/test/blocks/authelia.nix +++ b/test/blocks/authelia.nix @@ -1,4 +1,4 @@ -{ pkgs, lib, ... }: +{ pkgs, ... }: let pkgs' = pkgs; @@ -14,9 +14,6 @@ in (pkgs'.path + "/nixos/modules/profiles/qemu-guest.nix") ../../modules/blocks/authelia.nix ../../modules/blocks/hardcodedsecret.nix - ../../modules/blocks/lldap.nix - ../../modules/blocks/mitmdump.nix - ../../modules/blocks/postgresql.nix ]; networking.hosts = { diff --git a/test/blocks/lldap.nix b/test/blocks/lldap.nix index af259d5..b9527b4 100644 --- a/test/blocks/lldap.nix +++ b/test/blocks/lldap.nix @@ -18,9 +18,7 @@ in shb.ssl.enable = lib.mkEnableOption "ssl"; }; } - ../../modules/blocks/hardcodedsecret.nix ../../modules/blocks/lldap.nix - ../../modules/blocks/mitmdump.nix ]; shb.lldap = { diff --git a/test/blocks/restic.nix b/test/blocks/restic.nix index 43f2187..b5dad51 100644 --- a/test/blocks/restic.nix +++ b/test/blocks/restic.nix @@ -8,7 +8,6 @@ let nodes.machine = { config, ... }: { imports = [ testLib.baseImports - ../../modules/blocks/hardcodedsecret.nix ../../modules/blocks/restic.nix ]; diff --git a/test/blocks/ssl.nix b/test/blocks/ssl.nix index fbfa728..e0b074f 100644 --- a/test/blocks/ssl.nix +++ b/test/blocks/ssl.nix @@ -1,4 +1,4 @@ -{ pkgs, lib, ... }: +{ pkgs, ... }: let pkgs' = pkgs; in @@ -130,7 +130,6 @@ in multi = nodes.server.shb.certs.certs.selfsigned.multi; cert1 = nodes.server.shb.certs.certs.selfsigned.cert1; cert2 = nodes.server.shb.certs.certs.selfsigned.cert2; - cert3 = nodes.server.shb.certs.certs.selfsigned.cert3; in '' start_all() diff --git a/test/services/hledger.nix b/test/services/hledger.nix index 4ea8541..c40beec 100644 --- a/test/services/hledger.nix +++ b/test/services/hledger.nix @@ -2,8 +2,6 @@ let testLib = pkgs.callPackage ../common.nix {}; - adminPassword = "AdminPassword"; - commonTestScript = testLib.mkScripts { hasSSL = { node, ... }: !(isNull node.config.shb.hledger.ssl); waitForServices = { ... }: [ diff --git a/test/services/open-webui.nix b/test/services/open-webui.nix index 9ebed08..23caf9d 100644 --- a/test/services/open-webui.nix +++ b/test/services/open-webui.nix @@ -19,7 +19,6 @@ let imports = [ testLib.baseModule ../../modules/blocks/hardcodedsecret.nix - ../../modules/blocks/lldap.nix ../../modules/services/open-webui.nix ]; diff --git a/test/services/pinchflat.nix b/test/services/pinchflat.nix index 9a39c26..39baf4d 100644 --- a/test/services/pinchflat.nix +++ b/test/services/pinchflat.nix @@ -17,7 +17,6 @@ let imports = [ testLib.baseModule ../../modules/blocks/hardcodedsecret.nix - ../../modules/blocks/lldap.nix ../../modules/services/pinchflat.nix ]; diff --git a/test/services/vaultwarden.nix b/test/services/vaultwarden.nix index 93b35f2..155e94b 100644 --- a/test/services/vaultwarden.nix +++ b/test/services/vaultwarden.nix @@ -1,4 +1,4 @@ -{ pkgs, lib, ... }: +{ pkgs, ... }: let testLib = pkgs.callPackage ../common.nix {};