added paperless

This commit is contained in:
fwastring 2026-01-19 08:55:12 +01:00
parent 502994717a
commit 5701d95e64
3 changed files with 68 additions and 2 deletions

View file

@ -34,6 +34,7 @@ in
(modulesDirectory + /services/gotify)
(modulesDirectory + /services/kanboard)
(modulesDirectory + /services/immich)
(modulesDirectory + /services/paperless)
];
sops.defaultSopsFile = ../../secrets/sops.yaml;
@ -78,6 +79,9 @@ in
immich = {
enable = true;
};
paperless = {
enable = true;
};
kanboard = {
enable = true;
host = "127.0.0.1";

View file

@ -0,0 +1,61 @@
{
lib,
config,
...
}:
with lib;
{
options = {
paperless = {
enable = mkEnableOption "enables paperless";
port = lib.mkOption {
type = lib.types.int;
default = 8089;
description = "The port that paperless is served on.";
};
hostname = lib.mkOption {
type = lib.types.str;
default = "127.0.0.1";
description = "The hostname that paperless is served on.";
};
domain = lib.mkOption {
type = lib.types.str;
default = "paperless.wastring.com";
description = "The domain that paperless is served on.";
};
};
};
config = mkMerge [
(mkIf config.paperless.enable {
sops.secrets.paperless-admin-password = { };
services.nginx.virtualHosts.${config.paperless.domain} = {
forceSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://${toString config.paperless.hostname}:${toString config.paperless.port}";
proxyWebsockets = true;
};
};
services.paperless = {
enable = true;
passwordFile = config.sops.secrets.paperless-admin-password.path;
address = config.paperless.hostname;
port = config.paperless.port;
consumptionDirIsPublic = true;
settings = {
PAPERLESS_CONSUMER_IGNORE_PATTERN = [
".DS_STORE/*"
"desktop.ini"
];
PAPERLESS_OCR_LANGUAGE = "swe+eng";
PAPERLESS_OCR_USER_ARGS = {
optimize = 1;
pdfa_image_compression = "lossless";
};
PAPERLESS_URL = "https://${toString config.paperless.domain}";
};
};
})
];
}

View file

@ -8,6 +8,7 @@ forgejo-runner-token: ENC[AES256_GCM,data:1AUeTy5Sqoa4u5L/TGjt/v69p2xF/mp0oXVv08
gotify_password: ENC[AES256_GCM,data:Tl9T9yxKSyiemmc5B7kCdwYYHB9anenBg8epFNGqu7sa8YfaZNH9HfTdBtqELIcAkkyfoJUj9tOhxcfa1lDasahJC/8VF0jx6tjsgmTJORAwQa/8,iv:bEtG/ICTqqK3E+YXysDLV/uyawoeILKH+mQXTLOcWpk=,tag:dPqm74eH/Gt9Eg0lv2ptEw==,type:str]
user-password: ENC[AES256_GCM,data:cngHqB2IQXVvSMwm5KJeq6wOQMQ4z/DWap3YMyahq2fz8R2CKHackaNY4K3dltXKSLv5zdelyHMf4u7gzuPTMO1yNRIG99C9Yg==,iv:6WZ/dUQwn6+TPXnSEvDVS0DZz0oz7vMvKAioqYzvf0c=,tag:xVoCF0L490nZi/xYTI0klw==,type:str]
immich-secrets-file: ENC[AES256_GCM,data:aUSQr5k7uqZzBvpSAFgpfStcuEPbf3U2GED+biU56UBi02MgQzckmK4kKJ7XIF6UyBvxLw==,iv:mep3JNp86YjsIJSONYNLeEYsSN/ERao7hs7O5cnHF9s=,tag:m6sulZTYMnTpxgPGFXITTg==,type:str]
paperless-admin-password: ENC[AES256_GCM,data:Aup5T7pMptHT6z7Uqzd9I4EMaG4sbPNC9bVj+muTowkNKAr3nMOOXaAL4wgy00UI9u4KdZzQ/hyrYMMT,iv:VaR7OK8CEC3VlSbGvLIihX15fQQ7H/PyWZcp7nifOAg=,tag:G4DNgqjbZYaeSmj8vmT5IA==,type:str]
build-service: ENC[AES256_GCM,data:4I1iPfdc5mbzGIYCVEtTZW0/MvLwUyEb2uaDERaApYMOVB3iSVNx+fyhxRokaQ==,iv:zAfFGFJdj6TvkS4D9qtRhYtPcvhNqv98Dmzp0TKVp+4=,tag:bWrUbEleOVq01eeKYvq7rw==,type:str]
sops:
age:
@ -56,7 +57,7 @@ sops:
dFZ3T3VUeHVnVThadHVQaVJCNkdZeDQK99L7CbBbklUUtanyFIOiCzO3hZP1mh3z
ZZhhr6BCcHBbqzLaRLbT27BTCoNuGsXxyzW6tpXYacYuITkcFq9bOQ==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-12-04T11:59:48Z"
mac: ENC[AES256_GCM,data:rQgkqcpNZkTA8yaJHaD1L3d28e8Z4FP/Ox0Rm5zoJLAPj86roW7UmH8TxtmNbzvjmtohmwZG+HrFJCQfVnlwqjDG1ZTdTqgzg2tklD4pDiUKaU899u97919MTEJHGLqhBpjfSKuR7Ja3CuZjToDWKk3h2ooUNgXSqCIhtFoonxw=,iv:UpYGtYD5FMTxf84sp03My21p0KNHELjNcKszUoiR0dU=,tag:yd2aU5e/SexivsNNfu2VhQ==,type:str]
lastmodified: "2025-12-30T12:32:36Z"
mac: ENC[AES256_GCM,data:4uQBw966lOw1/NBi5LCuKEs5chGQvRtbVjJijF/504go5GsGVcrCOvoedwZzM2ui5GYecrmIKWThjRxT9DLYkzb+8BOF7sWKRwjQq2g/3Ew1UnqDJC+uiTvHSq2QzB/B5tD3astQyo8Y7JryHDZDVIvYano+gijIzQgFNeAVgQU=,iv:xucBautLNDbMD/KXryRdcW1I8Ui30ANloShQ3OjKFLI=,tag:estaWlGhl9R+vlSWxa79jA==,type:str]
unencrypted_suffix: _unencrypted
version: 3.11.0