-`services.paperless` now installs `paperless-manage` as a normal system package instead of creating a symlink in `/var/lib/paperless`.
`paperless-manage` now also changes to the appropriate user when being executed.
- The `gotenberg` package has been updated to 8.16.0, which brings breaking changes to the configuration from version 8.13.0. See the [upstream release notes](https://github.com/gotenberg/gotenberg/releases/tag/v8.13.0)
for that release to get all the details. The `services.gotenberg` module has been updated appropriately to ensure your configuration is valid with this new release.
-`asusd` has been upgraded to version 6 which supports multiple aura devices. To account for this, the single `auraConfig` configuration option has been replaced with `auraConfigs` which is an attribute set of config options per each device. The config files may also be now specified as either source files or text strings; to account for this you will need to specify that `text` is used for your existing configs, e.g.:
description="Port on which the API should listen.";
};
bindIP=mkOption{
type=types.nullOrtypes.str;
default="127.0.0.1";
description="Port the API listener should bind to. Set to 0.0.0.0 to listen on all available IPs.";
};
timeout=mkOption{
type=types.nullOrtypes.str;
default="30s";
@@ -74,6 +92,12 @@ in
'';
};
bodyLimit=mkOption{
type=types.nullOrtypes.str;
default=null;
description="Sets the max limit for `multipart/form-data` requests. Accepts values like '5M', '20G', etc.";
};
extraFontPackages=mkOption{
type=types.listOftypes.package;
default=[];
@@ -108,6 +132,29 @@ in
};
};
downloadFrom={
allowList=mkOption{
type=types.nullOrtypes.str;
default=".*";
description="Allow these URLs to be used in the `downloadFrom` API field. Accepts a regular expression.";
};
denyList=mkOption{
type=types.nullOrtypes.str;
default=null;
description="Deny accepting URLs from these domains in the `downloadFrom` API field. Accepts a regular expression.";
};
maxRetries=mkOption{
type=types.int;
default=4;
description="The maximum amount of times to retry downloading a file specified with `downloadFrom`.";
};
disable=mkOption{
type=types.bool;
default=false;
description="Whether to disable the ability to download files for conversion from outside sources.";
};
};
libreoffice={
package=mkPackageOptionpkgs"libreoffice"{};
@@ -136,28 +183,61 @@ in
};
};
pdfEngines=mkOption{
pdfEngines={
merge=mkOption{
type=types.listOf(
types.enum[
"pdftk"
"qpdf"
"libreoffice-pdfengine"
"exiftool"
"pdfcpu"
"pdftk"
]
);
default=[
"pdftk"
"qpdf"
"pdfcpu"
"pdftk"
];
description="PDF Engines to use for merging files.";
};
convert=mkOption{
type=types.listOf(
types.enum[
"libreoffice-pdfengine"
]
);
default=[
"libreoffice-pdfengine"
];
description="PDF Engines to use for converting files.";
};
readMetadata=mkOption{
type=types.listOf(
types.enum[
"exiftool"
]
);
default=[
"exiftool"
"pdfcpu"
];
description=''
PDF engines to enable. Each one can be used to perform a specific task.
See [the documentation](https://gotenberg.dev/docs/configuration#pdf-engines) for more details.
Defaults to all possible PDF engines.
'';
description="PDF Engines to use for reading metadata from files.";
};
writeMetadata=mkOption{
type=types.listOf(
types.enum[
"exiftool"
]
);
default=[
"exiftool"
];
description="PDF Engines to use for writing metadata to files.";
};
disableRoutes=mkOption{
type=types.bool;
default=false;
description="Disable routes related to PDF engines.";
};
};
logLevel=mkOption{
@@ -196,6 +276,15 @@ in
See `services.gotenberg.enableBasicAuth` for the names of those variables.
'';
}
{
assertion=!(lib.isListcfg.pdfEngines);
message=''
Setting `services.gotenberg.pdfEngines` to a list is now deprecated.
Use the new `pdfEngines.mergeEngines`, `pdfEngines.convertEngines`, `pdfEngines.readMetadataEngines`, and `pdfEngines.writeMetadataEngines` settings instead.
The previous option was using a method that is now deprecated by upstream.