38 lines
1.7 KiB
Diff
38 lines
1.7 KiB
Diff
diff --git a/nixos/modules/services/web-servers/pomerium.nix b/nixos/modules/services/web-servers/pomerium.nix
|
|
--- a/nixos/modules/services/web-servers/pomerium.nix
|
|
+++ b/nixos/modules/services/web-servers/pomerium.nix
|
|
@@ -69,11 +69,16 @@ in
|
|
CERTIFICATE_KEY_FILE = "key.pem";
|
|
};
|
|
startLimitIntervalSec = 60;
|
|
+ script = ''
|
|
+ if [[ -v CREDENTIALS_DIRECTORY ]]; then
|
|
+ cd "$CREDENTIALS_DIRECTORY"
|
|
+ fi
|
|
+ exec "${pkgs.pomerium}/bin/pomerium" -config "${cfgFile}"
|
|
+ '';
|
|
|
|
serviceConfig = {
|
|
DynamicUser = true;
|
|
StateDirectory = [ "pomerium" ];
|
|
- ExecStart = "${pkgs.pomerium}/bin/pomerium -config ${cfgFile}";
|
|
|
|
PrivateUsers = false; # breaks CAP_NET_BIND_SERVICE
|
|
MemoryDenyWriteExecute = false; # breaks LuaJIT
|
|
@@ -99,7 +104,6 @@ in
|
|
AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ];
|
|
CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ];
|
|
|
|
- WorkingDirectory = mkIf (cfg.useACMEHost != null) "$CREDENTIALS_DIRECTORY";
|
|
LoadCredential = optionals (cfg.useACMEHost != null) [
|
|
"fullchain.pem:/var/lib/acme/${cfg.useACMEHost}/fullchain.pem"
|
|
"key.pem:/var/lib/acme/${cfg.useACMEHost}/key.pem"
|
|
@@ -119,7 +123,7 @@ in
|
|
before = [ "acme-finished-${cfg.useACMEHost}.target" ];
|
|
after = [ "acme-${cfg.useACMEHost}.service" ];
|
|
# Block reloading if not all certs exist yet.
|
|
- unitConfig.ConditionPathExists = [ "${certs.${cfg.useACMEHost}.directory}/fullchain.pem" ];
|
|
+ unitConfig.ConditionPathExists = [ "${config.security.acme.certs.${cfg.useACMEHost}.directory}/fullchain.pem" ];
|
|
serviceConfig = {
|
|
Type = "oneshot";
|
|
TimeoutSec = 60;
|