Railway uses Cloudnative Buildpacks to attempt to build and deploy with zero configuration. Currently we support the following languages out of the box
If you have a language that you want us to support, please don't hesitate to reach out and let us know.
The NodeJS buildpack detects
if your build is Node by looking for a
package.json file. If found, the build
will execute the following NPM (or Yarn) commands.
The Python buildpack
detects if your build is Python by looking for a
requirements.txt file. If
found, dependencies will be installed using
The default Python version is
The Go buildpack will detect your build is Go if you are using go modules, dep, govendor, glide, GB, or Godep. If detected, dependencies will be installed and the source compiled.
The Ruby buildpack detects if
your build is Ruby by looking for
Gemfile.lock files. If found,
dependencies will be installed with
The Java buildpack detects if your
build is Java by looking for a
pom.xml file. If found, Maven will download all
dependencies and build the project.
Railway supports Procfiles, a file that can be included in the project to specify which command to run when the deployment starts.
A Procfile is in the format of
When Railway deploys your build, all process will be started by running their respective command.
Note: some buildpacks specify a default start command
HTTP servers should use the
web process type. This process should listen on
the PORT environment variable and will receive
HTTP traffic. For example,
We will look for and use a
Dockerfile at the project root if it exists.
If you need to use the environment variables that Railway injects at build time, you must specify them in the Dockerfile with
Edit this file on GitHub