add compression function, formatting and fix error

This commit is contained in:
Kopatz
2024-09-09 11:25:42 +02:00
parent 988f3f2d8b
commit da40ad35d9
5 changed files with 133 additions and 122 deletions

22
flake.lock generated
View File

@@ -772,11 +772,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1725480560,
"lastModified": 1725635983,
"narHash": "sha256-haSfwdurfltqQ/7YEmDcmWLnWwvAgelIHnXsHG34P1k=",
"owner": "lilyinstarlight",
"repo": "nix-update",
"rev": "68c5b279ba15bf573d856caf539ec404f1f22f30",
"rev": "ed54a7546affb3f8c9c3e10a6fa6fdb21756ec8f",
"type": "github"
},
"original": {
@@ -796,11 +796,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1725639463,
"narHash": "sha256-K9ovOHVQ6RX6C79Kl/q7vjJYlwMsGQSJR2rvgkbACAc=",
"lastModified": 1725845699,
"narHash": "sha256-kbl/Gnll6Cgyk3S2+Je9dbabBBNdB/dKCUcQiXLi1lw=",
"owner": "lilyinstarlight",
"repo": "nixos-cosmic",
"rev": "ea970b44141becc214f7cfeac6f841c0360b4c94",
"rev": "b0b8a91e3c15780ec98025dd71a560c0a2c7582c",
"type": "github"
},
"original": {
@@ -880,11 +880,11 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1725407940,
"narHash": "sha256-tiN5Rlg/jiY0tyky+soJZoRzLKbPyIdlQ77xVgREDNM=",
"lastModified": 1725693463,
"narHash": "sha256-ZPzhebbWBOr0zRWW10FfqfbJlan3G96/h3uqhiFqmwg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6f6c45b5134a8ee2e465164811e451dcb5ad86e3",
"rev": "68e7dce0a6532e876980764167ad158174402c6f",
"type": "github"
},
"original": {
@@ -1018,11 +1018,11 @@
]
},
"locked": {
"lastModified": 1725575741,
"narHash": "sha256-LaW4WaeNIaju+bo7F7/+TK073JqcuoUvhcxzWp/9OrE=",
"lastModified": 1725762472,
"narHash": "sha256-thdxLVdcfrJNMFV3Ej9mDIh6QgHyoYswiW0SFNwod8A=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "6bf986d20552384209907fa0d5f3fa9a34d00995",
"rev": "57a1564c924ee4acbffe0ad3d65c7e90d3e77cd8",
"type": "github"
},
"original": {

View File

@@ -3,6 +3,11 @@
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
initExtra = ''
compressImage () {
magick $1 -strip -resize 1920x1080 -quality 85% compressed.jpg
}
'';
shellAliases = {
# TODO: gifsicle -O3 --lossy=30 noita-20240328-191617-1612416266-00316616.gif -o noita-20240328-191617-1612416266.gif
backupNoita =

View File

@@ -18,7 +18,7 @@ in {
extraCompatPackages = with pkgs; [ proton-ge-bin ];
};
environment.systemPackages = [ pkgs.mangohud ]
// optional cfg.enablePreinstalled (with pkgs; [
++ optionals cfg.enablePreinstalled (with pkgs; [
taisei
osu-lazer-bin
wineWowPackages.unstableFull

View File

@@ -1,117 +1,120 @@
{ config, pkgs, lib, inputs, ... }:
with lib;
let
cfg = config.custom.services.kavita;
in
{
let cfg = config.custom.services.kavita;
in {
options.custom.services.kavita = {
enable = mkEnableOption "Enables kavita";
https = mkOption {
type = types.bool;
default = true;
description = "Should it use https?";
};
dir = mkOption {
default = "/data/kavita";
type = types.path;
description = "data path";
};
};
config =
let
fqdn = "kavita-kopatz.duckdns.org";
useStepCa = false; #config.services.step-ca.enable;
useHttps = cfg.https;
baseDir = cfg.dir;
mangal = "${pkgs.mangal}/bin/mangal";
githubRunnerEnabled = config.services.github-runners ? oberprofis.enable;
in lib.mkIf cfg.enable {
networking.firewall.allowedTCPPorts = [ 5000 ];
systemd.tmpfiles.rules = [
(if githubRunnerEnabled then "d ${baseDir} 0750 kavita github-actions-runner -" else "d ${baseDir} 0770 kavita kavita -")
"d ${baseDir}/manga 0770 kavita kavita -"
] ++ lib.optional githubRunnerEnabled "d ${baseDir}/github 0770 github-actions-runner kavita -";
age.secrets.kavita = {
file = ../../secrets/kavita.age;
owner = "kavita";
group = "kavita";
};
services.kavita = {
enable = true;
user = "kavita";
package = let
backend = pkgs.kavita.backend.overrideAttrs (old: {
patches = old.patches ++ [./kavita-patches.diff ];
});
kavitaPatched = pkgs.kavita.overrideAttrs (old: {
backend = backend;
});
in kavitaPatched;
settings.Port = 5000;
dataDir = baseDir;
tokenKeyFile = config.age.secrets.kavita.path;
settings.IpAddresses = "127.0.0.1";
settings.BaseUrl = "/kavita";
};
#todo: base url needs new kavita version
systemd.services.kavita = {
after = [ "nginx.service" ] ++ lib.optional useStepCa "step-ca.service";
};
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";
enable = mkEnableOption "Enables kavita";
https = mkOption {
type = types.bool;
default = true;
description = "Should it use https?";
};
autoDownload = {
type = types.bool;
default = true;
description = "Should it auto download?";
};
dir = mkOption {
default = "/data/kavita";
type = types.path;
description = "data path";
};
};
config = let
fqdn = "kavita-kopatz.duckdns.org";
useStepCa = false; # config.services.step-ca.enable;
useHttps = cfg.https;
baseDir = cfg.dir;
mangal = "${pkgs.mangal}/bin/mangal";
githubRunnerEnabled = config.services.github-runners ? oberprofis.enable;
in lib.mkIf cfg.enable {
networking.firewall.allowedTCPPorts = [ 5000 ];
systemd.tmpfiles.rules = [
(if githubRunnerEnabled then
"d ${baseDir} 0750 kavita github-actions-runner -"
else
"d ${baseDir} 0770 kavita kavita -")
"d ${baseDir}/manga 0770 kavita kavita -"
] ++ lib.optional githubRunnerEnabled
"d ${baseDir}/github 0770 github-actions-runner kavita -";
# services.nginx.virtualHosts."kopatz.ddns.net".locations."/kavita" = {
# proxyPass = "http://127.0.0.1:5000";
# extraConfig = ''
# add_header Access-Control-Allow-Origin *;
# add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
# add_header Access-Control-Allow-Headers "Authorization, Origin, X-Requested-With, Content-Type, Accept";
# '';
# };
security.acme.certs."${fqdn}" = lib.mkIf useStepCa {
server = "https://127.0.0.1:8443/acme/kop-acme/directory";
age.secrets.kavita = {
file = ../../secrets/kavita.age;
owner = "kavita";
group = "kavita";
};
services.kavita = {
enable = true;
user = "kavita";
package = let
backend = pkgs.kavita.backend.overrideAttrs
(old: { patches = old.patches ++ [ ./kavita-patches.diff ]; });
kavitaPatched = pkgs.kavita.overrideAttrs (old: { backend = backend; });
in kavitaPatched;
settings.Port = 5000;
dataDir = baseDir;
tokenKeyFile = config.age.secrets.kavita.path;
settings.IpAddresses = "127.0.0.1";
settings.BaseUrl = "/kavita";
};
#todo: base url needs new kavita version
systemd.services.kavita = {
after = [ "nginx.service" ] ++ lib.optional useStepCa "step-ca.service";
};
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";
};
};
# services.nginx.virtualHosts."kopatz.ddns.net".locations."/kavita" = {
# proxyPass = "http://127.0.0.1:5000";
# extraConfig = ''
# add_header Access-Control-Allow-Origin *;
# add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
# add_header Access-Control-Allow-Headers "Authorization, Origin, X-Requested-With, Content-Type, Accept";
# '';
# };
security.acme.certs."${fqdn}" = lib.mkIf useStepCa {
server = "https://127.0.0.1:8443/acme/kop-acme/directory";
};
services.nginx.virtualHosts."${fqdn}" = {
forceSSL = useHttps;
enableACME = useHttps;
quic = useHttps;
http3 = useHttps;
locations."/".proxyPass = "http://127.0.0.1:5000";
locations."/".extraConfig = ''
more_clear_headers 'x-frame-options';
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
add_header Access-Control-Allow-Headers "Authorization, Origin, X-Requested-With, Content-Type, Accept";
'';
};
};
services.nginx.virtualHosts."${fqdn}" = {
forceSSL = useHttps;
enableACME = useHttps;
quic = useHttps;
http3 = useHttps;
locations."/".proxyPass = "http://127.0.0.1:5000";
locations."/".extraConfig = ''
more_clear_headers 'x-frame-options';
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
add_header Access-Control-Allow-Headers "Authorization, Origin, X-Requested-With, Content-Type, Accept";
'';
};
};
}

View File

@@ -55,7 +55,10 @@
};
#emulators.enable = true;
gamemode.enable = true;
games.enable = true;
games = {
enable = true;
enablePreinstalled = true;
};
ime.enable = true;
noise-supression.enable = true;
obs.enable = true;