parent
415f8b23e2
commit
1c59ce72e4
5 changed files with 47 additions and 39 deletions
|
@ -11,7 +11,7 @@
|
||||||
mkIf
|
mkIf
|
||||||
mkOption
|
mkOption
|
||||||
mkPackageOption
|
mkPackageOption
|
||||||
optionalString
|
# optionalString
|
||||||
types
|
types
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ -51,13 +51,6 @@ in {
|
||||||
description = "The directory where Kapowarr stores its data files.";
|
description = "The directory where Kapowarr stores its data files.";
|
||||||
};
|
};
|
||||||
|
|
||||||
downloadDir = mkOption {
|
|
||||||
type = types.path;
|
|
||||||
default = "${cfg.dataDir}/temp_downloads";
|
|
||||||
defaultText = "/var/lib/kapowarr/temp_downloads";
|
|
||||||
description = "The directory where Kapowarr stores its downloaded files.";
|
|
||||||
};
|
|
||||||
|
|
||||||
logDir = mkOption {
|
logDir = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = cfg.dataDir;
|
default = cfg.dataDir;
|
||||||
|
@ -74,10 +67,6 @@ in {
|
||||||
after = ["network.target"];
|
after = ["network.target"];
|
||||||
wantedBy = ["multi-user.target"];
|
wantedBy = ["multi-user.target"];
|
||||||
|
|
||||||
environment = {
|
|
||||||
KAPOWARR_LOG_DIR = cfg.logDir;
|
|
||||||
};
|
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
User = cfg.user;
|
User = cfg.user;
|
||||||
|
@ -86,10 +75,9 @@ in {
|
||||||
ExecStart = toString [
|
ExecStart = toString [
|
||||||
(getExe cfg.package)
|
(getExe cfg.package)
|
||||||
"-d ${cfg.dataDir}"
|
"-d ${cfg.dataDir}"
|
||||||
"-D ${cfg.downloadDir}"
|
|
||||||
"-l ${cfg.logDir}"
|
"-l ${cfg.logDir}"
|
||||||
"-p ${toString cfg.port}"
|
# "-p ${toString cfg.port}"
|
||||||
(optionalString (cfg.urlBase != null) "-u ${cfg.urlBase}")
|
# (optionalString (cfg.urlBase != null) "-u ${cfg.urlBase}")
|
||||||
];
|
];
|
||||||
|
|
||||||
# Hardening from komga service
|
# Hardening from komga service
|
||||||
|
|
8
flake.lock
generated
8
flake.lock
generated
|
@ -3,16 +3,16 @@
|
||||||
"Kapowarr-src": {
|
"Kapowarr-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1744033989,
|
"lastModified": 1744746361,
|
||||||
"narHash": "sha256-g+ORfY2UhPOk1bBwSTzAZ7zwbY+bgggOas6+9P1gWC4=",
|
"narHash": "sha256-vu0nVGjwQSW5K1WtYeL8ixWQABJG0KgT6erenRK44Zs=",
|
||||||
"owner": "matt1432",
|
"owner": "matt1432",
|
||||||
"repo": "Kapowarr",
|
"repo": "Kapowarr",
|
||||||
"rev": "d797b9d7f3fee4c7ba7e7e9cd33ed78926c981e9",
|
"rev": "d5a170f80b39b8d3477574211bd775291268a129",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "matt1432",
|
"owner": "matt1432",
|
||||||
"ref": "build-system-bak",
|
"ref": "build-system",
|
||||||
"repo": "Kapowarr",
|
"repo": "Kapowarr",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
Kapowarr-src = {
|
Kapowarr-src = {
|
||||||
flake = false;
|
flake = false;
|
||||||
owner = "matt1432";
|
owner = "matt1432";
|
||||||
ref = "build-system-bak";
|
ref = "build-system";
|
||||||
repo = "Kapowarr";
|
repo = "Kapowarr";
|
||||||
type = "github";
|
type = "github";
|
||||||
};
|
};
|
||||||
|
|
|
@ -327,7 +327,7 @@ let
|
||||||
name = "Kapowarr-src";
|
name = "Kapowarr-src";
|
||||||
owner = "matt1432";
|
owner = "matt1432";
|
||||||
repo = "Kapowarr";
|
repo = "Kapowarr";
|
||||||
ref = "build-system-bak";
|
ref = "build-system";
|
||||||
# type = "path";
|
# type = "path";
|
||||||
# path = "/home/matt/git/Kapowarr";
|
# path = "/home/matt/git/Kapowarr";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
{
|
{
|
||||||
# nix build inputs
|
# nix build inputs
|
||||||
lib,
|
lib,
|
||||||
buildPythonApplication,
|
stdenv,
|
||||||
|
python,
|
||||||
|
makeWrapper,
|
||||||
Kapowarr-src,
|
Kapowarr-src,
|
||||||
# deps
|
# deps
|
||||||
rar,
|
rar,
|
||||||
|
@ -13,7 +15,6 @@
|
||||||
flask,
|
flask,
|
||||||
flask-socketio,
|
flask-socketio,
|
||||||
requests,
|
requests,
|
||||||
setuptools,
|
|
||||||
typing-extensions, # from overrides
|
typing-extensions, # from overrides
|
||||||
waitress,
|
waitress,
|
||||||
websocket-client,
|
websocket-client,
|
||||||
|
@ -24,37 +25,56 @@
|
||||||
|
|
||||||
pyproject = fromTOML (readFile "${Kapowarr-src}/pyproject.toml");
|
pyproject = fromTOML (readFile "${Kapowarr-src}/pyproject.toml");
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
typing-extensions
|
||||||
|
requests
|
||||||
|
beautifulsoup4
|
||||||
|
flask
|
||||||
|
waitress
|
||||||
|
cryptography
|
||||||
|
bencoding
|
||||||
|
aiohttp
|
||||||
|
flask-socketio
|
||||||
|
websocket-client
|
||||||
|
];
|
||||||
|
|
||||||
|
pythonExe = getExe (python.withPackages (ps: dependencies));
|
||||||
|
|
||||||
pname = "kapowarr";
|
pname = "kapowarr";
|
||||||
version = "${pyproject.project.version}+${Kapowarr-src.shortRev or "dirty"}";
|
version = "${pyproject.project.version}+${Kapowarr-src.shortRev or "dirty"}";
|
||||||
in
|
in
|
||||||
buildPythonApplication {
|
stdenv.mkDerivation {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
format = "pyproject";
|
|
||||||
|
|
||||||
src = Kapowarr-src;
|
src = Kapowarr-src;
|
||||||
|
|
||||||
|
nativeBuildInputs = [makeWrapper];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
# Remove shebang
|
||||||
|
sed -i 1d ./Kapowarr.py
|
||||||
|
|
||||||
|
# Disable PWA for now
|
||||||
|
substituteInPlace ./backend/internals/settings.py \
|
||||||
|
--replace-fail "with open(filename, 'w') as f:" "" \
|
||||||
|
--replace-fail "dump(manifest, f, indent=4)" ""
|
||||||
|
|
||||||
# TODO: makes sure this works
|
# TODO: makes sure this works
|
||||||
substituteInPlace ./src/backend/implementations/converters.py \
|
substituteInPlace ./backend/implementations/converters.py \
|
||||||
--replace-fail \
|
--replace-fail \
|
||||||
"exe = folder_path('backend', 'lib', Constants.RAR_EXECUTABLES[platform])" \
|
"exe = folder_path('backend', 'lib', Constants.RAR_EXECUTABLES[platform])" \
|
||||||
"exe = '${getExe rar}'"
|
"exe = '${getExe rar}'"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
build-system = [setuptools];
|
buildPhase = ''
|
||||||
|
mkdir -p $out/${python.sitePackages}
|
||||||
|
cp -r ./. $out/${python.sitePackages}
|
||||||
|
'';
|
||||||
|
|
||||||
dependencies = [
|
installPhase = ''
|
||||||
typing-extensions
|
makeWrapper ${pythonExe} $out/bin/kapowarr \
|
||||||
requests
|
--add-flags "$out/${python.sitePackages}/Kapowarr.py"
|
||||||
beautifulsoup4
|
'';
|
||||||
flask
|
|
||||||
waitress
|
|
||||||
cryptography
|
|
||||||
bencoding
|
|
||||||
aiohttp
|
|
||||||
flask-socketio
|
|
||||||
websocket-client
|
|
||||||
];
|
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
inherit (rar.meta) platforms;
|
inherit (rar.meta) platforms;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue