2543f736d6 feat: use mise node version when installing node alongside bun (#341)
* Use mise to install Node.js instead of apt packages

When Bun is installed but Node.js is not required in the final image,
the provider now uses mise to install Node.js instead of installing
it via apt packages. This provides better version management and
consistency with the rest of the mise-based tooling.

Key changes:
- Install Node.js via mise with default version "latest"
- Check for version specifications in NODE_VERSION env var, .nvmrc,
  and .node-version files
- Support mise.toml and .tool-versions configuration files
- Remove apt package installation of nodejs in this scenario

This ensures Node.js is available for build steps (e.g., node-gyp for
native modules) while respecting user-specified versions and providing
consistent version management across all tools.

* Simplify Node.js version detection for Bun projects

When Node.js needs to be installed for Bun projects (for build tools
like node-gyp), keep the version detection simple:

- Default to "latest"
- Let UseMiseVersions handle mise.toml and .tool-versions

Added a TODO to implement full version detection logic in the future
(NODE_VERSION env var, package.json engines, .nvmrc, .node-version).

* Only check mise versions for packages that are installed

Instead of unconditionally checking mise versions for both node and bun,
only add packages to the UseMiseVersions check if they were actually
added to the mise step. This is more efficient and makes the intent
clearer.

* Track mise packages as they're added instead of re-checking conditions

Build a list of mise packages as they're added to miseStep, then use
that list for UseMiseVersions. This avoids duplicating the conditional
logic and makes it clear which packages we're checking versions for.

* test: snapshot update

---------

Co-authored-by: Hanzo Dev <[email protected]>
2025-11-12 16:46:34 -07:00
2025-10-22 12:07:18 -06:00
2025-06-12 02:07:58 -04:00
2025-03-24 09:49:31 -07:00
2025-02-10 13:26:33 -07:00
2025-02-06 21:07:15 -05:00

Railpack

CI Run Tests

Railpack is a tool for building images from source code with minimal configuration. It is the successor to Nixpacks and incorporates many of the learnings from running Nixpacks in production at Railway for several years.

Getting Started

# Install mise & railpack
curl -sSL https://mise.run | sh
mise install ubi:railwayapp/railpack@latest

# start BuildKit container & let railpack know about it
docker run --rm --privileged -d --name buildkit moby/buildkit
export BUILDKIT_HOST='docker-container://buildkit'

# create a Next.js app
npm create next-app@latest my-app
cd my-app

# build and run the app!
railpack build .
docker run -p 3000:3000 -it my-app

Railpack automatically detects the project type (next, in this case, but many languages & frameworks are supported!) and generates an optimized container image.

Note: The above steps are for running Railpack locally to experiment and test. If you deploy on Railway, Railpack runs automatically when you push changes to your repository.

Documentation

Full documentation for both operators (platforms, like Railway) and users (developers using Railpack to build their applications) is available at railpack.com.

Contributing

Railpack is open source and open to contributions. See the CONTRIBUTING.md file for more information.

S
Description
Zero-config BuildKit gateway frontend for the Hanzo build fabric
Readme MIT
24 MiB
Languages
Go 90.8%
Shell 6.5%
Python 1.4%
Dockerfile 0.7%
TypeScript 0.6%