mirror of
https://github.com/versia-pub/server.git
synced 2025-12-06 00:18:19 +01:00
fix: 💚 Fix the Nix build, remove dependency on PNPM
This commit is contained in:
parent
30bb801f9f
commit
eb096c5991
25
flake.lock
25
flake.lock
|
|
@ -20,11 +20,11 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1750365781,
|
||||
"narHash": "sha256-XE/lFNhz5lsriMm/yjXkvSZz5DfvKJLUjsS6pP8EC50=",
|
||||
"lastModified": 1751637120,
|
||||
"narHash": "sha256-xVNy/XopSfIG9c46nRmPaKfH1Gn/56vQ8++xWA8itO4=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "08f22084e6085d19bcfb4be30d1ca76ecb96fe54",
|
||||
"rev": "5c724ed1388e53cc231ed98330a60eb2f7be4be3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -34,27 +34,10 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-bun": {
|
||||
"locked": {
|
||||
"lastModified": 1749427688,
|
||||
"narHash": "sha256-mMfhQsEYlfOvtjMs6BNPduuRc4YP/+Mj3G+/KYLQLUw=",
|
||||
"owner": "0xdsqr",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "09f139e43b59756fcbd9437b3a8726238fa62880",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "0xdsqr",
|
||||
"ref": "add-bun-support",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-bun": "nixpkgs-bun"
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
|
|
|
|||
15
flake.nix
15
flake.nix
|
|
@ -3,7 +3,6 @@
|
|||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
nixpkgs-bun.url = "github:0xdsqr/nixpkgs/add-bun-support";
|
||||
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
};
|
||||
|
|
@ -11,21 +10,14 @@
|
|||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
nixpkgs-bun,
|
||||
flake-utils,
|
||||
...
|
||||
}:
|
||||
{
|
||||
overlays.default = final: prev: rec {
|
||||
versia-server = final.callPackage ./nix/package.nix {
|
||||
inherit
|
||||
(nixpkgs-bun.legacyPackages.x86_64-linux)
|
||||
fetchBunDeps
|
||||
bunConfigHook
|
||||
bunInstallHook
|
||||
bunBuildHook
|
||||
;
|
||||
};
|
||||
versia-server =
|
||||
final.callPackage ./nix/package.nix {
|
||||
};
|
||||
versia-server-worker = final.callPackage ./nix/package-worker.nix {
|
||||
inherit versia-server;
|
||||
};
|
||||
|
|
@ -64,7 +56,6 @@
|
|||
buildInputs = with pkgs; [
|
||||
bun
|
||||
vips
|
||||
pnpm
|
||||
nodePackages.typescript
|
||||
nodePackages.typescript-language-server
|
||||
nix-ld
|
||||
|
|
|
|||
|
|
@ -2,14 +2,8 @@
|
|||
{versia-server, ...}:
|
||||
versia-server.overrideAttrs (oldAttrs: {
|
||||
pname = "${oldAttrs.pname}-worker";
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
bun run packages/worker/build.ts
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
entrypointPath = "packages/worker/index.js";
|
||||
buildType = "worker";
|
||||
|
||||
meta =
|
||||
oldAttrs.meta
|
||||
|
|
|
|||
|
|
@ -5,10 +5,8 @@
|
|||
nodejs,
|
||||
vips,
|
||||
makeWrapper,
|
||||
fetchBunDeps,
|
||||
bunConfigHook,
|
||||
bunInstallHook,
|
||||
bunBuildHook,
|
||||
stdenvNoCC,
|
||||
writableTmpDirAsHomeHook,
|
||||
...
|
||||
}: let
|
||||
packageJson = builtins.fromJSON (builtins.readFile ../package.json);
|
||||
|
|
@ -19,23 +17,70 @@ in
|
|||
|
||||
src = ../.;
|
||||
|
||||
bunOfflineCache = fetchBunDeps {
|
||||
bunLock = finalAttrs.src + "/bun.lock";
|
||||
hash = "sha256-8R+LzgqAiqRGCMDBw2R7QO6hbdNrtIwzSjR3A8xhfVw=";
|
||||
};
|
||||
node_modules = stdenvNoCC.mkDerivation {
|
||||
pname = "${finalAttrs.pname}-node_modules";
|
||||
inherit (finalAttrs) version src;
|
||||
|
||||
bunBuildScript = "packages/api/build.ts";
|
||||
nativeBuildInputs = [
|
||||
bun
|
||||
nodejs
|
||||
writableTmpDirAsHomeHook
|
||||
];
|
||||
|
||||
dontConfigure = true;
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
export BUN_INSTALL_CACHE_DIR=$(mktemp -d)
|
||||
|
||||
bun install \
|
||||
--force \
|
||||
--frozen-lockfile \
|
||||
--no-progress
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/node_modules
|
||||
cp -R ./node_modules $out
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
# Required else we get errors that our fixed-output derivation references store paths
|
||||
dontFixup = true;
|
||||
|
||||
outputHash = "sha256-/RQv87hjLdH6+41yR7+bGp3j200DVhIrKWoI1MKIqJs=";
|
||||
outputHashAlgo = "sha256";
|
||||
outputHashMode = "recursive";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
bun
|
||||
nodejs
|
||||
makeWrapper
|
||||
bunConfigHook
|
||||
bunInstallHook
|
||||
bunBuildHook
|
||||
];
|
||||
|
||||
entrypointPath = "packages/api/index.js";
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
|
||||
cp -R ${finalAttrs.node_modules}/node_modules .
|
||||
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
bun run build ${finalAttrs.buildType}
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
buildType = "api";
|
||||
|
||||
installPhase = let
|
||||
libPath = lib.makeLibraryPath [
|
||||
|
|
@ -53,7 +98,7 @@ in
|
|||
cp -r dist $out/${finalAttrs.pname}
|
||||
|
||||
makeWrapper ${lib.getExe bun} $out/bin/${finalAttrs.pname} \
|
||||
--add-flags "run $out/${finalAttrs.pname}/${finalAttrs.entrypointPath}" \
|
||||
--add-flags "run $out/${finalAttrs.pname}/${finalAttrs.buildType}.js" \
|
||||
--set NODE_PATH $out/${finalAttrs.pname}/node_modules \
|
||||
--set MSGPACKR_NATIVE_ACCELERATION_DISABLED true \
|
||||
--prefix PATH : ${binPath} \
|
||||
|
|
|
|||
|
|
@ -123,6 +123,7 @@
|
|||
"test": "bun test",
|
||||
"build": "bun run --filter \"*\" build && bun run build.ts",
|
||||
"detect-circular": "bunx madge --circular --extensions ts ./",
|
||||
"update-nix-hashes": "bash scripts/update-nix.sh",
|
||||
"run-api": "bun run build api && cd dist && ln -s ../config config && bun run api.js",
|
||||
"run-worker": "bun run build worker && cd dist && ln -s ../config config && bun run worker.js",
|
||||
"dev": "bun run --hot api.ts",
|
||||
|
|
|
|||
6753
pnpm-lock.yaml
6753
pnpm-lock.yaml
File diff suppressed because it is too large
Load diff
|
|
@ -1,86 +0,0 @@
|
|||
packages:
|
||||
- packages/*
|
||||
|
||||
onlyBuiltDependencies:
|
||||
- esbuild
|
||||
- msgpackr-extract
|
||||
- sharp
|
||||
|
||||
shamefullyHoist: true
|
||||
catalog:
|
||||
{
|
||||
"@biomejs/biome": "2.0.0-beta.5",
|
||||
"@types/bun": "^1.2.16",
|
||||
"@types/html-to-text": "^9.0.4",
|
||||
"@types/markdown-it-container": "^2.0.10",
|
||||
"@types/mime-types": "^3.0.1",
|
||||
"@types/qs": "^6.14.0",
|
||||
"@types/web-push": "^3.6.4",
|
||||
"bun-bagel": "^1.2.0",
|
||||
"drizzle-kit": "^0.31.1",
|
||||
"mitt": "^3.0.1",
|
||||
"markdown-it-image-figures": "^2.1.1",
|
||||
"ts-prune": "^0.10.3",
|
||||
"typescript": "^5.8.3",
|
||||
"vitepress": "^1.6.3",
|
||||
"vitepress-plugin-tabs": "^0.7.1",
|
||||
"vitepress-sidebar": "^1.31.1",
|
||||
"vue": "^3.5.16",
|
||||
"zod-to-json-schema": "^3.24.5",
|
||||
"@bull-board/api": "^6.10.1",
|
||||
"@bull-board/hono": "^6.10.1",
|
||||
"@clerc/plugin-completions": "^0.44.0",
|
||||
"@clerc/plugin-friendly-error": "^0.44.0",
|
||||
"@clerc/plugin-help": "^0.44.0",
|
||||
"@clerc/plugin-not-found": "^0.44.0",
|
||||
"@clerc/plugin-version": "^0.44.0",
|
||||
"@hackmd/markdown-it-task-lists": "^2.1.4",
|
||||
"@hono/zod-validator": "^0.7.0",
|
||||
"@inquirer/confirm": "^5.1.12",
|
||||
"@logtape/file": "^0.12.0",
|
||||
"@logtape/logtape": "^0.12.0",
|
||||
"@scalar/hono-api-reference": "^0.9.4",
|
||||
"@sentry/bun": "^9.29.0",
|
||||
"altcha-lib": "^1.3.0",
|
||||
"blurhash": "^2.0.5",
|
||||
"bullmq": "^5.53.3",
|
||||
"chalk": "^5.4.1",
|
||||
"clerc": "^0.44.0",
|
||||
"confbox": "^0.2.2",
|
||||
"drizzle-orm": "^0.44.2",
|
||||
"feed": "^5.1.0",
|
||||
"hono": "^4.7.11",
|
||||
"hono-openapi": "^0.4.8",
|
||||
"hono-rate-limiter": "^0.4.2",
|
||||
"html-to-text": "^9.0.5",
|
||||
"ioredis": "^5.6.1",
|
||||
"ip-matching": "^2.1.2",
|
||||
"iso-639-1": "^3.1.5",
|
||||
"jose": "^6.0.11",
|
||||
"linkify-html": "^4.3.1",
|
||||
"linkify-string": "^4.3.1",
|
||||
"linkifyjs": "^4.3.1",
|
||||
"magic-regexp": "^0.10.0",
|
||||
"markdown-it": "^14.1.0",
|
||||
"markdown-it-anchor": "^9.2.0",
|
||||
"markdown-it-container": "^4.0.0",
|
||||
"markdown-it-mathjax3": "^4.3.2",
|
||||
"markdown-it-toc-done-right": "^4.2.0",
|
||||
"mime-types": "^3.0.1",
|
||||
"mitata": "^1.0.34",
|
||||
"oauth4webapi": "^3.5.2",
|
||||
"ora": "^8.2.0",
|
||||
"qs": "^6.14.0",
|
||||
"sharp": "^0.34.2",
|
||||
"sonic-channel": "^1.3.1",
|
||||
"string-comparison": "^1.3.0",
|
||||
"stringify-entities": "^4.0.4",
|
||||
"unicode-emoji-json": "^0.8.0",
|
||||
"uqr": "^0.1.2",
|
||||
"web-push": "^3.6.7",
|
||||
"xss": "^1.0.15",
|
||||
"youch": "^4.1.0-beta.7",
|
||||
"zod": "^3.25.64",
|
||||
"zod-openapi": "^4.2.4",
|
||||
"zod-validation-error": "^3.5.0",
|
||||
}
|
||||
|
|
@ -1,11 +1,8 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Step 1: Run pnpm install
|
||||
pnpm i --lockfile-only
|
||||
|
||||
# Step 2: Blank the hash in package.nix
|
||||
sed -i 's/hash = ".*";/hash = lib.fakeHash;/g' nix/package.nix
|
||||
sed -i 's/outputHash = ".*";/outputHash = lib.fakeHash;/g' nix/package.nix
|
||||
|
||||
echo "Running nix build to get the correct hash..."
|
||||
|
||||
|
|
@ -18,7 +15,7 @@ corrected_hash=$(echo "$build_output" | grep 'got:' | awk '{print $2}')
|
|||
echo "Corrected hash: $corrected_hash"
|
||||
|
||||
# Step 5: Replace the blank hash with the corrected one
|
||||
sed -i "s/hash = lib.fakeHash;/hash = \"$corrected_hash\";/g" nix/package.nix
|
||||
sed -i "s/outputHash = lib.fakeHash;/outputHash = \"$corrected_hash\";/g" nix/package.nix
|
||||
|
||||
echo "Rebuilding with the corrected hash..."
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue