This repository has been archived on 2024-03-26. You can view files and clone it, but cannot push or open issues or pull requests.
nixos/modules/paperless.nix
2024-03-16 16:57:38 +05:30

56 lines
1.6 KiB
Nix

{ ... }:
{
networking.firewall.extraCommands = ''
iptables -A nixos-fw -p tcp --source 192.168.0.0/24 --dport 28981:28981 -j nixos-fw-accept
'';
systemd.services = {
paperless-scheduler.after = [ "var-lib-paperless.mount" ];
paperless-consumer.after = [ "var-lib-paperless.mount" ];
paperless-web.after = [ "var-lib-paperless.mount" ];
};
services = {
paperless = {
enable = true;
address = "0.0.0.0";
port = 28981;
consumptionDirIsPublic = true;
passwordFile = "/run/agenix/etebase";
settings = {
PAPERLESS_OCR_LANGUAGE = "eng";
PAPERLESS_URL = "https://paperless.bhankas.org";
PAPERLESS_ALLOWED_HOSTS = "127.0.0.1,paperless.bhankas.org";
PAPERLESS_ADMIN_USER = "root";
PAPERLESS_CSRF_TRUSTED_ORIGINS = "https://paperless.bhankas.org";
PAPERLESS_USE_X_FORWARD_HOST = true;
PAPERLESS_PROXY_SSL_HEADER = "[\"HTTP_XFORWARDED_PROTO\", \"https\"]";
PAPERLESS_CONSUMER_RECURSIVE = true;
PAPERLESS_CONSUMER_SUBDIRS_AS_TAGS = true;
};
};
nginx = {
virtualHosts = {
"paperless.bhankas.org" = {
addSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://127.0.0.1:28981";
proxyWebsockets = false;
extraConfig = "proxy_set_header Host $host;";
};
};
};
};
};
security.acme = {
acceptTerms = true;
certs = {
"paperless.bhankas.org" = {
email = "admin@bhankas.org";
dnsResolver = "1.1.1.1:53";
};
};
};
}