Skip to main content
[ PIER ]

Auto-build from source — zero Dockerfile required

Pier ships Railpack — Railway's open-source builder and successor to Nixpacks. Push code to Git, Pier detects the language, compiles with BuildKit and runs the resulting image. Supports 24+ languages and frameworks out of the box.

24+ languages out of the box

Node, Bun, Deno, Python, Go, Rust, PHP, Java, Ruby, Elixir, plus first-class Vite, Astro and Create React App static sites. Detection is by marker file (package.json, go.mod, Cargo.toml, requirements.txt, …), so a fresh repo usually needs zero configuration.

1.5–4× smaller images than Nixpacks

Railpack is built on BuildKit's parallel graph instead of layered Dockerfiles, so Node images shrink ~38% and Python ~77% versus Nixpacks. Faster pulls, less disk, smaller attack surface.

Successor to Nixpacks by the Railway team

Railway moved to Railpack in March 2025 after running Nixpacks for years on 14M+ user builds. Active development; Nixpacks is in maintenance mode. Pier integrates Railpack directly so you get the same builder that powers Railway production.

Sane defaults, opt-in overrides

Pier auto-detects the start command and exposed port, but you can override them in the Deploy form. For deeper control drop a railpack.json into the repo root — Railpack picks it up automatically without any Pier-side glue.

Deploy a source repository with Auto-build

  1. 01

    Open Pier → New Application → Auto-build (Railpack)

    Pick the new card next to Dockerfile / Docker Image / Docker Compose. The form opens with a Git URL field.

  2. 02

    Paste your Git repository URL and branch

    Public repos work directly; private ones use the same deploy-key or GitHub App flow as the other Git sources.

  3. 03

    (Optional) override start command or build-time env

    Leave both empty for Railpack auto-detection. The form shows hints under each field when this matters.

  4. 04

    Deploy

    Pier clones, hands the working tree to railpack build, then runs the resulting image like any other service — Traefik labels, auto-SSL and a generated subdomain included.

Common questions

Why Railpack and not Nixpacks?

Railpack is the active successor — Railway moved to it in March 2025 after running Nixpacks across 14M+ builds. Nixpacks still works but only gets bug fixes. Railpack produces smaller images and a faster build graph thanks to BuildKit-native LLB.

Does it run on ARM / aarch64?

Yes — both the railpack CLI and the moby/buildkit container ship linux/arm64 builds. install.sh picks the right architecture automatically; the user-facing flow is identical to x86_64.

What are the resource requirements?

At least 4 GB RAM (8 GB if you build Rust projects) and 40+ GB free disk for the BuildKit cache. The smaller VPS sizes that work fine for Dockerfile / Docker Image deploys are not suitable for Auto-build — the UI shows a hard warning when host RAM is below 4 GB.

Can I cap how many builds run at once?

Yes — Settings → Auto-build (Railpack) exposes the parallel-builds slot, or set PIER_RAILPACK_MAX_PARALLEL_BUILDS in the systemd unit. Default is 1, which keeps a 4 GB host safe even when several users deploy at once.

Related

Ready to deploy?

One command installs Pier on any Ubuntu or Debian VPS.

curl -fsSL https://pier.sh/install | sudo bash