Skip to content

Mise Configuration

Railpack is built on top of Mise. You can use the various mise configuration options to customize the Railpack-generated image. For instance, you can set environment variables, allow precompiled ruby versions, and add additional utilities like jq to your image all through the mise configuration toml.

  • We use the latest mise version. There is automated tooling setup to ensure the mise version on the latest Railpack version is no more than a couple weeks out of date.
  • Railpack assumes the default Mise configuration options. For instance, we won’t opt-in users to precompiled ruby ahead of when mise has scheduled it to become default.
  • Railpack generates global mise configuration based on analyizing the application source code. However, this global configuration is set in /etc/mise/config.toml so it can easily be overwritten in your application.

Railpack sets the following mise settings by default in the generated /etc/mise/config.toml. These can be overridden in your own mise.toml.

SettingValueReason
paranoidtrueEnforces HTTPS and stricter security validation
trusted_config_paths["/app"]Trusts app config files to avoid warnings during build
idiomatic_version_file_enable_tools(language list)Auto-reads version files like .node-version, .python-version, etc.
install_before"14d"Only resolves tool versions released more than 14 days ago, avoiding newly-released versions that may be broken
node.verifyfalseSkips asset signature verification for Node, since recently released versions may not yet have a public key

Use a mise configuration file or environment variables to customize mise in the Railpack-generated container. Configuration files are generally a better idea.

Railpack automatically detects mise configuration files and passes them into the build. This includes:

  • Config files: mise.toml, .mise.toml, mise/config.toml, .mise/config.toml, .config/mise.toml, .config/mise/config.toml, .tool-versions
  • Environment-specific configs: mise.*.toml, .mise.*.toml, .config/mise/conf.d/*.toml
  • Idiomatic version files: .ruby-version, .python-version, .python-versions, .node-version, .nvmrc, .go-version, .java-version, .sdkmanrc, .bun-version, .yvmrc
  • Lock files: mise.lock files co-located with any detected *.toml config

To opt-in to non-default features like precompiled Ruby, add a mise.toml to your repository:

[tools]
ruby = "3"
[settings]
ruby.compile = false