diff --git a/hosts/nixos/HandlerOne/default.nix b/hosts/nixos/HandlerOne/default.nix index 59a6277..378885b 100644 --- a/hosts/nixos/HandlerOne/default.nix +++ b/hosts/nixos/HandlerOne/default.nix @@ -44,6 +44,7 @@ "modules/quadlets/frigate" "modules/quadlets/actualbudget" "modules/quadlets/komga" + "modules/quadlets/kavita" # Hosted services "modules/services/system-logging/prometheus-server.nix" diff --git a/modules/quadlets/kavita/default.nix b/modules/quadlets/kavita/default.nix new file mode 100644 index 0000000..79cd9bc --- /dev/null +++ b/modules/quadlets/kavita/default.nix @@ -0,0 +1,37 @@ +{ lib, ... }: +let + port = lib.custom.autoport "kavita"; +in +{ + systemd.tmpfiles.rules = [ + "d /var/lib/kavita" + "d /var/lib/kavita/config" + "d /var/lib/kavita/manga" + "d /var/lib/kavita/comics" + "d /var/lib/kavita/books" + ]; + + services.caddy.virtualHosts."kavita.wanderingcrow.net".extraConfig = '' + reverse_proxy http://localhost:${port} + ''; + + virtualisation.quadlet = { + containers = { + kavita.containerConfig = { + image = "ghcr.io/jvmilazz0/kavita:latest"; + publishPorts = [ + "${port}:5000" + ]; + environments = { + TZ="America/New_York"; + }; + volumes = [ + "/var/lib/kavita/config:/kavita/config" + "/var/lib/kavita/manga:/manga" + "/var/lib/kavita/comics:/comics" + "/var/lib/kavita/books:/books" + ]; + }; + }; + }; +}