add compression function, formatting and fix error
This commit is contained in:
22
flake.lock
generated
22
flake.lock
generated
@@ -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": {
|
||||
|
||||
@@ -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 =
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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";
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user