2025-03-31 16:05:31 +02:00
|
|
|
{ lib, ... }:
|
|
|
|
let
|
|
|
|
port = 5678;
|
|
|
|
webhookUrl = "http://example.com";
|
|
|
|
in
|
|
|
|
{
|
|
|
|
name = "n8n";
|
|
|
|
meta.maintainers = with lib.maintainers; [
|
|
|
|
freezeboy
|
|
|
|
k900
|
|
|
|
];
|
2020-11-28 18:00:25 +01:00
|
|
|
|
2025-05-03 19:08:22 +02:00
|
|
|
node.pkgsReadOnly = false;
|
|
|
|
|
2025-03-31 16:05:31 +02:00
|
|
|
nodes.machine =
|
2025-05-03 19:08:22 +02:00
|
|
|
{ ... }:
|
2025-03-31 16:05:31 +02:00
|
|
|
{
|
2025-05-03 19:08:22 +02:00
|
|
|
nixpkgs.config.allowUnfreePredicate =
|
|
|
|
pkg:
|
|
|
|
builtins.elem (lib.getName pkg) [
|
|
|
|
"n8n"
|
|
|
|
];
|
|
|
|
|
2025-03-31 16:05:31 +02:00
|
|
|
services.n8n = {
|
|
|
|
enable = true;
|
|
|
|
webhookUrl = webhookUrl;
|
2020-11-28 18:00:25 +01:00
|
|
|
};
|
2025-03-31 16:05:31 +02:00
|
|
|
};
|
2020-11-28 18:00:25 +01:00
|
|
|
|
2025-03-31 16:05:31 +02:00
|
|
|
testScript = ''
|
|
|
|
machine.wait_for_unit("n8n.service")
|
|
|
|
machine.wait_for_console_text("Editor is now accessible via")
|
|
|
|
machine.succeed("curl --fail -vvv http://localhost:${toString port}/")
|
|
|
|
machine.succeed("grep -qF ${webhookUrl} /etc/systemd/system/n8n.service")
|
|
|
|
'';
|
|
|
|
}
|