Changing your SSG CLI options

Last modified: March 13th, 2023

Working with a specific static site generator?
Customize CloudCannon's documentation to suit your SSG.

Great! We'll show you documentation relevant to .
You can change this any time using the dropdown in the navigation bar.

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:

  1. Go to the Site Settings / Build section
  2. Change details for one or more options
  3. Click Update Configuration

See in-depth details for configuring Environments and Optimizations

Build Configuration interface

Using Environment Variables#

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:

  1. Go to the Site Settings / Configuration section
  2. Create/edit your environment key and value under Environment Variables
  3. Click Update Build Details

specific doc

CloudCannon defaults to production. Running Jekyll locally defaults to development.

shell
copied
$ 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:

_config.yml
copied
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/"
index.html
copied
---
---

<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>

specific doc

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:

shell
copied
$ 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.

specific doc

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:

shell
copied
$ ELEVENTY_ENV=production npx @11ty/eleventy

specific doc

CloudCannon does not set default environment variables for other SSGs.

To change an environment variable locally, set it before running your build command:

shell
copied
$ MY_ENV_VAR=hello <build command>

Related Articles

Open in a new tab