20 version = "240711-2197af848";
23 src = fetchFromGitHub {
27 hash = "sha256-ihDv5c5RUjDbFcAHJjzp/8qCwKfA+rlFXPziaYarzs8=";
30 libtensorflow = callPackage ./libtensorflow.nix { };
31 backend = callPackage ./backend.nix { inherit libtensorflow src version; };
32 frontend = callPackage ./frontend.nix { inherit src version; };
38 url = "https://dl.photoprism.org/tensorflow/${name}.zip";
42 facenet = fetchModel {
44 hash = "sha256-aS5kkNhxOLSLTH/ipxg7NAa1w9X8iiG78jmloR1hpRo=";
49 hash = "sha256-bF25jPmZLyeSWy/CGXZE/VE2UupEG2q9Jmr0+1rUYWE=";
54 hash = "sha256-zy/HcmgaHOY7FfJUY6I/yjjsMPHR2Ote9ppwqemBlfg=";
57 assets_path = "$out/share/${pname}";
59 stdenv.mkDerivation (finalAttrs: {
60 inherit pname version;
72 mkdir -p $out/bin ${assets_path}
75 ln -s ${backend}/bin/photoprism $out/bin/photoprism
76 wrapProgram $out/bin/photoprism \
77 --set PHOTOPRISM_ASSETS_PATH ${assets_path} \
78 --set PHOTOPRISM_DARKTABLE_BIN ${darktable}/bin/darktable-cli \
79 --set PHOTOPRISM_RAWTHERAPEE_BIN ${rawtherapee}/bin/rawtherapee-cli \
80 --set PHOTOPRISM_HEIFCONVERT_BIN ${libheif}/bin/heif-dec \
81 --set PHOTOPRISM_RSVGCONVERT_BIN ${librsvg}/bin/rsvg-convert \
82 --set PHOTOPRISM_FFMPEG_BIN ${ffmpeg}/bin/ffmpeg \
83 --set PHOTOPRISM_EXIFTOOL_BIN ${exiftool}/bin/exiftool \
84 --set PHOTOPRISM_IMAGEMAGICK_BIN ${imagemagick}/bin/convert
87 ln -s ${frontend}/assets/* ${assets_path}
88 # install tensorflow models
89 ln -s ${nasnet}/nasnet ${assets_path}
90 ln -s ${nsfw}/nsfw ${assets_path}
91 ln -s ${facenet}/facenet ${assets_path}
96 passthru.tests.version = testers.testVersion { package = finalAttrs.finalPackage; };
97 passthru.tests.photoprism = nixosTests.photoprism;
100 homepage = "https://photoprism.app";
101 description = "Personal Photo Management powered by Go and Google TensorFlow";
102 inherit (libtensorflow.meta) platforms;
103 license = licenses.agpl3Only;
104 maintainers = with maintainers; [ benesim ];
105 mainProgram = "photoprism";