]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - modules/private/system/monitoring-1.nix
Add monitoring host
[perso/Immae/Config/Nix.git] / modules / private / system / monitoring-1.nix
diff --git a/modules/private/system/monitoring-1.nix b/modules/private/system/monitoring-1.nix
new file mode 100644 (file)
index 0000000..1460478
--- /dev/null
@@ -0,0 +1,41 @@
+{ privateFiles }:
+{ config, pkgs, resources, ... }:
+{
+  boot.kernelPackages = pkgs.linuxPackages_latest;
+  myEnv = import "${privateFiles}/environment.nix" // { inherit privateFiles; };
+  hostEnv.FQDN = "monitoring-1.v.immae.eu";
+
+  imports = builtins.attrValues (import ../..);
+
+  deployment = {
+    targetEnv = "hetznerCloud";
+    hetznerCloud = {
+      authToken = config.myEnv.hetznerCloud.authToken;
+      datacenter = "hel1-dc2";
+      location  ="hel1";
+      serverType = "cx11";
+    };
+  };
+
+  myServices.monitoring.enable = true;
+  myServices.monitoring.master = true;
+  myServices.status.enable = true;
+  networking = {
+    firewall.enable = true;
+    interfaces."ens3".ipv4.addresses = pkgs.lib.attrsets.mapAttrsToList
+      (n: ips: { address = ips.ip4; prefixLength = 32; })
+      (pkgs.lib.attrsets.filterAttrs (n: v: n != "main") config.myEnv.servers.monitoring-1.ips);
+    interfaces."ens3".ipv6.addresses = pkgs.lib.flatten (pkgs.lib.attrsets.mapAttrsToList
+      (n: ips: map (ip: { address = ip; prefixLength = (if n == "main" && ip == pkgs.lib.head ips.ip6 then 64 else 128); }) (ips.ip6 or []))
+      config.myEnv.servers.monitoring-1.ips);
+    defaultGateway6 = { address = "fe80::1"; interface = "ens3"; };
+  };
+  myServices.mailRelay.enable = true;
+
+  # This value determines the NixOS release with which your system is
+  # to be compatible, in order to avoid breaking some software such as
+  # database servers. You should change this only after NixOS release
+  # notes say you should.
+  # https://nixos.org/nixos/manual/release-notes.html
+  system.stateVersion = "19.03"; # Did you read the comment?
+}