diff options
| author | seth <[email protected]> | 2023-05-08 00:21:41 -0400 |
|---|---|---|
| committer | seth <[email protected]> | 2023-05-08 00:21:41 -0400 |
| commit | 9cedd06b8589a5d39a7a85e2efe646a8edebac53 (patch) | |
| tree | 8884a1238b0586396bc403098e23e78505ab514e /modules/server | |
| parent | 589c80eb1bcaf76b4a1a7e6f9cdd725fdb04e063 (diff) | |
modules: merge base and nixos
Diffstat (limited to 'modules/server')
| -rw-r--r-- | modules/server/default.nix | 85 | ||||
| -rw-r--r-- | modules/server/secrets.nix | 25 | ||||
| -rw-r--r-- | modules/server/services/default.nix | 5 | ||||
| -rw-r--r-- | modules/server/services/hercules.nix | 61 |
4 files changed, 0 insertions, 176 deletions
diff --git a/modules/server/default.nix b/modules/server/default.nix deleted file mode 100644 index 9692a82..0000000 --- a/modules/server/default.nix +++ /dev/null @@ -1,85 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - cfg = config.getchoo.server; - inherit (lib) mkDefault mkEnableOption mkIf; -in { - options.getchoo.server.enable = mkEnableOption "enable server configuration"; - - imports = [ - ./secrets.nix - ./services - ]; - - config = mkIf cfg.enable { - getchoo = { - base = { - enable = true; - documentation.enable = false; - defaultPackages.enable = false; - }; - - nixos = { - enable = true; - networking.enable = false; - }; - }; - - environment.systemPackages = [pkgs.cachix]; - - networking = { - firewall = let - ports = [80 420]; - in { - allowedUDPPorts = ports; - allowedTCPPorts = ports; - }; - }; - - nix = { - gc.options = "--delete-older-than 7d --max-freed 50G"; - settings = { - trusted-users = ["${config.networking.hostName}"]; - trusted-substituters = [ - "https://getchoo.cachix.org" - "https://nix-community.cachix.org" - "https://hercules-ci.cachix.org" - "https://wurzelpfropf.cachix.org" - ]; - - trusted-public-keys = [ - "getchoo.cachix.org-1:ftdbAUJVNaFonM0obRGgR5+nUmdLMM+AOvDOSx0z5tE=" - "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" - "hercules-ci.cachix.org-1:ZZeDl9Va+xe9j+KqdzoBZMFJHVQ42Uu/c/1/KMC5Lw0=" - "wurzelpfropf.cachix.org-1:ilZwK5a6wJqVr7Fyrzp4blIEkGK+LJT0QrpWr1qBNq0=" - ]; - }; - }; - - programs = { - git.enable = mkDefault true; - vim.defaultEditor = mkDefault true; - }; - - security = { - pam.enableSSHAgentAuth = mkDefault true; - }; - - services = { - endlessh = { - enable = mkDefault true; - port = mkDefault 22; - openFirewall = mkDefault true; - }; - - openssh = { - enable = true; - passwordAuthentication = mkDefault false; - ports = mkDefault [420]; - }; - }; - }; -} diff --git a/modules/server/secrets.nix b/modules/server/secrets.nix deleted file mode 100644 index c0290cd..0000000 --- a/modules/server/secrets.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ - config, - lib, - self, - ... -}: let - cfg = config.getchoo.server.secrets; - inherit (lib) mkEnableOption mkIf; -in { - options.getchoo.server.secrets = { - enable = mkEnableOption "enable secret management"; - }; - - config.age = let - baseDir = "${self}/secrets/hosts/${config.networking.hostName}"; - in - mkIf cfg.enable { - identityPaths = ["/etc/age/key"]; - - secrets = { - rootPassword.file = "${baseDir}/rootPassword.age"; - userPassword.file = "${baseDir}/userPassword.age"; - }; - }; -} diff --git a/modules/server/services/default.nix b/modules/server/services/default.nix deleted file mode 100644 index 68271b1..0000000 --- a/modules/server/services/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -_: { - imports = [ - ./hercules.nix - ]; -} diff --git a/modules/server/services/hercules.nix b/modules/server/services/hercules.nix deleted file mode 100644 index 782e5a8..0000000 --- a/modules/server/services/hercules.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ - config, - hercules-ci-agent, - lib, - pkgs, - self, - ... -}: let - cfg = config.getchoo.server.services.hercules-ci; - inherit (lib) mkEnableOption mkIf; -in { - options.getchoo.server.services.hercules-ci = { - enable = mkEnableOption "enable hercules-ci"; - secrets.enable = mkEnableOption "manage secrets for hercules-ci"; - }; - - config = mkIf cfg.enable { - age.secrets = let - baseDir = "${self}/secrets/hosts/${config.networking.hostName}"; - hercArgs = { - mode = "400"; - owner = "hercules-ci-agent"; - group = "hercules-ci-agent"; - }; - in - mkIf cfg.secrets.enable { - binaryCache = - { - file = "${baseDir}/binaryCache.age"; - } - // hercArgs; - - clusterToken = - { - file = "${baseDir}/clusterToken.age"; - } - // hercArgs; - - secretsJson = - { - file = "${baseDir}/secretsJson.age"; - } - // hercArgs; - }; - - environment.systemPackages = [ - hercules-ci-agent.packages.${pkgs.stdenv.hostPlatform.system}.hercules-ci-cli - ]; - - services = { - hercules-ci-agent = { - enable = true; - settings = { - binaryCachesPath = config.age.secrets.binaryCache.path; - clusterJoinTokenPath = config.age.secrets.clusterToken.path; - secretsJsonPath = config.age.secrets.secretsJson.path; - }; - }; - }; - }; -} |
