From 062b01a22a3424cca3f9e04acdda2f1562358ba6 Mon Sep 17 00:00:00 2001 From: Norbert Melzer Date: Tue, 27 Dec 2022 22:08:19 +0100 Subject: [PATCH] refactor(nixos): extract paperless from mimas mainconfig --- nixos/configurations/mimas.nix | 22 +--------------- nixos/configurations/mimas/paperless.nix | 32 ++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 21 deletions(-) create mode 100644 nixos/configurations/mimas/paperless.nix diff --git a/nixos/configurations/mimas.nix b/nixos/configurations/mimas.nix index dbd16cb2..03caa482 100644 --- a/nixos/configurations/mimas.nix +++ b/nixos/configurations/mimas.nix @@ -17,6 +17,7 @@ in { imports = [ (import ./mimas/restic.nix inputs) + (import ./mimas/paperless.nix inputs) ]; nix.allowedUnfree = ["zerotierone"] ++ printerPackages ++ steamPackages; @@ -301,13 +302,6 @@ in { tls.domains = [{main = "*.mimas.internal.nobbz.dev";}]; tls.certResolver = "mimasWildcard"; }; - paperless = { - entryPoints = ["https" "http"]; - rule = "Host(`paperless.mimas.internal.nobbz.dev`)"; - service = "paperless"; - tls.domains = [{main = "*.mimas.internal.nobbz.dev";}]; - tls.certResolver = "mimasWildcard"; - }; gitea = { entryPoints = ["https" "http"]; rule = "Host(`gitea.mimas.internal.nobbz.dev`)"; @@ -337,9 +331,6 @@ in { fritz.loadBalancer.passHostHeader = false; fritz.loadBalancer.servers = [{url = "http://fritz.box";}]; - paperless.loadBalancer.passHostHeader = true; - paperless.loadBalancer.servers = [{url = "http://localhost:${toString config.services.paperless.port}";}]; - gitea.loadBalancer.passHostHeader = true; gitea.loadBalancer.servers = [{url = "http://localhost:${toString config.services.gitea.httpPort}";}]; @@ -393,17 +384,6 @@ in { ]; }; - services.paperless = { - enable = true; - package = nixpkgs-2211.legacyPackages.x86_64-linux.paperless-ngx; - address = "0.0.0.0"; - port = 58080; - extraConfig.PAPERLESS_OCR_LANGUAGE = "deu+eng"; - }; - systemd.services.paperless-scheduler.after = ["var-lib-paperless.mount"]; - systemd.services.paperless-consumer.after = ["var-lib-paperless.mount"]; - systemd.services.paperless-web.after = ["var-lib-paperless.mount"]; - # This value determines the NixOS release with which your system is to be # compatible, in order to avoid breaking some software such as database # servers. You should change this only after NixOS release notes say you diff --git a/nixos/configurations/mimas/paperless.nix b/nixos/configurations/mimas/paperless.nix new file mode 100644 index 00000000..6a442fe2 --- /dev/null +++ b/nixos/configurations/mimas/paperless.nix @@ -0,0 +1,32 @@ +{nixpkgs-2211, ...}: {config, ...}: { + services.paperless = { + enable = true; + # Please watch for the following to be resolved, then remove the package + # * https://github.com/NixOS/nixpkgs/issues/207965 + # * https://github.com/NixOS/nixpkgs/pull/207754 + package = nixpkgs-2211.legacyPackages.x86_64-linux.paperless-ngx; + address = "0.0.0.0"; + port = 58080; + extraConfig.PAPERLESS_OCR_LANGUAGE = "deu+eng"; + }; + + systemd.services.paperless-consumer.after = ["var-lib-paperless.mount"]; + systemd.services.paperless-scheduler.after = ["var-lib-paperless.mount"]; + ## Once https://github.com/NixOS/nixpkgs/pull/207754 got merged and propagated + ## the following line needs to get uncommented. + # systemd.services.paperless-task-queue = ["var-lib-paperless.mount"]; + systemd.services.paperless-web.after = ["var-lib-paperless.mount"]; + + services.traefik.dynamicConfigOptions.http.routers.paperless = { + entryPoints = ["https" "http"]; + rule = "Host(`paperless.mimas.internal.nobbz.dev`)"; + service = "paperless"; + tls.domains = [{main = "*.mimas.internal.nobbz.dev";}]; + tls.certResolver = "mimasWildcard"; + }; + + services.traefik.dynamicConfigOptions.http.services.paperless.loadBalancer = { + passHostHeader = true; + servers = [{url = "http://localhost:${toString config.services.paperless.port}";}]; + }; +} -- 2.51.2