{ lib, fetchFromGitHub, stdenv, fetchYarnDeps, nodejs, fixup-yarn-lock, yarn, yarnConfigHook, makeWrapper, }: stdenv.mkDerivation rec { pname = "lasuite-docs-collaboration-server"; version = "3.2.1"; src = fetchFromGitHub { owner = "suitenumerique"; repo = "docs"; tag = "v${version}"; hash = "sha256-jnt1YJgzkN8NmZGLO2/L4JUsHOoTJhOKvJdYDE5Vvfg="; }; sourceRoot = "source/src/frontend"; offlineCache = fetchYarnDeps { yarnLock = "${src}/src/frontend/yarn.lock"; hash = "sha256-JvgmyCNJk8c65wXDztEMC1+ZqHF7uQJyuw1ZDK7HQow="; }; nativeBuildInputs = [ nodejs fixup-yarn-lock yarnConfigHook yarn makeWrapper ]; buildPhase = '' runHook preBuild yarn --offline COLLABORATION_SERVER run build runHook postBuild ''; installPhase = '' runHook preInstall mkdir -p $out/{lib,bin} cp -r {apps,node_modules,packages,servers} $out/lib makeWrapper ${lib.getExe nodejs} "$out/bin/docs-collaboration-server" \ --add-flags "$out/lib/servers/y-provider/dist/start-server.js" --set NODE_PATH "$out/lib/node_modules" runHook postInstall ''; meta = { description = "A collaborative note taking, wiki and documentation platform that scales. Built with Django and React. Opensource alternative to Notion or Outline"; homepage = "https://github.com/suitenumerique/docs"; changelog = "https://github.com/suitenumerique/docs/blob/${src.tag}/CHANGELOG.md"; mainProgram = "docs-collaboration-server"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ soyouzpanda ]; platforms = lib.platforms.all; }; }