quasar/paperless.nix

48 lines
1.6 KiB
Nix

{ base-domain, lib, ... }:
let
fqdn = "paperless.${base-domain}";
in
{
services.paperless = {
enable = true;
address = "localhost";
port = 28981;
passwordFile = "/etc/nixos/secrets/paperless-password";
consumptionDir = "/var/lib/paperless-upload";
settings = {
PAPERLESS_DBHOST = "/run/postgresql";
PAPERLESS_DBNAME = "paperless";
PAPERLESS_DBUSER = "paperless";
PAPERLESS_DBPASS = "paperless";
PAPERLESS_OCR_LANGUAGE = "fra+eng+deu";
PAPERLESS_FILENAME_FORMAT = "{created_year}/{correspondent}/{title}";
PAPERLESS_OCR_USER_ARGS = {
optimize = 1;
pdfa_image_compression = "lossless";
# do not fail to import documents that have a digital signature
# https://github.com/paperless-ngx/paperless-ngx/discussions/4047#discussioncomment-7019544
invalidate_digital_signatures = true;
};
PAPERLESS_TIME_ZONE = "Europe/Paris";
PAPERLESS_CONSUMER_ENABLE_BARCODES = "true";
PAPERLESS_CONSUMER_ENABLE_ASN_BARCODE = "true";
PAPERLESS_CONSUMER_BARCODE_SCANNER = "ZXING";
PAPERLESS_TASK_WORKERS = "4";
PAPERLESS_THREADS_PER_WORKER = "1";
PAPERLESS_WORKER_TIMEOUT = "18000";
};
};
users.groups.paperless-upload = {};
users.users.paperless = {
extraGroups = [ "paperless-upload" ];
};
users.users.paperless-upload = {
isNormalUser = true;
homeMode = "770";
extraGroups = [ "paperless" ];
};
system.activationScripts.makePaperlessUploadDir = lib.stringAfter [ "var" ] ''
mkdir -m 775 -p /var/lib/paperless-upload
chown paperless:paperless /var/lib/paperless-upload/
'';
}