Engines define, prepare, and build runtime environments for web and worker components. They consist of a handful of scripts that install necessary runtimes, run dependency managers (if applicable), expose configuration options, and a few other things.
Finding an Engine
Nanobox provides engines for many different languages and technologies. You can view the official Nanobox Engines on Github.
If you can't find an engine to suit your needs, you can create your own. In the future, there will be a registry where you can search for and publish engines.
Using an Engine
Engines are specified in the
run.config section of your
boxfile.yml and define the runtime environment and configuration for your web and worker components.
Specifying an Engine in Your boxfile.yml
run.config: engine: ruby
Note: We assume you're using official Nanobox engines stored on Github. If you are using your own engine stored in Github, use the following pattern:
run.config: engine: github-username/repo-name
If hosted elsewhere, use the full git clone url.
Setting Engine Configuration Options
Engines often include configuration options that allow you to customize your environment to your specific needs. Each engine should include documentation for available config options. These options are set in the
env > config section of your
Setting Engine Config Options in Your boxfile.yml
run.config: engine: ruby config: runtime: ruby-2.2
You're free to create your own engine if you can't find one that suits your needs. The Creating a Custom Engine docs cover the process in detail.
Reach out to email@example.com and we'll try to help.