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:
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.
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:
web: my-app-on-runway --some-arg=some-value --server --foo --bar
The following process types are supported:
web: continuously running, needs to listen on a port (except with runway route off)init: runs before the web process is startedworker: continuously running, does not receive traffic on a portAn example Procfile containing all process types:
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.
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
[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.
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.