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)`.
|
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 {
|
config = lib.mkIf cfg.enable {
|
||||||
systemd.services.mealie = {
|
systemd.services.mealie = {
|
||||||
description = "Mealie, a self hosted recipe manager and meal planner";
|
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" ];
|
wants = [ "network-online.target" ];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
|
||||||
|
@ -78,5 +89,21 @@ in
|
||||||
StandardOutput = "journal";
|
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 = {
|
nodes =
|
||||||
server = {
|
let
|
||||||
services.mealie = {
|
sqlite = {
|
||||||
enable = true;
|
services.mealie = {
|
||||||
port = 9001;
|
enable = true;
|
||||||
|
port = 9001;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
postgres = {
|
||||||
|
imports = [ sqlite ];
|
||||||
|
services.mealie.database.createLocally = true;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
inherit sqlite postgres;
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
testScript = ''
|
testScript = ''
|
||||||
start_all()
|
start_all()
|
||||||
server.wait_for_unit("mealie.service")
|
|
||||||
server.wait_for_open_port(9001)
|
def test_mealie(node):
|
||||||
server.succeed("curl --fail http://localhost:9001")
|
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