From 8fe6382c480eb139f838da652772abe3e5a7e635 Mon Sep 17 00:00:00 2001 From: cnst Date: Thu, 25 Sep 2025 17:16:55 +0200 Subject: [PATCH] feat(swaybg) adding bg script --- hosts/sobotka/server.nix | 3 ++ modules/default.nix | 1 + modules/server/authentik/default.nix | 2 +- modules/server/n8n/default.nix | 64 ++++++++++++++++++++++++++++ 4 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 modules/server/n8n/default.nix diff --git a/hosts/sobotka/server.nix b/hosts/sobotka/server.nix index 704dbe00..b4d53ce1 100644 --- a/hosts/sobotka/server.nix +++ b/hosts/sobotka/server.nix @@ -30,6 +30,9 @@ homepage-dashboard = { enable = true; }; + n8n = { + enable = true; + }; bazarr = { enable = true; }; diff --git a/modules/default.nix b/modules/default.nix index 7d6d4312..96f0c853 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -135,6 +135,7 @@ ./server/sonarr ./server/jellyseerr ./server/jellyfin + ./server/n8n ./server/podman ./server/unbound ./server/uptime-kuma diff --git a/modules/server/authentik/default.nix b/modules/server/authentik/default.nix index fbc5290c..1ec92fba 100644 --- a/modules/server/authentik/default.nix +++ b/modules/server/authentik/default.nix @@ -23,7 +23,7 @@ in { }; homepage.description = lib.mkOption { type = lib.types.str; - default = "Open Source Identity and Access Management"; + default = "An open-source IdP for modern SSO"; }; homepage.icon = lib.mkOption { type = lib.types.str; diff --git a/modules/server/n8n/default.nix b/modules/server/n8n/default.nix new file mode 100644 index 00000000..98209498 --- /dev/null +++ b/modules/server/n8n/default.nix @@ -0,0 +1,64 @@ +{ + config, + lib, + ... +}: let + unit = "n8n"; + srv = config.server; + cfg = config.server.${unit}; +in { + options.server.${unit} = { + enable = lib.mkEnableOption { + description = "Enable ${unit}"; + }; + configDir = lib.mkOption { + type = lib.types.str; + default = "/var/lib/${unit}"; + }; + url = lib.mkOption { + type = lib.types.str; + default = "${unit}.${srv.domain}"; + }; + homepage.name = lib.mkOption { + type = lib.types.str; + default = "n8n"; + }; + homepage.description = lib.mkOption { + type = lib.types.str; + default = "A workflow automation platform"; + }; + homepage.icon = lib.mkOption { + type = lib.types.str; + default = "n8n.svg"; + }; + homepage.category = lib.mkOption { + type = lib.types.str; + default = "Services"; + }; + }; + config = lib.mkIf cfg.enable { + services = { + n8n = { + enable = true; + openFirewall = true; + }; + + traefik = { + dynamicConfigOptions = { + http = { + services.n8n.loadBalancer.servers = [{url = "http://127.0.0.1:5678";}]; + routers = { + n8n = { + entryPoints = ["websecure"]; + rule = "Host(`${cfg.url}`)"; + service = "n8n"; + tls.certResolver = "letsencrypt"; + # middlewares = ["authentik"]; + }; + }; + }; + }; + }; + }; + }; +}