From e16ccb1ac1f99ab3033a282904b74b0d54f16cf6 Mon Sep 17 00:00:00 2001 From: twoneis Date: Sun, 23 Feb 2025 15:06:53 +0100 Subject: [PATCH] added netdata --- devices/ellaca/options.nix | 3 ++- modules/default.nix | 1 + modules/netdata/default.nix | 25 +++++++++++++++++++++++++ options.nix | 5 +++-- 4 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 modules/netdata/default.nix diff --git a/devices/ellaca/options.nix b/devices/ellaca/options.nix index 6e5d53e..6eba26b 100644 --- a/devices/ellaca/options.nix +++ b/devices/ellaca/options.nix @@ -2,9 +2,10 @@ conf = { ssh.enable = true; nginx.enable = true; + netdata.enable = true; mail.enable = false; # broken website.enable = true; - fedi.enable = true; # broken + fedi.enable = true; matrix.enable = true; git.enable = true; diff --git a/modules/default.nix b/modules/default.nix index d9a4e8f..55bd068 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -13,6 +13,7 @@ in { ./layout ./mail ./matrix + ./netdata ./networking ./nginx ./niri diff --git a/modules/netdata/default.nix b/modules/netdata/default.nix new file mode 100644 index 0000000..5f6ff92 --- /dev/null +++ b/modules/netdata/default.nix @@ -0,0 +1,25 @@ +{ lib, pkgs, config, ... }: let + inherit (lib) mkIf; + inherit (config) conf; +in mkIf conf.netdata.enable { + services.nginx = { + virtualHosts = { + "netdata.twoneis.site" = { + useACMEHost = "twoneis.site"; + forceSSL = true; + locations."/".proxyPass = "http://localhost:19999"; + }; + }; + }; + + services.netdata = { + enable = true; + package = pkgs.netdata.override { withCloudUI = true; }; + config = { + global = { + "memory mode" = "ram"; + "error log" = "syslog"; + }; + }; + }; +} diff --git a/options.nix b/options.nix index 6c1498f..644124d 100644 --- a/options.nix +++ b/options.nix @@ -17,9 +17,10 @@ in { # Generally server options ssh.enable = mkEnableOption "Install my public key to allow accessing this machine via ssh."; - nginx.enable = mkEnableOption "Enable nginx."; + nginx.enable = mkEnableOption "Enable nginx. All the following options expect this to be enabled."; + netdata.enable = mkEnableOption "Enable netdata metrics tool."; mail.enable = mkEnableOption "Enable mail server."; - website.enable = mkEnableOption "Serve website through nginx. Nginx must be enabled to work correctly."; + website.enable = mkEnableOption "Serve website through nginx."; fedi.enable = mkEnableOption "Host a fedi server on this machine."; matrix.enable = mkEnableOption "Host a matrix server on this machine."; git.enable = mkEnableOption "Host a git server on this machine.";