From 28631db886e2d7744e1399c8209aeb21479d00ee Mon Sep 17 00:00:00 2001 From: Kopatz <7265381+Kropatz@users.noreply.github.com> Date: Sun, 24 Mar 2024 18:22:03 +0100 Subject: [PATCH] add manga downloader --- modules/graphical/shared.nix | 2 +- modules/kavita.nix | 26 +++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/modules/graphical/shared.nix b/modules/graphical/shared.nix index 78950da..14f8124 100644 --- a/modules/graphical/shared.nix +++ b/modules/graphical/shared.nix @@ -25,7 +25,7 @@ in ]; networking.firewall = { - enable = false; + enable = true; allowedTCPPorts = [ 53317 ]; #localsend allowedUDPPorts = [ 1194 53317 ]; #openvpn, localsend allowedTCPPortRanges = [ diff --git a/modules/kavita.nix b/modules/kavita.nix index 278a49b..4685cde 100644 --- a/modules/kavita.nix +++ b/modules/kavita.nix @@ -2,9 +2,14 @@ let fqdn = "kavita.home.arpa"; useHttps = config.services.step-ca.enable; + baseDir = "/mnt/1tbssd/kavita"; in { networking.firewall.allowedTCPPorts = [ 5000 ]; + systemd.tmpfiles.rules = [ + "d ${baseDir} 0770 kavita kavita -" + "d ${baseDir}/manga 0770 kavita kavita -" + ]; age.secrets.kavita = { file = ../secrets/kavita.age; owner = "kavita"; @@ -14,9 +19,10 @@ in enable = true; user = "kavita"; port = 5000; - dataDir = "/mnt/1tbssd/kavita"; + dataDir = baseDir; tokenKeyFile = config.age.secrets.kavita.path; }; + #todo: base url needs new kavita version systemd.services.kavita = { preStart = '' @@ -32,6 +38,24 @@ in ''; }; + systemd.services.download-manga = { + wantedBy = [ "multi-user.target" ]; + + wants = [ "network-online.target" ]; + after = [ "network-online.target" ]; + startAt = "24hr"; + script = '' + mangal inline -S Mangapill -q omniscient -m first -d + ''; + serviceConfig = { + PrivateTmp = true; + User = "kavita"; + Group = "kavita"; + Type = "oneshot"; + WorkingDirectory = "${baseDir}/manga"; + }; + }; + security.acme.certs."${fqdn}".server = "https://127.0.0.1:8443/acme/acme/directory"; services.nginx.virtualHosts."${fqdn}" = { forceSSL = useHttps;