improve module

This commit is contained in:
Hendrik Sokolowski 2023-10-29 01:23:14 +02:00
parent f539b24544
commit 4cc95d96c7
4 changed files with 40 additions and 16 deletions

View file

@ -6,6 +6,8 @@
pub-solar.paperless = { pub-solar.paperless = {
enable = true; enable = true;
hostStateDir = "/opt/documents/paperless"; hostStateDir = "/opt/documents/paperless";
domain = "cox.lan";
path = "/paperless";
ftp = { ftp = {
enable = true; enable = true;

View file

@ -35,11 +35,16 @@ in {
consumptionDirIsPublic = true; consumptionDirIsPublic = true;
port = 8899; port = 8899;
extraConfig = { extraConfig = {
PAPERLESS_FORCE_SCRIPT_NAME = "${cfg.path}";
PAPERLESS_OCR_LANGUAGE = "deu+eng"; PAPERLESS_OCR_LANGUAGE = "deu+eng";
PAPERLESS_ALLOWED_HOSTS = "${cfg.domain}"; PAPERLESS_ALLOWED_HOSTS = "${cfg.domain}";
PAPERLESS_CSRF_TRUSTED_ORIGINS = "http://${cfg.domain}"; PAPERLESS_CSRF_TRUSTED_ORIGINS = "http://${cfg.domain}";
PAPERLESS_CORS_ALLOWED_HOSTS = "http://${cfg.domain}"; PAPERLESS_CORS_ALLOWED_HOSTS = "http://${cfg.domain}";
PAPERLESS_FILENAME_FORMAT = "{correspondent}/{created_year}/{asn}_{title}"; PAPERLESS_FILENAME_FORMAT = "{created_year}/{correspondent}/{created_month}_{created_day}_{title}";
PAPERLESS_TASK_WORKERS=2;
PAPERLESS_CONSUMER_INOTIFY_DELAY=5;
PAPERLESS_CONSUMER_RECURSIVE=1;
PAPERLESS_CONSUMER_SUBDIRS_AS_TAGS=1;
}; };
}; };

View file

@ -7,7 +7,10 @@ with lib; let
psCfg = config.pub-solar; psCfg = config.pub-solar;
cfg = config.pub-solar.paperless; cfg = config.pub-solar.paperless;
in { in {
imports = [./container.nix]; imports = [
./container.nix
./nginx.nix
];
options.pub-solar.paperless = { options.pub-solar.paperless = {
enable = mkEnableOption {default = false;}; enable = mkEnableOption {default = false;};
@ -18,6 +21,12 @@ in {
default = "paperless.local"; default = "paperless.local";
}; };
path = mkOption {
type = types.str;
description = "Sets the path to listen on. Use empty string to listen on root.";
default = "";
};
hostStateDir = mkOption { hostStateDir = mkOption {
type = types.str; type = types.str;
default = "/var/lib/paperless-container"; default = "/var/lib/paperless-container";
@ -66,19 +75,5 @@ in {
]; ];
}; };
services.nginx = {
enable = true;
virtualHosts."${cfg.domain}" = {
locations."/" = {
proxyPass = "http://127.0.0.1:8899";
proxyWebsockets = true;
extraConfig = ''
proxy_read_timeout 300s;
proxy_set_header Host ''$host;
proxy_set_header X-Forwarded-For ''$remote_addr;
'';
};
};
};
}; };
} }

View file

@ -0,0 +1,22 @@
{ config, ... }:
let
cfg = config.pub-solar.paperless;
nginxLocation = if cfg.path == "" then "/" else cfg.path;
in
{
services.nginx = {
enable = true;
virtualHosts."${cfg.domain}" = {
locations."${nginxLocation}" = {
proxyPass = "http://127.0.0.1:8899";
proxyWebsockets = true;
extraConfig = ''
proxy_read_timeout 300s;
proxy_set_header Host ${cfg.domain};
proxy_set_header X-Forwarded-For ''$remote_addr;
'';
};
};
};
}