Repository navigation
build(web): run diskpush.com under Bun on dev2 - #51
Merged
Merged
Conversation
The dev2 image was the nixpacks Ubuntu+Nix image running `pnpm --filter @diskpush/web start` (next start) on Node. It is now hand-written at the same path compose builds (.nixpacks/Dockerfile): the build stage is unchanged in substance (Node 24 + pnpm 11.18.0, web-only install from pnpm-lock.yaml, git present for the sitemap's lastmod dates), and the runtime is Next's standalone server under oven/bun:1.4.0-slim as uid 1000, with no Node in the final image. The monorepo stays on pnpm: the CLI and desktop releases are built and published with it, so no lockfile or packageManager change. - next.config: output standalone, tracing root at the repo root so the docs/ and scripts/install.sh includes land at the ../../ path the pages read from. - Remove nixpacks.toml, .nixpacks/build.sh and the .nix pin. - .dockerignore (keeps .git; the sitemap needs it). - CI: a web-bun job builds the site, boots it under Bun and checks the pages, the installer, a 404 and the crawl gateway's 402. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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 to Bun migration. Only the runtime of the dev2 site container changes; the CLI, desktop app and their pnpm release are untouched.
Before:
.nixpacks/Dockerfilewas the generated nixpacks Ubuntu+Nix image runningpnpm --filter @diskpush/web start(next starton Node 24), 1.87 GB.After: a hand-written image at the same path dev2's compose builds.
node:24-slim+ pnpm 11.18.0,pnpm install --frozen-lockfile --filter @diskpush/web...andpnpm --filter @diskpush/web build, same as before. git is installed becauseapp/sitemap.tsreads lastmod dates fromgit log, and.dockerignorekeeps.gitfor the same reason.oven/bun:1.4.0-slimas uid 1000,CMD ["bun", "apps/web/server.js"], with a HEALTHCHECK. No Node in the final image. 332 MB.next.config.mjs:output: 'standalone', withoutputFileTracingRootat the repo root so the existingdocs/**/*.mdandscripts/install.shincludes land at the../../path thatlib/docs.tsand/install.shread from.nixpacks.toml,.nixpacks/build.shand the.nixpin.web-bunjob builds the site, boots it under Bun and checks the pages, the installer, a 404 and the crawl gateway's 402.The monorepo stays on pnpm (no lockfile or
packageManagerchange), because the CLI and desktop releases are built and published with it.Verified from the commit (clean clone with the
obits stripped, the way dev2 checks out, built through a compose file shaped like dev2's with the real app.env): 32 URLs compared against the live site. Statuses all match. Static assets,/install.sh,/llms.txt,/robots.txt,/sitemap.xml(same git dates) and the security/openaccess files are byte-identical. Page text is identical, except/downloadand/api/releases/latest, where live shows no release because dev2's IP has spent GitHub's 60/h unauthenticated limit (already the case, see below). GPTBot gets 402. Health reachedhealthy,docker stoptook 0.8 s, about 93 MiB / 15 pids at idle, logs clean.Pre-existing, not changed here: on dev2
api.github.com/rate_limitshowscoreremaining 0, so diskpush.com/download says "Not yet published" while v0.12.5 is out. app.env has noGITHUB_TOKEN, thoughlib/releases.tssupports one.🤖 Generated with Claude Code