diff options
Diffstat (limited to 'nixpkgs/pkgs/servers/web-apps/outline/default.nix')
-rw-r--r-- | nixpkgs/pkgs/servers/web-apps/outline/default.nix | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/web-apps/outline/default.nix b/nixpkgs/pkgs/servers/web-apps/outline/default.nix new file mode 100644 index 000000000000..6464035db317 --- /dev/null +++ b/nixpkgs/pkgs/servers/web-apps/outline/default.nix @@ -0,0 +1,84 @@ +{ stdenv +, lib +, fetchFromGitHub +, fetchYarnDeps +, makeWrapper +, prefetch-yarn-deps +, nodejs +, yarn +, nixosTests +}: + +stdenv.mkDerivation rec { + pname = "outline"; + version = "0.75.2"; + + src = fetchFromGitHub { + owner = "outline"; + repo = "outline"; + rev = "v${version}"; + hash = "sha256-jK1jZ9NyBl3Dioh/7gXWx6XyyI6xJKt2a/XXzbhllZM="; + }; + + nativeBuildInputs = [ makeWrapper prefetch-yarn-deps ]; + buildInputs = [ yarn nodejs ]; + + yarnOfflineCache = fetchYarnDeps { + yarnLock = "${src}/yarn.lock"; + hash = "sha256-8CfaP5T/pf/xq1lOfdOW4n2m12QLnkLFynHABjZwNiY="; + }; + + configurePhase = '' + export HOME=$(mktemp -d)/yarn_home + ''; + + buildPhase = '' + runHook preBuild + export NODE_OPTIONS=--openssl-legacy-provider + + yarn config --offline set yarn-offline-mirror $yarnOfflineCache + fixup-yarn-lock yarn.lock + + yarn install --offline \ + --frozen-lockfile \ + --ignore-engines --ignore-scripts + patchShebangs node_modules/ + # apply upstream patches with `patch-package` + yarn run postinstall + yarn build + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin $out/share/outline + mv build server public node_modules $out/share/outline/ + + node_modules=$out/share/outline/node_modules + build=$out/share/outline/build + server=$out/share/outline/server + + makeWrapper ${nodejs}/bin/node $out/bin/outline-server \ + --add-flags $build/server/index.js \ + --set NODE_ENV production \ + --set NODE_PATH $node_modules \ + --prefix PATH : ${lib.makeBinPath [ nodejs ]} # required to run migrations + + runHook postInstall + ''; + + passthru.tests = { + basic-functionality = nixosTests.outline; + }; + + meta = with lib; { + description = "The fastest wiki and knowledge base for growing teams. Beautiful, feature rich, and markdown compatible"; + homepage = "https://www.getoutline.com/"; + changelog = "https://github.com/outline/outline/releases"; + license = licenses.bsl11; + maintainers = with maintainers; [ cab404 yrd xanderio ]; + platforms = platforms.linux; + }; +} |