Loading nixos/modules/services/web-apps/mealie.nix +28 −1 Original line number Diff line number Diff line Loading @@ -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" ]; Loading @@ -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; } ]; }; }; } nixos/tests/mealie.nix +24 −9 Original line number Diff line number Diff line Loading @@ -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
nixos/modules/services/web-apps/mealie.nix +28 −1 Original line number Diff line number Diff line Loading @@ -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" ]; Loading @@ -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; } ]; }; }; }
nixos/tests/mealie.nix +24 −9 Original line number Diff line number Diff line Loading @@ -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) ''; } )