From 9512c491e9a5fdb489f79d93e2a325a29bdad5bb Mon Sep 17 00:00:00 2001 From: Kopatz <7265381+Kropatz@users.noreply.github.com> Date: Mon, 9 Sep 2024 12:06:44 +0200 Subject: [PATCH] update kavita --- home-manager/zsh/default.nix | 4 +- modules/services/kavita.nix | 80 ++++++++++++++++++++---------------- systems/vm/configuration.nix | 21 +++++++++- users/vm/default.nix | 16 ++------ users/vm/home.nix | 2 +- 5 files changed, 71 insertions(+), 52 deletions(-) diff --git a/home-manager/zsh/default.nix b/home-manager/zsh/default.nix index 27e2967..a1a39ce 100644 --- a/home-manager/zsh/default.nix +++ b/home-manager/zsh/default.nix @@ -18,8 +18,8 @@ collectGarbage = "nh clean all"; edit = "cd ~/projects/github/nix-config && nvim ."; ll = "ls -l"; - ls = "eza --icons always"; - la = "eza -la --icons --group-directories-first"; + ls = "${pkgs.eza}/bin/eza --icons always"; + la = "${pkgs.eza}/bin/eza -la --icons --group-directories-first"; ssh = "TERM=xterm-256color ssh"; update = "sudo nixos-rebuild switch"; updateFancy = "nh os switch"; diff --git a/modules/services/kavita.nix b/modules/services/kavita.nix index 327fcd4..759e7d1 100644 --- a/modules/services/kavita.nix +++ b/modules/services/kavita.nix @@ -9,7 +9,7 @@ in { default = true; description = "Should it use https?"; }; - autoDownload = { + autoDownload = mkOption { type = types.bool; default = true; description = "Should it auto download?"; @@ -19,6 +19,7 @@ in { type = types.path; description = "data path"; }; + isTest = mkEnableOption "Is this a test vm?"; }; config = let fqdn = "kavita-kopatz.duckdns.org"; @@ -38,7 +39,7 @@ in { ] ++ lib.optional githubRunnerEnabled "d ${baseDir}/github 0770 github-actions-runner kavita -"; - age.secrets.kavita = { + age.secrets.kavita = mkIf (!cfg.isTest) { file = ../../secrets/kavita.age; owner = "kavita"; group = "kavita"; @@ -48,47 +49,54 @@ in { enable = true; user = "kavita"; package = let - backend = pkgs.kavita.backend.overrideAttrs + backend = pkgs.unstable.kavita.backend.overrideAttrs (old: { patches = old.patches ++ [ ./kavita-patches.diff ]; }); - kavitaPatched = pkgs.kavita.overrideAttrs (old: { backend = backend; }); + kavitaPatched = pkgs.unstable.kavita.overrideAttrs (old: { backend = backend; }); in kavitaPatched; - settings.Port = 5000; + settings = { + Port = 5000; + IpAddresses = "127.0.0.1"; + BaseUrl = "/kavita"; + }; dataDir = baseDir; - tokenKeyFile = config.age.secrets.kavita.path; - settings.IpAddresses = "127.0.0.1"; - settings.BaseUrl = "/kavita"; + tokenKeyFile = if cfg.isTest then + (builtins.toFile "test" + "wWKNeGUslGILrUUp8Dnn4xyYnivZWBb8uqjKg3ALyCs7reV5v3CtE/E2b6i0Mwz1Xw1p9a0wcduRDNoa8Yh8kQ==") + else + config.age.secrets.kavita.path; }; #todo: base url needs new kavita version - systemd.services.kavita = { - after = [ "nginx.service" ] ++ lib.optional useStepCa "step-ca.service"; - }; + systemd.services = { + kavita = { + after = [ "nginx.service" ] ++ lib.optional useStepCa "step-ca.service"; + }; + download-manga = mkIf cfg.autoDownload { + wantedBy = [ "multi-user.target" ]; - systemd.services.download-manga = { - wantedBy = [ "multi-user.target" ]; - - wants = [ "network-online.target" ]; - after = [ "network-online.target" ]; - startAt = "*-*-* 19:00:00"; - restartIfChanged = false; - script = '' - ${mangal} clear -q - ${mangal} clear -c - ${mangal} inline -S Mangapill -q omniscient -m first -d - ${mangal} inline -S Mangapill --query "oshi-no-ko" --manga first --download - ${mangal} inline -S Mangapill --query "Frieren" --manga first --download -f - ${mangal} inline -S Mangapill --query "Chainsaw" --manga first --download - ${mangal} inline -S Mangapill --query "Jujutsu%20Kaisen" --manga first --download - ${mangal} inline -S Mangapill --query "solo-leveling" --manga first --download - ${mangal} inline -S Mangapill --query "berserk" --manga first --download - ${mangal} inline -S Mangapill --query "the-greatest-real-estate" --manga first --download - ''; - serviceConfig = { - PrivateTmp = true; - User = "kavita"; - Group = "kavita"; - Type = "oneshot"; - WorkingDirectory = "${baseDir}/manga"; + wants = [ "network-online.target" ]; + after = [ "network-online.target" ]; + startAt = "*-*-* 19:00:00"; + restartIfChanged = false; + script = '' + ${mangal} clear -q + ${mangal} clear -c + ${mangal} inline -S Mangapill -q omniscient -m first -d + ${mangal} inline -S Mangapill --query "oshi-no-ko" --manga first --download + ${mangal} inline -S Mangapill --query "Frieren" --manga first --download -f + ${mangal} inline -S Mangapill --query "Chainsaw" --manga first --download + ${mangal} inline -S Mangapill --query "Jujutsu%20Kaisen" --manga first --download + ${mangal} inline -S Mangapill --query "solo-leveling" --manga first --download + ${mangal} inline -S Mangapill --query "berserk" --manga first --download + ${mangal} inline -S Mangapill --query "the-greatest-real-estate" --manga first --download + ''; + serviceConfig = { + PrivateTmp = true; + User = "kavita"; + Group = "kavita"; + Type = "oneshot"; + WorkingDirectory = "${baseDir}/manga"; + }; }; }; diff --git a/systems/vm/configuration.nix b/systems/vm/configuration.nix index d38d6c1..9532603 100644 --- a/systems/vm/configuration.nix +++ b/systems/vm/configuration.nix @@ -1,7 +1,7 @@ { pkgs, config, lib, modulesPath, ... }: { imports = [ - #./vm-common.nix + ./vm-common.nix (modulesPath + "/profiles/qemu-guest.nix") #(modulesPath + "/profiles/minimal.nix") ]; @@ -25,7 +25,26 @@ #sddm.enable = true; #cosmic.enable = true; }; + services = { + kavita = { + enable = true; + https = false; + autoDownload = false; + isTest = true; + }; + }; }; + services.xserver = { + enable = true; + desktopManager = { + xterm.enable = false; + xfce.enable = true; + }; + displayManager.defaultSession = "xfce"; + }; + + programs.firefox.enable = true; + virtualisation.vmVariant = { #virtualisation.qemu.options = [ # "-device virtio-vga-gl" diff --git a/users/vm/default.nix b/users/vm/default.nix index 7b14780..c6d4f44 100644 --- a/users/vm/default.nix +++ b/users/vm/default.nix @@ -1,20 +1,12 @@ -{ inputs -, pkgs -, lib -, config -, ... -}: -{ - imports = [ ../default.nix ]; +{ inputs, pkgs, lib, config, ... }: { + imports = [ ../default.nix ]; mainUser.name = "vm"; - home-manager = { - users.${config.mainUser.name} = import ./home.nix; - }; + home-manager = { users.${config.mainUser.name} = import ./home.nix; }; programs.zsh.enable = true; users.users.${config.mainUser.name} = { - isNormalUser = true ; + isNormalUser = true; initialPassword = "test"; description = config.mainUser.name; shell = pkgs.zsh; diff --git a/users/vm/home.nix b/users/vm/home.nix index d5578de..c9fa8ea 100644 --- a/users/vm/home.nix +++ b/users/vm/home.nix @@ -3,7 +3,7 @@ imports = [ #../../home-manager/nvim.nix - #../../home-manager/zsh + ../../home-manager/zsh #../../home-manager/rofi.nix #../../home-manager/kitty.nix #../../home-manager/i3.nix