};
otherObjects = map
(n: (pkgs.callPackage (./. + "/objects_" + n + ".nix") { inherit emailCheck; }))
- [ "ulminfo-fr" "phare" "eban" ];
+ [ "ulminfo-fr" "phare" ];
masterObjects = pkgs.callPackage ./objects_master.nix { inherit config; };
commonObjects = pkgs.callPackage ./objects_common.nix ({
master = cfg.master;
};
config = lib.mkIf cfg.enable {
+ myServices.chatonsProperties.hostings.monitoring = lib.mkIf cfg.master {
+ file.datetime = "2022-08-27T16:00:00";
+ hosting = {
+ name = "Monitoring";
+ description = "Website and server health monitoring";
+ website = "https://status.immae.eu";
+ logo = "https://www.naemon.io/favicon.ico";
+ status.level = "OK";
+ status.description = "OK";
+ registration.load = "OPEN";
+ install.type = "PACKAGE";
+ };
+ software = {
+ name = "naemon";
+ website = "https://www.naemon.io/";
+ license.url = "https://github.com/naemon/naemon-core/blob/master/COPYING";
+ license.name = "GNU General Public License v2.0";
+ version = config.services.naemon.package.version;
+ source.url = "https://github.com/naemon/naemon-core";
+ modules = "livestatus,status-engine";
+ };
+ };
services.nginx = lib.mkIf config.myServices.status.enable {
virtualHosts."status.immae.eu".locations = objectsFiles // {
"=/common/immae.cfg" = {
};
};
- services.duplyBackup.profiles.monitoring = {
- rootDir = config.services.naemon.varDir;
- };
security.sudo.extraRules = let
pluginsSudo = lib.lists.remove null (lib.attrsets.mapAttrsToList (k: v:
if (v ? sudo)
text = "MAILADDR ${config.myEnv.monitoring.email}";
};
- secrets.keys = [
- {
- dest = "naemon/id_rsa";
+ secrets.keys = {
+ "naemon/id_rsa" = {
user = "naemon";
group = "naemon";
permissions = "0400";
text = config.myEnv.monitoring.ssh_secret_key;
- }
- ] ++ lib.optionals cfg.master (
- lib.mapAttrsToList (k: v:
- {
- dest = "${k}_access_key";
+ };
+ } // lib.optionalAttrs cfg.master (
+ lib.mapAttrs' (k: v: lib.nameValuePair "${k}_access_key" {
user = "naemon";
group = "naemon";
permissions = "0400";