Repository navigation
Run on Bun: bun install, bun --bun next, standalone server under Bun - #263
Merged
Merged
Conversation
Moves qrypt.chat off Node + pnpm onto Bun, following the fleet recipe (phonenumbers.bot pilot; hqtui and outreachgraph run Next standalone the same way). - Package manager: bun.lock migrated from pnpm-lock.yaml, so every resolved version is unchanged (next 15.5.19, react 19.2.7, supabase-js 2.74.0, ...). Bun's migration leaves the github: dependency (@profullstack/autoblog) with an empty cache key, which fails install; that one entry carries the key a fresh resolve writes. pnpm's onlyBuiltDependencies becomes trustedDependencies; pnpm-workspace.yaml, .nvmrc and engines.node go. - Runtime: scripts use `bun --bun next`; next.config builds standalone and names community-plugins/ for /api/plugins, which reads it from process.cwd(). - Image: oven/bun:1.4.0-slim (Debian trixie) with tor + tini, the same entrypoint now starting `bun server.js`. Port 8080, the build args dev2's compose passes, the onion volume and root (Tor needs it at startup) unchanged. Build-arg secrets the compose never passed are no longer declared. - Tests: vitest now runs on the Bun runtime (560/560 pass); CI installs with bun, runs them, builds and boots the standalone server under Bun. npm audit becomes bun audit. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
ThreatCrush Security Scan13 finding(s) MEDIUM: 9 | LOW: 4
Snippets are redacted; ThreatCrush never prints matched credential material. |
Contributor
Author
|
The red 🤖 Generated with Claude Code |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of the fleet Node → Bun migration (recipe from the phonenumbers.bot pilot). qrypt.chat moves off Node + pnpm onto Bun as package manager, runtime and test runtime.
Changes
bun.lockis migrated frompnpm-lock.yaml, so every resolved version is unchanged (next 15.5.19, react 19.2.7, supabase-js 2.74.0, sharp 0.34.4, ...). Bun's migration writes thegithub:dependency@profullstack/autoblogwith an empty cache key, and a frozen install then fails. That one entry now carries the key a fresh resolve writes. pnpm'sonlyBuiltDependenciesbecomestrustedDependencies.pnpm-workspace.yaml,.nvmrcandengines.nodeare removed.bun --bun next.next.config.jsbuilds standalone and namescommunity-plugins/in the tracing includes, because/api/pluginsreads that folder fromprocess.cwd()at request time.oven/bun:1.4.0-slim(Debian trixie) with tor and tini. The sameentrypoint.shnow startsbun server.jsinstead ofpnpm next start.NEXT_PUBLIC_*/PUBLIC_*/VITE_*build args dev2's compose passes, the onion-key volume, and root at startup (Tor needs it).ARGs that the compose never passed are no longer declared.bun --bun vitest run); all 560 tests pass.testworkflow installs with Bun, runs them, then builds and boots the standalone server under Bun.npm auditbecomesbun audit.Verified locally
I built the image from
git archive HEADthrough a compose file shaped like dev2's (same build args, env file, port, memory limit and tor volume) and compared it with live https://qrypt.chat.docker topshowsbun server.jsbeside tor./,/auth,/warrant-canaryand/blogreturn 200 with the same title and sizes; the only differences are a few bytes of build id./blog/rss.xml(1.65 MB, from Supabase) is byte-identical./robots.txt,/manifest.json,/llms.txtand/api/plugins(which reads files from disk) are byte-identical./sitemap.xmldiffers only inlastmod./blogand the RSS feed are ISR (revalidate = 60). They prerender empty at build time, because the service key is runtime-only, exactly as on Node, and fill on the first revalidation.Next stays on 15.5.x: this PR swaps the runtime only.
🤖 Generated with Claude Code