Skip to content
rise.toml Schema

Project Configuration

Rise projects are configured through a rise.toml file in your project directory and through CLI flags.

The rise.toml file defines your project metadata and build settings. Both rise.toml and .rise.toml are supported — if both exist, rise.toml takes precedence (with a warning).

A JSON Schema is available for editor auto-completion and validation. To enable it in editors that support the Taplo TOML language server, add this comment as the first line of your rise.toml:

#:schema https://rise.example.com/docs/schemas/rise-toml-v1.schema.json
[project]
name = "my-app"
[project.env]
LOG_LEVEL = "info"
FieldTypeDescription
nameStringProject name (used for URLs, registry paths, and as default for -p flag)
envObjectPlain-text environment variables applied as deployment overrides (source: toml)
[build]
backend = "docker"
dockerfile = "Dockerfile.prod"
args = ["NODE_ENV=production", "BUILD_VERSION"]
FieldTypeDescription
backendStringBuild backend: docker, docker:build, docker:buildx, buildctl, docker:buildctl, pack, railpack, railpack:buildctl
dockerfileStringPath to Dockerfile, relative to rise.toml (default: Dockerfile or Containerfile)
build_contextStringDefault build context path for Docker builds, relative to rise.toml
build_contextsObjectNamed build contexts for multi-stage Docker builds (format: { "name" = "path" })
builderStringBuildpack builder image (pack backend only)
buildpacksArrayBuildpacks to use (pack backend only)
argsArrayBuild-time arguments (format: KEY=VALUE or KEY to read from shell). Alias: env for backward compat.
container_cliStringContainer CLI: docker or podman
managed_buildkitBooleanEnable/disable managed BuildKit daemon (auto-enables when SSL_CERT_FILE is set)
no_cacheBooleanDisable build cache

Define per-environment settings. Set default = true on one environment to auto-select it when deploying without --environment.

[environments.staging]
default = true
env.DATABASE_URL = "postgres://staging-db/mydb"
env.LOG_LEVEL = "debug"
[environments.production]
env.DATABASE_URL = "postgres://prod-db/mydb"
FieldTypeDescription
defaultBooleanIf true, this environment is used when --environment is not specified. At most one environment may be default.
envObjectPlain-text environment variables scoped to this environment (applied as deployment overrides)

See Environment Variables for details.

[project]
name = "my-app"
[project.env]
LOG_LEVEL = "info"
APP_MODE = "production"
[build]
backend = "pack"
builder = "heroku/builder:24"
buildpacks = ["heroku/nodejs", "heroku/procfile"]
args = ["BP_NODE_VERSION=20"]
[environments.staging]
default = true
env.DATABASE_URL = "postgres://staging-db/mydb"
env.LOG_LEVEL = "debug"
[environments.production]
env.DATABASE_URL = "postgres://prod-db/mydb"
Terminal window
# Create project on backend and write rise.toml
rise project create my-app
# Create project on backend only (no rise.toml written)
rise project create my-app --no-rise-toml
# If rise.toml already exists, the project name is read from it
rise project create

If a rise.toml already exists, it is never overwritten — the project is created on the backend using the name from the file.

rise project show, update, and delete take an optional project name. When omitted, the name is read from the [project] section of rise.toml (or .rise.toml) in the directory given by --path (defaults to the current directory):

Terminal window
# Both work when rise.toml has [project] name = "my-app"
rise project show my-app
rise project show

Settings are resolved in this order (highest to lowest priority):

  1. CLI flags (e.g., --backend pack)
  2. Project config file (rise.toml / .rise.toml)
  3. Environment variables (e.g., RISE_CONTAINER_CLI, RISE_MANAGED_BUILDKIT)
  4. Global config (~/.config/rise/config.json)
  5. Auto-detection / defaults

For array fields (buildpacks, args), CLI values are appended to config file values rather than replacing them.

The CLI stores global configuration in ~/.config/rise/config.json, including:

  • Authentication token (set by rise login)
  • Backend URL
  • Container CLI preference (docker or podman)
  • Managed BuildKit setting

This file is created automatically on first rise login.

If you’re operating a Rise deployment, a JSON Schema for backend configuration (rise.yaml) is available at backend-settings.schema.json. See the Operator Configuration guide for details.