nixos/tandoor-recipes: add 'database.createLocally' (#403669)

Changed files
+32 -23
nixos
modules
services
tests
+31
nixos/modules/services/misc/tandoor-recipes.nix
···
};
package = lib.mkPackageOption pkgs "tandoor-recipes" { };
+
+
database = {
+
createLocally = lib.mkOption {
+
type = lib.types.bool;
+
default = false;
+
description = ''
+
Configure local PostgreSQL database server for Tandoor Recipes.
+
'';
+
};
+
};
};
config = lib.mkIf cfg.enable {
···
systemd.services.tandoor-recipes = {
description = "Tandoor Recipes server";
+
+
requires = lib.optional cfg.database.createLocally "postgresql.target";
+
after = lib.optional cfg.database.createLocally "postgresql.target";
serviceConfig = {
ExecStart = ''
···
environment = env // {
PYTHONPATH = "${pkg.python.pkgs.makePythonPath pkg.propagatedBuildInputs}:${pkg}/lib/tandoor-recipes";
};
+
};
+
+
services.paperless.settings = lib.mkIf cfg.database.createLocally {
+
DB_ENGINE = "django.db.backends.postgresql";
+
POSTGRES_HOST = "/run/postgresql";
+
POSTGRES_USER = "tandoor_recipes";
+
POSTGRES_DB = "tandoor_recipes";
+
};
+
+
services.postgresql = lib.mkIf cfg.database.createLocally {
+
enable = true;
+
ensureDatabases = [ "tandoor_recipes" ];
+
ensureUsers = [
+
{
+
name = "tandoor_recipes";
+
ensureDBOwnership = true;
+
}
+
];
};
};
}
+1 -23
nixos/tests/tandoor-recipes.nix
···
{
services.tandoor-recipes = {
enable = true;
-
extraConfig = {
-
DB_ENGINE = "django.db.backends.postgresql";
-
POSTGRES_HOST = "/run/postgresql";
-
POSTGRES_USER = "tandoor_recipes";
-
POSTGRES_DB = "tandoor_recipes";
-
};
-
};
-
-
services.postgresql = {
-
enable = true;
-
ensureDatabases = [ "tandoor_recipes" ];
-
ensureUsers = [
-
{
-
name = "tandoor_recipes";
-
ensureDBOwnership = true;
-
}
-
];
-
};
-
-
systemd.services = {
-
tandoor-recipes = {
-
after = [ "postgresql.target" ];
-
};
+
database.createLocally = true;
};
};