Most static site generators offer a number of configuration options for use on the command line. Configure these and other CloudCannon-specific build options per site.
To change a command line build option:
See in-depth details for configuring Environments and Optimizations
Environments allow you to use different values in your website depending on where it is deployed. For example, you could use a different CDN for your development, staging and production sites.
To change the environment variables for your site:
Jekyll content
CloudCannon defaults to production. Running Jekyll locally defaults to development.
$ JEKYLL_ENV=production bundle exec jekyll serve
Jekyll exposes the environment with jekyll.environment
. You can use this to create separate configurations.
Here’s a short example using variables from _config.yml
:
development:
asset_url: "http://localhost:1337/"
app_url: "http://localhost:3000/"
staging:
asset_url: "https://staging.example.org/assets/"
app_url: "https://staging.example.org/"
production:
asset_url: "https://cdn.example.org/"
app_url: "https://app.example.org/"
---
---
<!DOCTYPE html>
<html>
<head>
<title>Environment Test</title>
</head>
<body>
<p>Environment: {{ jekyll.environment }}</p>
<p>Asset URL: {{ site[jekyll.environment].asset_url }}</p>
<p>App URL: {{ site[jekyll.environment].app_url }}</p>
<p>Development Asset URL: {{ site.development.asset_url }}</p>
<p>Production Asset URL: {{ site.production.asset_url }}</p>
<p>Staging Asset URL: {{ site.staging.asset_url }}</p>
<p>Development App URL: {{ site.development.app_url }}</p>
<p>Staging App URL: {{ site.staging.app_url }}</p>
<p>Production App URL: {{ site.production.app_url }}</p>
</body>
</html>
Hugo content
CloudCannon defaults to production. Running hugo
locally defaults to production. Running hugo server
locally defaults to development.
To change the environment locally, set it before running Hugo:
$ HUGO_ENV=production hugo
You can set the Hugo environment using the —-environment
flag in the command line. Learn more about build configuration.
Hugo exposes the environment with hugo.Environment
.
Using a configuration directory allows you to create separate configurations for each environment. See the example in the Hugo documentation.
Eleventy content
CloudCannon has no default. You should set your environment variables everywhere you need them before building. The Eleventy documentation mentions ELEVENTY_ENV
as a convention.
To change the environment locally, set it before running Eleventy:
$ ELEVENTY_ENV=production npx @11ty/eleventy
Other content
CloudCannon does not set default environment variables for other SSGs.
To change an environment variable locally, set it before running your build command:
$ MY_ENV_VAR=hello <build command>