Clone this repository to setup a GovCMS SaaS Drupal 8 Site for use on Lagoon
Branch: master
Clone or download
Stuart Rowlands
Stuart Rowlands Merge branch 'feature/GCMSLG-1-xframeoptions' into 'master'
Support override of X-Frame-Options.

See merge request GovCMS/govcms8-scaffold!10
Latest commit 96beff2 Jan 9, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.docker Remove redundant envsubst approach, envplate already in entrypoint. Jan 3, 2019
config Update dev config overrides docs. Nov 12, 2018
files Initial GovCMS8 Scaffold files. Nov 1, 2018
themes Initial commit. Sep 22, 2018
.ahoy.yml Ahoy command for refreshing local db with latest nightly. Dec 7, 2018
.env.default Support override of X-Frame-Options. Jan 3, 2019
.gitignore Initial commit. Sep 22, 2018
.gitlab-ci.yml Alter include file repository namespace and name. Nov 19, 2018
.lagoon.yml Only use mariadb-shared on production branch. Nov 27, 2018
.version.yml Track default version and type for scaffold files. Nov 6, 2018 Override local mariadb image with registry image (if provided). Nov 14, 2018
docker-compose.yml Remove redundant envsubst approach, envplate already in entrypoint. Jan 3, 2019

GovCMS8 Project Scaffolding

Known Issues

  • This repository is still a Work-in-Progress, and may be subject to slight alterations

Requirements and Preliminary Setup

  • Docker - Follow documentation at to configure local development environment.

  • Mac/Linux - Make sure you don't have anything running on port 80 on the host machine (like a web server):

      gem install pygmy
      pygmy up
  • Windows:

      git clone amazeeio-docker-windows; cd amazeeio-docker-windows
      docker-compose up -d; cd ..
  • Ahoy (optional) - The commands are listed in .ahoy.yml all include their docker-compose versions for use on Windows, or on systems without Ahoy.

Project Setup

  1. Checkout project repo and confirm the path is in Docker's file sharing config (

     Mac/Linux: git clone {INSERT_PROJECT_NAME} && cd $_
     Windows:   git clone {INSERT_PROJECT_NAME}; cd {INSERT_PROJECT_NAME}
  2. Build and start the containers:

     Mac/Linux:  ahoy up
     Windows:    docker-compose up -d
  3. Install GovCMS:

     Mac/Linux:  ahoy install
     Windows:    docker-compose exec -T test drush si -y govcms
  4. Login to Drupal:

     Mac/Linux:  ahoy login
     Windows:    docker-compose exec -T test drush uli


Additional commands are listed in .ahoy.yml, or available from the command line ahoy -v


  • You should create your theme(s) in folders under /themes
  • Tests specific to your site can be committed to the /tests folders
  • The files folder is not (currently) committed to GitLab.
  • Do not make changes to docker-compose.yml, lagoon.yml, .gitlab-ci.yml or the Dockerfiles under /.docker - these will result in your project being unable to deploy to GovCMS SaaS

Image inheritance

This project is designed to provision a Drupal 8 project onto GovCMS SaaS, using the GovCMS8 distribution, and has been prepared thus

  1. The vanilla GovCMS8 Distribution is available at Github Source and as Public DockerHub images
  2. Those GovCMS8 images are then customised for Lagoon and GovCMS, and are available at Github Source and as Public DockerHub images
  3. Those GovCMS8lagoon images are then retrieved in this scaffold repository.

Configuration management

GovCMS8 has default configuration management built in. It assumes all configuration is tracked (in config/default).

  1. Export latest configuration to config/default:

     Mac/Linux:  ahoy cex
     Windows:    docker-compose exec -T test drush cex sync
  2. Import any configuration changes from config/default:

     Mac/Linux:  ahoy cim
     Windows:    docker-compose exec -T test drush cim sync
  3. Import development environment configuration overrides:

     Mac/Linux:  ahoy cim dev
     Windows:    docker-compose exec -T test drush cim dev --partial

Note: Configuration overrides are snippets of configuration that may be imported over the base configuration. These (optional) files should exist in config/dev. For example a development project may include a file such as config/dev/shield.settings.yml which provides Shield authentication configuration that would only apply to a development environment, not production.