Deploy methods

Seven ways to build and deploy.

Railyard picks the build path your repo needs. Everything after the build, from release to rollback, works the same way for all of them.

image:// dockerfile railpack cnb nixpacks build server Procfile image release health check live
Every build method ends in an image. From there, one line to production.
MethodSourceWhat runsStatus
image:// A registry tag Pull and run. No clone, no build. shipped
dockerfile A repo with a Dockerfile Clone, docker build, run. shipped
railpack A repo, no Dockerfile (the default) Railpack detects the language and builds an image. No config. shipped
cnb A repo, no Dockerfile pack build against heroku/builder:24, then run. shipped
nixpacks A repo, no Dockerfile Nixpacks writes a Dockerfile, then it builds normally. shipped
build server Any repo method Build once on a dedicated server, then run anywhere in your fleet. shipped
Procfile A repo with a Procfile Declares web and worker processes plus the release hook. shipped

One pipeline

One pipeline for every build method.

Image, Dockerfile, buildpacks, Nixpacks or Procfile: every path produces an image. From there the deploy is the same, including a quick redeploy of the same commit.

  • Config vars exported into the build
  • Release hook runs before traffic moves
  • Readiness probe, then a zero-downtime swap

$ git push railyard main

Enumerating objects: 12, done.

remote: Building storefront (Dockerfile)

remote: #7 RUN bundle install

remote: #9 RUN bin/rails assets:precompile

remote: Release: bin/rails db:migrate

remote: Health check passed (GET /up 200)

remote: Live, traffic moved to the new release

a1b2c3d..e4f5a6b main -> main

Every build

The same build features, every method.

Config vars at build time

Exported into the build the way most platforms do it, so an asset precompile that boots the app finds its database URL.

Private repos and submodules

Connect GitHub once; private repositories and their submodules clone automatically, scoped to the repos you connect.

Build args and secrets

Pass build arguments and secrets into the build without baking them into the image.

Persistent volumes

Named volumes at a path you choose, never wiped by a redeploy.

Addons, wired in

Postgres with pgvector, MySQL, Redis, Memcached and object storage, with connection strings injected.

Release hooks

Migrations run before the new version takes traffic; a failure stops the deploy.

Static sites and functions

A static build is served with automatic HTTPS; functions are a few lines of TypeScript, edited on the canvas.

Templates and a Deploy button

Around 200 one-click templates, and a README badge that opens a prefilled deploy.

Proven on commercial software: Campfire, 37signals' paid Rails 8 product, runs through both the Dockerfile path and buildpacks.

Deploy your first app on a server you own.

Attach a machine with a host, a user and an SSH key, or let Railyard create one in your cloud account. It installs the rest and watches it come online.

Free plan, no card, and 14 days of Pro for every new team. One flat price per team.