diff options
author | Bernardo Meurer <bernardo@meurer.org> | 2021-08-03 23:29:31 -0700 |
---|---|---|
committer | Bernardo Meurer <bernardo@meurer.org> | 2021-08-03 23:29:31 -0700 |
commit | f949ce7449cfa2bd42992e7791a94a7249ec4976 (patch) | |
tree | 6ef5e32e96bb1318cd61932b7b8bcee88f4deff8 /nixos | |
parent | 5e1e2914eb8d6548ff5bd710afb89a6043bba620 (diff) |
nixos/hqplayerd: set HOME to path in state directory
The service likes to write files uploaded by the user to the service user's $HOME. In our case the hqplayerd user has no home directory, since it's a system user, and regardless we'd like to keep the service's state contained. With this change the unit forces HOME to point to /var/lib/hqplayer/home, which works around the issue.
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/services/audio/hqplayerd.nix | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/nixos/modules/services/audio/hqplayerd.nix b/nixos/modules/services/audio/hqplayerd.nix index 3a703c97c0f77..b4d8468a23755 100644 --- a/nixos/modules/services/audio/hqplayerd.nix +++ b/nixos/modules/services/audio/hqplayerd.nix @@ -100,8 +100,9 @@ in systemd = { tmpfiles.rules = [ - "d ${configDir} 0755 ${cfg.user} ${cfg.group} - -" - "d ${stateDir} 0755 ${cfg.user} ${cfg.group} - -" + "d ${configDir} 0755 ${cfg.user} ${cfg.group} - -" + "d ${stateDir} 0755 ${cfg.user} ${cfg.group} - -" + "d ${stateDir}/home 0755 ${cfg.user} ${cfg.group} - -" ]; services.hqplayerd = { @@ -110,6 +111,8 @@ in requires = [ "network-online.target" "sound.target" "systemd-udev-settle.service" ]; after = [ "network-online.target" "sound.target" "systemd-udev-settle.service" "local-fs.target" "remote-fs.target" "systemd-tmpfiles-setup.service" ]; + environment.HOME = "${stateDir}/home"; + unitConfig.ConditionPathExists = [ configDir stateDir ]; preStart = |