From 56c4fafa49018c3aff99fa4d31d782a970b8cc86 Mon Sep 17 00:00:00 2001 From: Crony Akatsuki Date: Sun, 11 Jan 2026 17:44:58 +0100 Subject: [PATCH] feat(tyr): setup paperless ngx. --- modules/servers/tyr/default.nix | 1 + modules/servers/tyr/dns.nix | 1 + modules/servers/tyr/paperless-ngx.nix | 29 ++++++++++++++++++++++++++ modules/servers/tyr/secrets.nix | 3 +++ secrets/paperless-ngx.age | Bin 0 -> 1275 bytes secrets/secrets.nix | 1 + 6 files changed, 35 insertions(+) create mode 100644 modules/servers/tyr/paperless-ngx.nix create mode 100644 secrets/paperless-ngx.age diff --git a/modules/servers/tyr/default.nix b/modules/servers/tyr/default.nix index 9c60ba4..b7f3c38 100644 --- a/modules/servers/tyr/default.nix +++ b/modules/servers/tyr/default.nix @@ -11,5 +11,6 @@ ./home-assistant.nix ./mosquitto.nix ./linkwarden.nix + ./paperless-ngx.nix ]; } diff --git a/modules/servers/tyr/dns.nix b/modules/servers/tyr/dns.nix index 0ae8fd0..2bfbf73 100644 --- a/modules/servers/tyr/dns.nix +++ b/modules/servers/tyr/dns.nix @@ -87,6 +87,7 @@ ''"assistant.home.cronyakatsuki.xyz IN A 192.168.0.5"'' ''"ddns.home.cronyakatsuki.xyz IN A 192.168.0.5"'' ''"linkwarden.home.cronyakatsuki.xyz IN A 192.168.0.5"'' + ''"paperless.home.cronyakatsuki.xyz IN A 192.168.0.5"'' ]; }; }; diff --git a/modules/servers/tyr/paperless-ngx.nix b/modules/servers/tyr/paperless-ngx.nix new file mode 100644 index 0000000..893b221 --- /dev/null +++ b/modules/servers/tyr/paperless-ngx.nix @@ -0,0 +1,29 @@ +{config, ...}: { + services.paperless = { + enable = true; + passwordFile = config.age.secrets.paperless-ngx.path; + domain = "paperless.home.cronyakatsuki.xyz"; + settings = { + PAPERLESS_OCR_LANGUAGE = "hrv+eng"; + PAPERLESS_ADMIN_USER = "crony"; + PAPERLESS_URL = "https://paperless.home.cronyakatsuki.xyz"; + }; + }; + + services.traefik.dynamicConfigOptions.http = { + services.paperless.loadBalancer.servers = [ + { + url = "http://localhost:28981"; + } + ]; + + routers.paperless = { + rule = "Host(`paperless.home.cronyakatsuki.xyz`)"; + tls = { + certResolver = "porkbun"; + }; + service = "paperless"; + entrypoints = "websecure"; + }; + }; +} diff --git a/modules/servers/tyr/secrets.nix b/modules/servers/tyr/secrets.nix index dab0fc6..9f03e21 100644 --- a/modules/servers/tyr/secrets.nix +++ b/modules/servers/tyr/secrets.nix @@ -40,6 +40,9 @@ linkwarden-db = { file = ../../../secrets/linkwarden.age; }; + paperless-ngx = { + file = ../../../secrets/paperless-ngx.age; + }; }; }; } diff --git a/secrets/paperless-ngx.age b/secrets/paperless-ngx.age new file mode 100644 index 0000000000000000000000000000000000000000..967e85125c237553574c52f7d1505b70ee557ed2 GIT binary patch literal 1275 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!+RO))YxHMCSP3NXp@E?2M!_H!w7 zFU!eI^UpAMjM7i_NHsDw2q<+-b4$v033PKYOvz2EG>X*DbmdC&w5aq5@d$~GGBzko z@p37#^b9Hr5AsQkD#>#!FDnW%Ppk0Ci7@fgPDi&bN8jHi+)*Ll)W^x$B+1_}Gd##Q zG%>)@U)xCEB*(zD+|fHPr@$}G&^sf`Jklr1!D)7P&cKh@I9KP<~XDLGf)-6<$F zDJ0a*BPuLa+tM?s%p}FR(A%QCvKZYqb8S;^<3NSd5+9>%Kj&@B~;*yd` zkCe!~Jg?%az}zCAz~UlHm$cH*iefHH{Yb+c4_~irvnan((@6c0&>;Wf$cm8gYzuw& zEK8FjS5rSjZT-ls6ccpY{L2kO+{+arLjB5%6GQz{D#9bZ0zHz#+gyC_h>EHun3z|7RBG|?!;$-6W|TiemBB0C~IGQT{^xhT^hN84OK%p}Roz$uig zs>H=HF(|?@F(9|tEj-GnGR&#mJJ-|OBP`7*qbkB6&?_*apr|-E$;c7iwkU&K$EtFL ziXc-%|NJm-XNw}IDyO8Vl)Q9@=9iZCs7^>r^u zb%gHY@qBN=0yu#c#G_*oH%P`+3JFhq;!pA?;(=;R^ z&`{sotJJI_F)SdGOIKG{Aw0#qwA3@p+dZ@*%Ob=;yUIH+&&kBgz{n#%Bf~t^G{@XM zC)L8-DWcGT>yYlJa^+rw%$VgFIX8VWTdbmE*XJmu%t_MynX6pa+wu9a>&v6XU)&2! zYM(q#JNDG=X=Kj!WnC)DJC3&>nQ_2I#d@XAp{PRjmyzo{%RhhKeSMu@^6rVI&*yom TWuK|dN^7-ckXFuJkfRL%k|(7x literal 0 HcmV?d00001 diff --git a/secrets/secrets.nix b/secrets/secrets.nix index dcaa307..ebc8acb 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -45,4 +45,5 @@ in { "ddns.age".publicKeys = systems ++ users; "linkwarden.age".publicKeys = systems ++ users; "linkwarden-db.age".publicKeys = systems ++ users; + "paperless-ngx.age".publicKeys = systems ++ users; }