{ lib, config, ... }: { services.postgresql = let o = lib.optional; cfg = config.services; db = name: { inherit name; ensureDBOwnership = true; }; in { enable = true; ensureDatabases = (o cfg.matrix-synapse.enable "matrix-synapse") ++ (o cfg.matrix-appservice-irc.enable "matrix-appservice-irc"); ensureUsers = (o cfg.matrix-synapse.enable (db "matrix-synapse")) ++ (o cfg.matrix-appservice-irc.enable (db "matrix-appservice-irc")); }; }