2026-08-21 21:24:16 +07:00
|
|
|
# ─── Web: packages pre-built .next into a Nix store path ───
|
2026-08-21 17:50:30 +07:00
|
|
|
# Next.js 16/Turbopack has a Bun incompatibility in the Nix sandbox,
|
|
|
|
|
# so .next is built in CI via `bun run build` and packaged here.
|
2026-08-21 15:56:22 +07:00
|
|
|
{ pkgs
|
|
|
|
|
, stdenv
|
2026-08-21 17:50:30 +07:00
|
|
|
, writeShellScriptBin
|
2026-08-21 15:56:22 +07:00
|
|
|
, bun
|
|
|
|
|
, webNextDir
|
|
|
|
|
, ...
|
|
|
|
|
}:
|
|
|
|
|
|
2026-08-21 21:24:16 +07:00
|
|
|
let
|
|
|
|
|
mcpedia-web-script = writeShellScriptBin "mcpedia-web" ''
|
|
|
|
|
#!${pkgs.bash}/bin/bash
|
|
|
|
|
export NODE_ENV=production
|
|
|
|
|
export PORT=4016
|
|
|
|
|
cd /home/code/mcpedia/apps/web
|
|
|
|
|
rm -f .next
|
|
|
|
|
ln -s "${webNextDir}" .next
|
|
|
|
|
exec "${bun}/bin/bun" x next start -p 4016
|
|
|
|
|
'';
|
|
|
|
|
in
|
2026-08-21 15:56:22 +07:00
|
|
|
stdenv.mkDerivation {
|
|
|
|
|
pname = "mcpedia-web";
|
|
|
|
|
version = "1.0.0";
|
2026-08-21 17:50:30 +07:00
|
|
|
src = webNextDir;
|
2026-08-21 15:56:22 +07:00
|
|
|
dontUnpack = true;
|
|
|
|
|
buildPhase = "";
|
|
|
|
|
installPhase = ''
|
2026-08-21 17:50:30 +07:00
|
|
|
mkdir -p $out/share/mcpedia-web/.next
|
|
|
|
|
cp -r "${webNextDir}/." $out/share/mcpedia-web/.next/
|
2026-08-21 15:56:22 +07:00
|
|
|
|
2026-08-21 17:50:30 +07:00
|
|
|
mkdir -p $out/bin
|
2026-08-21 21:24:16 +07:00
|
|
|
cp ${mcpedia-web-script}/bin/mcpedia-web $out/bin/mcpedia-web
|
2026-08-21 15:56:22 +07:00
|
|
|
'';
|
|
|
|
|
}
|