nixos/zwave-js: allow non-world-readable secrets (#411496)
This commit is contained in:
@@ -108,8 +108,9 @@ in
|
||||
description = "Z-Wave JS Server";
|
||||
serviceConfig = {
|
||||
ExecStartPre = ''
|
||||
/bin/sh -c "${pkgs.jq}/bin/jq -s '.[0] * .[1]' ${configFile} ${cfg.secretsConfigFile} > ${mergedConfigFile}"
|
||||
/bin/sh -c "${pkgs.jq}/bin/jq -s '.[0] * .[1]' ${configFile} %d/secrets.json > ${mergedConfigFile}"
|
||||
'';
|
||||
LoadCredential = "secrets.json:${cfg.secretsConfigFile}";
|
||||
ExecStart = lib.concatStringsSep " " [
|
||||
"${cfg.package}/bin/zwave-server"
|
||||
"--config ${mergedConfigFile}"
|
||||
|
||||
+10
-11
@@ -1,25 +1,24 @@
|
||||
{ pkgs, lib, ... }:
|
||||
{ lib, ... }:
|
||||
|
||||
let
|
||||
secretsConfigFile = pkgs.writeText "secrets.json" (
|
||||
builtins.toJSON {
|
||||
securityKeys = {
|
||||
"S0_Legacy" = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
|
||||
};
|
||||
}
|
||||
);
|
||||
in
|
||||
{
|
||||
name = "zwave-js";
|
||||
meta.maintainers = with lib.maintainers; [ graham33 ];
|
||||
|
||||
nodes = {
|
||||
machine = {
|
||||
# show that 0400 secrets can be used by the DynamicUser; ideally
|
||||
# this would be an out-of-store file, e.g. /run/secrets/jwavejs/secrets.json
|
||||
environment.etc."zwavejs/secrets.json" = {
|
||||
mode = "0400";
|
||||
text = builtins.toJSON {
|
||||
securityKeys.S0_Legacy = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
|
||||
};
|
||||
};
|
||||
services.zwave-js = {
|
||||
enable = true;
|
||||
serialPort = "/dev/null";
|
||||
extraFlags = [ "--mock-driver" ];
|
||||
inherit secretsConfigFile;
|
||||
secretsConfigFile = "/etc/zwavejs/secrets.json";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user