mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-07-13 21:50:33 +03:00
nixos/mealie: add 'database.createLocally' (#403670)
This commit is contained in:
commit
e8f532dea2
2 changed files with 52 additions and 10 deletions
|
@ -50,13 +50,24 @@ in
|
|||
Expects the format of an `EnvironmentFile=`, as described by {manpage}`systemd.exec(5)`.
|
||||
'';
|
||||
};
|
||||
|
||||
database = {
|
||||
createLocally = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Configure local PostgreSQL database server for Mealie.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
systemd.services.mealie = {
|
||||
description = "Mealie, a self hosted recipe manager and meal planner";
|
||||
|
||||
after = [ "network-online.target" ];
|
||||
after = [ "network-online.target" ] ++ lib.optional cfg.database.createLocally "postgresql.service";
|
||||
requires = lib.optional cfg.database.createLocally "postgresql.service";
|
||||
wants = [ "network-online.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
|
@ -78,5 +89,21 @@ in
|
|||
StandardOutput = "journal";
|
||||
};
|
||||
};
|
||||
|
||||
services.mealie.settings = lib.mkIf cfg.database.createLocally {
|
||||
DB_ENGINE = "postgres";
|
||||
POSTGRES_URL_OVERRIDE = "postgresql://mealie:@/mealie?host=/run/postgresql";
|
||||
};
|
||||
|
||||
services.postgresql = lib.mkIf cfg.database.createLocally {
|
||||
enable = true;
|
||||
ensureDatabases = [ "mealie" ];
|
||||
ensureUsers = [
|
||||
{
|
||||
name = "mealie";
|
||||
ensureDBOwnership = true;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -10,20 +10,35 @@ import ./make-test-python.nix (
|
|||
];
|
||||
};
|
||||
|
||||
nodes = {
|
||||
server = {
|
||||
nodes =
|
||||
let
|
||||
sqlite = {
|
||||
services.mealie = {
|
||||
enable = true;
|
||||
port = 9001;
|
||||
};
|
||||
};
|
||||
postgres = {
|
||||
imports = [ sqlite ];
|
||||
services.mealie.database.createLocally = true;
|
||||
};
|
||||
in
|
||||
{
|
||||
inherit sqlite postgres;
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
server.wait_for_unit("mealie.service")
|
||||
server.wait_for_open_port(9001)
|
||||
server.succeed("curl --fail http://localhost:9001")
|
||||
|
||||
def test_mealie(node):
|
||||
node.wait_for_unit("mealie.service")
|
||||
node.wait_for_open_port(9001)
|
||||
node.succeed("curl --fail http://localhost:9001")
|
||||
|
||||
test_mealie(sqlite)
|
||||
simple.send_monitor_command("quit")
|
||||
simple.wait_for_shutdown()
|
||||
test_mealie(postgres)
|
||||
'';
|
||||
}
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue