Runway
Runway is built and operated in the EU!

Config Files

Generally speaking, Runway works without any specific configuration in your repository. This is just a reference for how it handles some special files, if they are encountered:

Dockerfile

If you have a Dockerfile in your repo, Runway will use that and try to build and run it as your app. See our Docker example for details.

In that case, Procfiles and project.tomls are not supported.

Procfile

The Procfile controls the processes of your app. By default, your app will start as one continuously-running process that we call web, and will be started without command-line arguments. For that, you don’t need a Procfile at all.

To specify command-line arguments, put a Procfile at the root of your repository:

Procfile
web: my-app-on-runway --some-arg=some-value --server --foo --bar

The following process types are supported:

An example Procfile containing all process types:

Procfile
web: my-app-on-runway --server
init: my-app-on-runway --auto-migrate-and-exit
worker: my-app-on-runway --worker --processes=4

For apps that were created with persistence enabled, only the web process has access to the /data volume.

Your app must have at least a web process - init and worker are optional additions.

project.toml

The project.toml can be used to set build-time environment variables, much like runway app config set.

The actual variables are specific to the language(s) used in your repo, an example might be

project.toml
[build]
  [[build.env]]
    name = "BP_GO_TARGETS"
    value = "./cmd/server"

which would be equivalent to runway app config set BP_GO_TARGETS=./cmd/server.

For further details, see our docs on how buildpacks use environment variables.

git remote

This one only applies to your working copy of the repo - Runway uses a git-remote called runway to store the connection used for runway app deploy. That is all automatically set up when you run runway app create.

You can (re-)create this from inside a working copy of your repo with runway gitremote -a my-app-on-runway.

Most runway commands also work without that remote (and outside of the repository), but then you’ll have to give the app name on the command line. runway app deploy however, needs the remote to be in place.