biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / servers / jellyseerr / default.nix
blobca8e93753e69facfefc617dc17a0abf16d98dbb3
1 { lib
2 , fetchFromGitHub
3 , makeWrapper
4 , mkYarnPackage
5 , nodejs
6 , fetchYarnDeps
7 , python3
8 }:
10 let
11   pin = lib.importJSON ./pin.json;
14 mkYarnPackage rec {
15   pname = "jellyseerr";
16   inherit (pin) version;
18   src = fetchFromGitHub {
19     owner = "Fallenbagel";
20     repo = "jellyseerr";
21     rev = "v${version}";
22     hash = pin.srcHash;
23   };
25   packageJSON = ./package.json;
27   offlineCache = fetchYarnDeps {
28     yarnLock = "${src}/yarn.lock";
29     sha256 = pin.yarnSha256;
30   };
32   doDist = false;
34   nativeBuildInputs = [
35     nodejs
36     makeWrapper
37   ];
39   # Fixes "SQLite package has not been found installed" at launch
40   pkgConfig.sqlite3 = {
41     nativeBuildInputs = [ nodejs.pkgs.node-pre-gyp python3 ];
42     postInstall = ''
43       export CPPFLAGS="-I${nodejs}/include/node"
44       node-pre-gyp install --prefer-offline --build-from-source --nodedir=${nodejs}/include/node
45       rm -r build-tmp-napi-v6
46     '';
47   };
49   pkgConfig.bcrypt = {
50     nativeBuildInputs = [ nodejs.pkgs.node-pre-gyp python3 ];
51     postInstall = ''
52       export CPPFLAGS="-I${nodejs}/include/node"
53       node-pre-gyp install --prefer-offline --build-from-source --nodedir=${nodejs}/include/node
54     '';
55   };
57   buildPhase = ''
58     runHook preBuild
59     (
60       shopt -s dotglob
61       cd deps/jellyseerr
62       rm -r config/*
63       yarn build
64       rm -r .next/cache
65     )
66     runHook postBuild
67   '';
69   postInstall = ''
70     makeWrapper '${nodejs}/bin/node' "$out/bin/jellyseerr" \
71       --add-flags "$out/libexec/jellyseerr/deps/jellyseerr/dist/index.js" \
72       --set NODE_ENV production
73   '';
75   passthru.updateScript = ./update.sh;
77   meta = with lib; {
78     description = "Fork of overseerr for jellyfin support";
79     homepage = "https://github.com/Fallenbagel/jellyseerr";
80     longDescription = ''
81       Jellyseerr is a free and open source software application for managing
82       requests for your media library. It is a a fork of Overseerr built to
83       bring support for Jellyfin & Emby media servers!
84     '';
85     license = licenses.mit;
86     maintainers = with maintainers; [ camillemndn ];
87     platforms = platforms.linux;
88     mainProgram = "jellyseerr";
89   };