diff --git a/pkgs/tools/system/netdata/default.nix b/pkgs/tools/system/netdata/default.nix index 13c50fe3ec9e..30d9d6b4ef37 100644 --- a/pkgs/tools/system/netdata/default.nix +++ b/pkgs/tools/system/netdata/default.nix @@ -13,6 +13,9 @@ stdenv.mkDerivation rec{ buildInputs = [ autoreconfHook zlib pkgconfig libuuid ]; + # Allow UI to load when running as non-root + patches = [ ./web_access.patch ]; + preConfigure = '' export ZLIB_CFLAGS=" " export ZLIB_LIBS="-lz" diff --git a/pkgs/tools/system/netdata/web_access.patch b/pkgs/tools/system/netdata/web_access.patch new file mode 100644 index 000000000000..f1e4bd64cbb5 --- /dev/null +++ b/pkgs/tools/system/netdata/web_access.patch @@ -0,0 +1,20 @@ +--- a/src/web_client.c.orig ++++ b/src/web_client.c +@@ -331,7 +331,7 @@ + buffer_sprintf(w->response.data, "File '%s' does not exist, or is not accessible.", webfilename); + return 404; + } +- ++#if 0 + // check if the file is owned by expected user + if(stat.st_uid != web_files_uid()) { + error("%llu: File '%s' is owned by user %u (expected user %u). Access Denied.", w->id, webfilename, stat.st_uid, web_files_uid()); +@@ -345,7 +345,7 @@ + buffer_sprintf(w->response.data, "Access to file '%s' is not permitted.", webfilename); + return 403; + } +- ++#endif + if((stat.st_mode & S_IFMT) == S_IFDIR) { + snprintfz(webfilename, FILENAME_MAX, "%s/index.html", filename); + return mysendfile(w, webfilename);