diff --git a/.agenix_config.nix b/.agenix_config.nix
index 3452bf2..5519a5c 100644
Binary files a/.agenix_config.nix and b/.agenix_config.nix differ
diff --git a/flake.nix b/flake.nix
index 23b9659..1d2a6d3 100644
--- a/flake.nix
+++ b/flake.nix
@@ -133,6 +133,7 @@
                 usersPath = ./users;
                 hostsPath = ./hosts;
                 packagesPath = ./packages;
+                sharedPath = ./shared;
               } // specialArgs;
 
               modules =
diff --git a/hosts/istal/services/prometheus.nix b/hosts/istal/services/prometheus.nix
index ad19ba3..fe5bab9 100644
--- a/hosts/istal/services/prometheus.nix
+++ b/hosts/istal/services/prometheus.nix
@@ -1,17 +1,5 @@
-{ config, ... }:
+{ sharedPath, ... }:
 
 {
-  services.prometheus.exporters.node = {
-    enable = true;
-    port = 40000;
-    # https://github.com/NixOS/nixpkgs/blob/nixos-24.05/nixos/modules/services/monitoring/prometheus/exporters.nix
-    enabledCollectors = [ "systemd" ];
-    # /nix/store/zgsw0yx18v10xa58psanfabmg95nl2bb-node_exporter-1.8.1/bin/node_exporter  --help
-    extraFlags = [ "--collector.ethtool" "--collector.softirqs" "--collector.tcpstat" "--collector.wifi" ];
-  };
-
-  networking.firewall.allowedTCPPorts = [
-    config.services.prometheus.exporters.node.port
-  ];
-
+  imports = [ (sharedPath + "/prometheus/node.nix") ];
 }
diff --git a/hosts/tatos/services/prometheus.nix b/hosts/tatos/services/prometheus.nix
index 7bcceaa..9a5653a 100644
--- a/hosts/tatos/services/prometheus.nix
+++ b/hosts/tatos/services/prometheus.nix
@@ -1,4 +1,4 @@
-{ config, ... }:
+{ config, sharedPath, ... }:
 
 let
   nodeExporterPort = 40000;
@@ -10,26 +10,14 @@ let
   };
 in
 {
+  imports = [ (sharedPath + "/prometheus/node.nix") ];
+
   age.secrets.prometheus-basicauth-password = {
     file = ./prometheus-basicauth-password.age;
     owner = "prometheus";
     group = "prometheus";
   };
 
-  services.prometheus.exporters.node = {
-    enable = true;
-    port = nodeExporterPort;
-    # https://github.com/NixOS/nixpkgs/blob/nixos-24.05/nixos/modules/services/monitoring/prometheus/exporters.nix
-    enabledCollectors = [ "systemd" ];
-    # /nix/store/zgsw0yx18v10xa58psanfabmg95nl2bb-node_exporter-1.8.1/bin/node_exporter  --help
-    extraFlags = [
-      "--collector.ethtool"
-      "--collector.softirqs"
-      "--collector.tcpstat"
-      "--collector.wifi"
-    ];
-  };
-
   # https://wiki.nixos.org/wiki/Prometheus
   # https://nixos.org/manual/nixos/stable/#module-services-prometheus-exporters-configuration
   # https://github.com/NixOS/nixpkgs/blob/nixos-24.05/nixos/modules/services/monitoring/prometheus/default.nix
@@ -41,6 +29,7 @@ in
     scrapeConfigs = [
       {
         job_name = "node_dev";
+        inherit basic_auth;
         static_configs = [
           {
             targets = [
diff --git a/shared/prometheus/nginx.nix b/shared/prometheus/nginx.nix
new file mode 100644
index 0000000..86c0cab
--- /dev/null
+++ b/shared/prometheus/nginx.nix
@@ -0,0 +1,15 @@
+{ ... }:
+
+{
+  imports = [ ./web-config.nix ];
+
+  services.prometheus.exporters.nginx = {
+    enable = true;
+    port = 40001;
+    sslVerify = true;
+    openFirewall = true;
+  };
+
+  services.nginx.statusPage = true;
+
+}
diff --git a/shared/prometheus/node.nix b/shared/prometheus/node.nix
new file mode 100644
index 0000000..0216c03
--- /dev/null
+++ b/shared/prometheus/node.nix
@@ -0,0 +1,18 @@
+{ ... }:
+
+{
+  imports = [ ./web-config.nix ];
+
+  services.prometheus.exporters.node = {
+    enable = true;
+    port = 40000;
+    openFirewall = true;
+    enabledCollectors = [ "systemd" ];
+    extraFlags = [
+      "--collector.ethtool"
+      "--collector.softirqs"
+      "--collector.tcpstat"
+      "--collector.wifi"
+    ];
+  };
+}
diff --git a/shared/prometheus/web-config.nix b/shared/prometheus/web-config.nix
new file mode 100644
index 0000000..fd90291
--- /dev/null
+++ b/shared/prometheus/web-config.nix
@@ -0,0 +1,17 @@
+{ config, lib, ... }:
+
+let
+  webConfigFileFlag = "--web.config.file=${config.age.secrets.prometheus-web-config.path}";
+  extraFlags = lib.mkAfter [webConfigFileFlag];
+in
+{
+  age.secrets.prometheus-web-config = {
+    file = ./web-config.yml.age;
+    mode = "444";
+  };
+
+  services.prometheus.exporters = {
+    node = { inherit extraFlags; };
+    nginx = { inherit extraFlags; };
+  };
+}
diff --git a/shared/prometheus/web-config.yml.age b/shared/prometheus/web-config.yml.age
new file mode 100644
index 0000000..1c51a12
Binary files /dev/null and b/shared/prometheus/web-config.yml.age differ