There was an implementation here: nine commits, four Go files, its own detect.go and recipe.go. It was a second answer to a question railpack has been answering for 1,077 commits — and the half we would have had to write and then keep right is the long tail. Every language, every package manager, every version file, every lockfile dialect. That tail is the entire product, and writing it again is how you get a builder that handles the three languages you tested and silently mis-detects the fourth. Upstream is MIT and stays MIT. The code is theirs, the fork is ours, and relicensing someone's MIT work under a house licence is a claim about provenance that is not true. The nine commits are kept as the `pre-fork` branch, not deleted. `upstream` is a remote, so this stays mergeable. Local changes should be the ones that cannot go upstream — our registry, our fabric, our brand. A new language or a fixed detector belongs in a PR to railpack, maintained by more people than us. Co-authored-by: Hanzo Dev <[email protected]>
build subcommand (#595)
build subcommand (#595)
Railpack
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 github: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.js, 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.