{ base-domain, ... }: let fqdn = "paperless.${base-domain}"; in { services.paperless = { enable = true; address = "localhost"; port = 28981; passwordFile = "/etc/nixos/secrets/paperless-password"; consumptionDir = "/home/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"; }; 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"; }; }; users.groups.paperless-upload = {}; users.users.paperless = { extraGroups = [ "paperless-upload" ]; }; users.users.paperless-upload = { isNormalUser = true; homeMode = "770"; group = "paperless"; }; }