From 7241f54c9fa18da72e4063ff70eb077481826a7c Mon Sep 17 00:00:00 2001 From: Ryan Horiguchi Date: Fri, 6 Dec 2024 21:31:55 +0100 Subject: [PATCH] nixos/librenms: use db socket when set --- .../modules/services/monitoring/librenms.nix | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/nixos/modules/services/monitoring/librenms.nix b/nixos/modules/services/monitoring/librenms.nix index 918c01ebaf22..1d4eb1e59333 100644 --- a/nixos/modules/services/monitoring/librenms.nix +++ b/nixos/modules/services/monitoring/librenms.nix @@ -526,13 +526,25 @@ in User = cfg.user; Group = cfg.group; ExecStartPre = lib.mkIf cfg.database.createLocally [ - "!${pkgs.writeShellScript "librenms-db-init" '' - DB_PASSWORD=$(cat ${cfg.database.passwordFile} | tr -d '\n') - echo "ALTER USER '${cfg.database.username}'@'localhost' IDENTIFIED BY '$DB_PASSWORD';" | ${pkgs.mariadb}/bin/mysql - ${lib.optionalString cfg.useDistributedPollers '' - echo "ALTER USER '${cfg.database.username}'@'%' IDENTIFIED BY '$DB_PASSWORD';" | ${pkgs.mariadb}/bin/mysql - ''} - ''}" + "!${ + pkgs.writeShellScript "librenms-db-init" ( + if !isNull cfg.database.socket then + '' + echo "ALTER USER '${cfg.database.username}'@'localhost' IDENTIFIED VIA unix_socket;" | ${pkgs.mariadb}/bin/mysql --socket='${cfg.database.socket}' + ${lib.optionalString cfg.useDistributedPollers '' + echo "ALTER USER '${cfg.database.username}'@'%' IDENTIFIED VIA unix_socket;" | ${pkgs.mariadb}/bin/mysql --socket='${cfg.database.socket}' + ''} + '' + else + '' + DB_PASSWORD=$(cat ${cfg.database.passwordFile} | tr -d '\n') + echo "ALTER USER '${cfg.database.username}'@'localhost' IDENTIFIED BY '$DB_PASSWORD';" | ${pkgs.mariadb}/bin/mysql + ${lib.optionalString cfg.useDistributedPollers '' + echo "ALTER USER '${cfg.database.username}'@'%' IDENTIFIED BY '$DB_PASSWORD';" | ${pkgs.mariadb}/bin/mysql + ''} + '' + ) + }" ]; }; script = '' @@ -567,6 +579,7 @@ in then '' # use socket connection echo "DB_SOCKET=${cfg.database.socket}" >> ${cfg.dataDir}/.env + echo "DB_PASSWORD=null" >> ${cfg.dataDir}/.env '' else '' # use TCP connection