From 3b57194a564bf99771d283e0dead4c4ab12e5072 Mon Sep 17 00:00:00 2001 From: Mohammad Rafiq Date: Thu, 12 Jun 2025 13:58:44 +0800 Subject: [PATCH] feat(mattermost): persist state directories --- .../server/web-apps/mattermost/default.nix | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/modules/nixos/server/web-apps/mattermost/default.nix b/modules/nixos/server/web-apps/mattermost/default.nix index 868d9b3..993617c 100644 --- a/modules/nixos/server/web-apps/mattermost/default.nix +++ b/modules/nixos/server/web-apps/mattermost/default.nix @@ -1,11 +1,12 @@ -{ - config, - lib, - pkgs, - ... -}: +{ config, lib, ... }: let cfg = config.server.web-apps.mattermost; + upstreamCfg = config.services.mattermost; + mkDir = directory: { + inherit directory; + inherit (upstreamCfg) user group; + mode = "0750"; + }; in { options.server.web-apps.mattermost = { @@ -30,6 +31,11 @@ in message = "You must enable a local instance of postgresql."; } ]; + environment.persistence."/persist".directories = [ + (mkDir cfg.configDir) + (mkDir cfg.logDir) + (mkDir cfg.dataDir) + ]; networking.firewall.allowedTCPPorts = lib.singleton cfg.port; services.mattermost = { enable = true; @@ -44,9 +50,9 @@ in siteUrl = "https://${cfg.url}"; }; services.postgresql = { - ensureDatabases = lib.singleton config.services.mattermost.database.name; + ensureDatabases = lib.singleton upstreamCfg.database.name; ensureUsers = lib.singleton { - name = config.services.mattermost.database.user; + name = upstreamCfg.database.user; ensureDBOwnership = true; }; };