forked from mirrors/nixpkgs
69 lines
1.9 KiB
Nix
69 lines
1.9 KiB
Nix
{ pkgs, lib, stdenv, fetchFromGitHub, fetchzip, nixosTests, iputils, nodejs, makeWrapper }:
|
|
let
|
|
deps = import ./composition.nix { inherit pkgs; };
|
|
in
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
pname = "uptime-kuma";
|
|
version = "1.18.5";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "louislam";
|
|
repo = "uptime-kuma";
|
|
rev = finalAttrs.version;
|
|
sha256 = "sha256-4RLOY8OqhbcnSPa0VpAdMT3E1M0/ev/sSAmbQUQxqbw=";
|
|
};
|
|
|
|
uiSha256 = "sha256-0KbxagFh4bxNrnekUHx0DGr3urfUUz33zn4EtJIZBps=";
|
|
|
|
patches = [
|
|
# Fixes the permissions of the database being not set correctly
|
|
# See https://github.com/louislam/uptime-kuma/pull/2119
|
|
./fix-database-permissions.patch
|
|
];
|
|
|
|
postPatch = ''
|
|
substituteInPlace server/ping-lite.js \
|
|
--replace "/bin/ping" "${iputils}/bin/ping" \
|
|
--replace "/sbin/ping6" "${iputils}/bin/ping" \
|
|
--replace "/sbin/ping" "${iputils}/bin/ping"
|
|
'';
|
|
|
|
nativeBuildInputs = [ makeWrapper ];
|
|
|
|
installPhase = ''
|
|
mkdir -p $out/share/
|
|
cp -r server $out/share/
|
|
cp -r db $out/share/
|
|
cp -r src $out/share/
|
|
cp package.json $out/share/
|
|
ln -s ${deps.package}/lib/node_modules/uptime-kuma/node_modules/ $out/share/
|
|
ln -s ${finalAttrs.passthru.ui} $out/share/dist
|
|
'';
|
|
|
|
postFixup = ''
|
|
makeWrapper ${nodejs}/bin/node $out/bin/uptime-kuma-server \
|
|
--add-flags $out/share/server/server.js \
|
|
--chdir $out/share/
|
|
'';
|
|
|
|
passthru = {
|
|
tests.uptime-kuma = nixosTests.uptime-kuma;
|
|
|
|
updateScript = ./update.sh;
|
|
|
|
ui = fetchzip {
|
|
name = "uptime-kuma-dist-${finalAttrs.version}";
|
|
url = "https://github.com/louislam/uptime-kuma/releases/download/${finalAttrs.version}/dist.tar.gz";
|
|
sha256 = finalAttrs.uiSha256;
|
|
};
|
|
};
|
|
|
|
meta = with lib; {
|
|
description = "A fancy self-hosted monitoring tool";
|
|
homepage = "https://github.com/louislam/uptime-kuma";
|
|
license = licenses.mit;
|
|
maintainers = with maintainers; [ julienmalka ];
|
|
};
|
|
})
|
|
|