enable n8n on arrow

This commit is contained in:
Noah Masur 2024-05-06 14:26:24 -04:00
parent 0c399fc269
commit 452afd70c1
No known key found for this signature in database
4 changed files with 13 additions and 12 deletions

View File

@ -233,6 +233,7 @@
irc = "irc.${baseName}"; irc = "irc.${baseName}";
metrics = "metrics.${baseName}"; metrics = "metrics.${baseName}";
minecraft = "minecraft.${baseName}"; minecraft = "minecraft.${baseName}";
n8n = "n8n.${baseName}";
prometheus = "prom.${baseName}"; prometheus = "prom.${baseName}";
paperless = "paper.${baseName}"; paperless = "paper.${baseName}";
secrets = "vault.${baseName}"; secrets = "vault.${baseName}";

View File

@ -22,6 +22,7 @@
cloudflare.enable = true; cloudflare.enable = true;
services.openssh.enable = true; services.openssh.enable = true;
services.caddy.enable = true; services.caddy.enable = true;
services.n8n.enable = true;
# nix-index seems to eat up too much memory for Vultr # nix-index seems to eat up too much memory for Vultr
home-manager.users.${globals.user}.programs.nix-index.enable = inputs.nixpkgs.lib.mkForce false; home-manager.users.${globals.user}.programs.nix-index.enable = inputs.nixpkgs.lib.mkForce false;

View File

@ -125,6 +125,10 @@
type = lib.types.str; type = lib.types.str;
description = "Hostname for IRC services."; description = "Hostname for IRC services.";
}; };
n8n = lib.mkOption {
type = lib.types.str;
description = "Hostname for n8n automation.";
};
transmission = lib.mkOption { transmission = lib.mkOption {
type = lib.types.str; type = lib.types.str;
description = "Hostname for peer2peer downloads (Transmission)."; description = "Hostname for peer2peer downloads (Transmission).";

View File

@ -4,18 +4,9 @@
{ config, lib, ... }: { config, lib, ... }:
{ {
options = { config = lib.mkIf config.services.n8n.enable {
n8nServer = lib.mkOption {
type = lib.types.nullOr lib.types.str;
description = "Hostname for n8n automation";
default = null;
};
};
config = lib.mkIf (config.n8nServer != null) {
services.n8n = { services.n8n = {
enable = true;
settings = { settings = {
n8n = { n8n = {
listenAddress = "127.0.0.1"; listenAddress = "127.0.0.1";
@ -24,13 +15,17 @@
}; };
}; };
# Configure Cloudflare DNS to point to this machine
services.cloudflare-dyndns.domains = [ config.hostnames.n8n ];
# Allow web traffic to Caddy
caddy.routes = [ caddy.routes = [
{ {
match = [ { host = [ config.n8nServer ]; } ]; match = [ { host = [ config.hostnames.n8n ]; } ];
handle = [ handle = [
{ {
handler = "reverse_proxy"; handler = "reverse_proxy";
upstreams = [ { dial = "localhost:5678"; } ]; upstreams = [ { dial = "localhost:${builtins.toString config.services.n8n.settings.n8n.port}"; } ];
} }
]; ];
} }