From 2251c223119897e28ac8f699be44c9b3e86df691 Mon Sep 17 00:00:00 2001 From: Felix Buehler Date: Wed, 9 Nov 2022 22:17:13 +0100 Subject: [PATCH] paperless: migrate as module --- modules/services/paperless/default.nix | 57 ++++++++++++++++++++++++++ nixos/modules/webapps/paperless.nix | 21 ---------- 2 files changed, 57 insertions(+), 21 deletions(-) create mode 100644 modules/services/paperless/default.nix delete mode 100644 nixos/modules/webapps/paperless.nix diff --git a/modules/services/paperless/default.nix b/modules/services/paperless/default.nix new file mode 100644 index 0000000..b82cb86 --- /dev/null +++ b/modules/services/paperless/default.nix @@ -0,0 +1,57 @@ +# document management system +{ config, lib, pkgs, ... }: +let + cfg = config.my.services.paperless; + domain = config.networking.domain; +in +{ + options.my.services.paperless = with lib; { + enable = mkEnableOption "Paperless Server"; + + passwordFile = mkOption { + type = types.path; + description = "Password for the defaultUser for FreshRSS."; + example = "/run/secrets/freshrss"; + }; + + port = mkOption { + type = types.port; + default = 28981; + example = 8080; + description = "Internal port for webui"; + }; + + extraConfig = mkOption { + type = types.attrs; + default = { }; + description = "additional extraConfig"; + }; + }; + + config = lib.mkIf cfg.enable { + services.paperless = { + enable = true; + inherit (cfg) port; + mediaDir = "/srv/data/docs"; + extraConfig = { + PAPERLESS_OCR_LANGUAGE = "deu+eng"; + } // cfg.extraConfig; + }; + + my.services.nginx.virtualHosts = [ + { + subdomain = "docs"; + inherit (cfg) port; + } + ]; + + webapps.apps.paperless = { + dashboard = { + name = "Paperless"; + category = "media"; + icon = "book"; + link = "https://docs.${domain}"; + }; + }; + }; +} diff --git a/nixos/modules/webapps/paperless.nix b/nixos/modules/webapps/paperless.nix deleted file mode 100644 index eca3ceb..0000000 --- a/nixos/modules/webapps/paperless.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ config, pkgs, ... }: -{ - sops.secrets.paperless_password = { }; - - services.paperless = { - enable = true; - passwordFile = config.sops.secrets.paperless_password.path; - mediaDir = "/srv/data/docs"; - extraConfig = { - PAPERLESS_OCR_LANGUAGE = "deu+eng"; - }; - }; - webapps.apps.paperless = { - dashboard = { - name = "Paperless"; - category = "app"; - icon = "book"; - link = "https://docs.buehler.rocks"; - }; - }; -}