about summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorChristian Kauhaus <kc@flyingcircus.io>2016-08-04 15:25:23 +0200
committerRok Garbas <rok@garbas.si>2016-08-04 15:25:23 +0200
commitea7e705cd905e01bc65f2a7ccc6e700bd1bcd4e0 (patch)
treec6cbffe9779d90d4ab3f8c3b1d1dd91aa69d968d /nixos
parent8f52a0f926cd8c3f8f6e24173b6c66eae5bcb5dc (diff)
downloadnixlib-ea7e705cd905e01bc65f2a7ccc6e700bd1bcd4e0.tar
nixlib-ea7e705cd905e01bc65f2a7ccc6e700bd1bcd4e0.tar.gz
nixlib-ea7e705cd905e01bc65f2a7ccc6e700bd1bcd4e0.tar.bz2
nixlib-ea7e705cd905e01bc65f2a7ccc6e700bd1bcd4e0.tar.lz
nixlib-ea7e705cd905e01bc65f2a7ccc6e700bd1bcd4e0.tar.xz
nixlib-ea7e705cd905e01bc65f2a7ccc6e700bd1bcd4e0.tar.zst
nixlib-ea7e705cd905e01bc65f2a7ccc6e700bd1bcd4e0.zip
varnish: fix localstatedir for varnish* tools (#17508)
The varnish tools (varnishstat, varnishlog, ...) tried to load the VSM
file from a spurious var directory in the Nix store. Fix the default so
the tools "just work" when also keeping services.varnish.stateDir at the
default.

Notes:
- The tools use $localstatedir/$HOSTNAME so I've adapted the default for
  stateDir as well to contain hostName.
- Added postStop action to remove the localstatedir. There is no point
  in keeping it around when varnish does not run, as it regenerates it
  on startup anyway.

Fixes #7495
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/web-servers/varnish/default.nix5
1 files changed, 4 insertions, 1 deletions
diff --git a/nixos/modules/services/web-servers/varnish/default.nix b/nixos/modules/services/web-servers/varnish/default.nix
index 364f6c68faca..61df43ec2352 100644
--- a/nixos/modules/services/web-servers/varnish/default.nix
+++ b/nixos/modules/services/web-servers/varnish/default.nix
@@ -28,7 +28,7 @@ with lib;
       };
 
       stateDir = mkOption {
-        default = "/var/spool/varnish";
+        default = "/var/spool/varnish/${config.networking.hostName}";
         description = "
           Directory holding all state for Varnish to run.
         ";
@@ -46,6 +46,9 @@ with lib;
         mkdir -p ${cfg.stateDir}
         chown -R varnish:varnish ${cfg.stateDir}
       '';
+      postStop = ''
+        rm -rf ${cfg.stateDir}
+      '';
       path = [ pkgs.gcc ];
       serviceConfig.ExecStart = "${pkgs.varnish}/sbin/varnishd -a ${cfg.http_address} -f ${pkgs.writeText "default.vcl" cfg.config} -n ${cfg.stateDir} -u varnish";
       serviceConfig.Type = "forking";