| title | Builds |
|---|
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.
We will also build using a Dockerfile if found at the project root.
If your project use buildpacks, you specify the start command with a Procfile. A Procfile is in the format of
process: command
When Railway deploys your build, the process listed in the file will be started by running the respective command. Note: Railway can only execute one process per Procfile.
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,
web: npm start
By default Railway will attempt to build your app with the heroku/buildpacks:20 builder, which is based on how Heroku builds apps. However, you can opt-in to build your app with the Paketo buildpacks. Paketo has support for
- NodeJS
- Go
- PHP
- Ruby
- Java
- .NET
- NGINX
- Python
By default, the appropriate buildpacks are selected by inspecting the source files of a project. For more control, a project.toml file can be used to achieve a more custom setup.
Here is an example project.toml file that forces a NodeJS project to use Yarn
instead of NPM.
[[build.buildpacks]]
uri = "heroku/nodejs"
[[build.buildpacks]]
uri = "heroku/nodejs-yarn"