diff --git a/hosts/srv-monitor/default.nix b/hosts/srv-monitor/default.nix index 9129c74..7d7dd11 100644 --- a/hosts/srv-monitor/default.nix +++ b/hosts/srv-monitor/default.nix @@ -52,6 +52,11 @@ domain = "grafana.${config.custom.services.tailscale.domain}"; }; + victorialogs = { + enable = true; + domain = "logs.${config.custom.services.tailscale.domain}"; + }; + caddy.virtualHosts = { gatus = { inherit (config.custom.services.gatus) domain port; @@ -62,6 +67,9 @@ grafana = { inherit (config.custom.services.grafana) domain port; }; + victorialogs = { + inherit (config.custom.services.victorialogs) domain port; + }; }; }; }; diff --git a/modules/system/services/victorialogs.nix b/modules/system/services/victorialogs.nix new file mode 100644 index 0000000..98812d9 --- /dev/null +++ b/modules/system/services/victorialogs.nix @@ -0,0 +1,41 @@ +{ + config, + pkgs-unstable, + lib, + ... +}: +let + cfg = config.custom.services.victorialogs; +in +{ + options.custom.services.victorialogs = { + enable = lib.mkEnableOption ""; + maxDiskSpaceUsage = lib.mkOption { + type = lib.types.nonEmptyStr; + default = "10GiB"; + }; + domain = lib.mkOption { + type = lib.types.nonEmptyStr; + default = ""; + }; + port = lib.mkOption { + type = lib.types.port; + default = 9428; + }; + }; + + config = lib.mkIf cfg.enable { + meta = { + domains.list = [ cfg.domain ]; + ports.list = [ cfg.port ]; + }; + + services.victorialogs = { + enable = true; + package = pkgs-unstable.victorialogs; + + listenAddress = ":${builtins.toString cfg.port}"; + extraOptions = [ "-retention.maxDiskSpaceUsageBytes=${cfg.maxDiskSpaceUsage}" ]; + }; + }; +}