15 stdenv.mkDerivation rec {
19 src = fetchFromGitHub {
23 hash = "sha256-P0JDkuEm5eeVwi0+C7uSytA2NPQXUgJEDxqPiJfRNvs=";
36 yarnOfflineCache = fetchYarnDeps {
37 yarnLock = "${src}/yarn.lock";
38 hash = "sha256-j0mA+2GQZNxQoEi8qwmipUXGjPL4/bY5GHAT0o92Ob0=";
42 export HOME=$(mktemp -d)/yarn_home
47 export NODE_OPTIONS=--openssl-legacy-provider
49 yarn config --offline set yarn-offline-mirror $yarnOfflineCache
50 fixup-yarn-lock yarn.lock
52 yarn install --offline \
54 --ignore-engines --ignore-scripts
55 patchShebangs node_modules/
56 # apply upstream patches with `patch-package`
66 mkdir -p $out/bin $out/share/outline
67 mv build server public node_modules $out/share/outline/
69 node_modules=$out/share/outline/node_modules
70 build=$out/share/outline/build
71 server=$out/share/outline/server
73 makeWrapper ${nodejs}/bin/node $out/bin/outline-server \
74 --add-flags $build/server/index.js \
75 --set NODE_ENV production \
76 --set NODE_PATH $node_modules \
77 --prefix PATH : ${lib.makeBinPath [ nodejs ]} # required to run migrations
84 basic-functionality = nixosTests.outline;
86 updateScript = nix-update-script { };
87 # alias for nix-update to be able to find and update this attribute
88 offlineCache = yarnOfflineCache;
92 description = "Fastest wiki and knowledge base for growing teams. Beautiful, feature rich, and markdown compatible";
93 homepage = "https://www.getoutline.com/";
94 changelog = "https://github.com/outline/outline/releases";
95 license = licenses.bsl11;
102 ++ teams.cyberus.members;
103 platforms = platforms.linux;