Skip to content
Gutenberg live branch preview provisioning service
JavaScript CSS HTML Dockerfile Shell PHP
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Gutenberg Run is a service which provides temporary live preview sites for Gutenberg pull requests.


Docker (with Docker Compose) is the only requirement to run Gutenberg Run locally.

After cloning the repository, run docker-compose up in the cloned directory.

git clone
docker-compose up

By default, Gutenberg Run assumes a development environment.

Since Gutenberg Run provisions new sites using randomized subdomains, you should configure wildcard DNS handling to develop locally.

If you're developing using macOS, dnsmasq is ideal for this. With Homebrew installed, you can follow guidance from this article, where the steps for this project should look something like:

brew install dnsmasq # Install dnsmasq
echo "address=/" >> /usr/local/etc/dnsmasq.conf # Configure dnsmasq to redirect subdomains to localhost
sudo brew services start dnsmasq # Start dnsmasq process
sudo mkdir -p /etc/resolver # Create resolvers directory for macOS DNS query overrides
sudo sh -c 'echo "nameserver" > /etc/resolver/' # Configure DNS query behavior


The following options exist, configured by the presence of environment variables.

  • NODE_ENV: Application running mode, one of development or production (default development)
  • BASE_HOSTNAME: The base hostname for containers (default
  • MYSQL_ROOT_PASSWORD: Password to use as root for the MySQL database (default password)
  • CONTAINER_TTL_SECONDS: Container lifetime, in seconds (default 86400)
  • SENTRY_DSN: Sentry data source name, when using Sentry for error logging
  • BUILD_TTL_DAYS: The length in time to keep built archives after last provision, in days (default 30)

You can assign values to these by creating a .env file at the root of the project directory, or as a persistent user or system environment variable.


If you have followed the installation instructions using Git, you can pull the latest changes from the working directory:

git pull

Regardless whether there are containers actively running, you will likely need to rebuild the images. You can (re)start the containers with rebuild using the following command:

docker-compose up -d --build

If you know a specific image(s) to rebuild, simply append it to the previous command:

docker-compose up -d --build cleaner web


Copyright 2019 Andrew Duthie

Released under the MIT License.

You can’t perform that action at this time.