38 lines
788 B
Nix
38 lines
788 B
Nix
{
|
|
config,
|
|
lib,
|
|
...
|
|
}: let
|
|
inherit (lib) mkIf elem optionals;
|
|
inherit (config.ooknet.server) services database;
|
|
in {
|
|
config = mkIf database.postgresql.enable {
|
|
services.postgresql = {
|
|
enable = true;
|
|
|
|
checkConfig = true;
|
|
|
|
ensureDatabases = optionals (elem "forgejo" services) ["forgejo"];
|
|
|
|
ensureUsers =
|
|
[
|
|
{
|
|
name = "postgres";
|
|
ensureClauses = {
|
|
login = true;
|
|
superuser = true;
|
|
replication = true;
|
|
createdb = true;
|
|
createrole = true;
|
|
};
|
|
}
|
|
]
|
|
++ (optionals (elem "forgejo" services) [
|
|
{
|
|
name = "forgejo";
|
|
ensureDBOwnership = true;
|
|
}
|
|
]);
|
|
};
|
|
};
|
|
}
|