Acquia Lightning Blog: Creating a new instance of an existing site

Planet Drupal - 3 October 2017 - 6:43am
Creating a new instance of an existing site Adam Balsam Tue, 10/03/2017 - 09:43

Throughout the development and support lifecycle of a site, it is often necessary to install a fresh version of your application in a new environment with all of the existing site's configuration. For example, a new developer might need to set up their environment for the first time or your CI system might want a fresh install for tests. Basically:

As a user I want to be able to install Drupal from a package of configuration that is maintained in git.

Existing solution (pre Drupal 8.4.x): Drush --config-dir option

Installing a site from existing config is not as easy as going through the install process and then importing config though because the fresh install will have a different site UUID than the existing app and Drupal won't allow you to import configuration on sites with different UUIDs. To work around this, Drush introduced the --config-dir option to the site-install command which imported the configuration during install and magically worked around the UUID issue.

That workaround did have other issues including the fact that base fields defined in module or profile config would end up with conflicting UUIDs. But critically, Drush 9 only supports the --config-dir option when installing the Minimal profile - and Drush 8 isn't compatible with Drupal 8.4.x. So we need a new solution.

Investigated approaches

The Drush maintainers have suggested using the Config Installer profile. We tested it and works great, but:

  1. It's undocumented.
  2. It won't work if you're using Lightning as a Base Profile, which we recommend.

In theory, you could also manually set your site's UUID after install and then import your config, but this is sloppy and is an abuse of UUIDs. It also wouldn't solve the problems with base fields ending up with conflicting UUIDs.

Solution (Drupal 8.4.x): Another core patch

Enter the following issue: [#2788777] Allow a profile to be installed from existing config. The patch in #91 allows you to add a simple boolean to your sub-profile's info file that will automatically install your site with config from the config sync directory defined in your settings.php file. The end result is that no matter how you install your site (via Drush, the UI, or Drupal Console), your existing config will also be imported.

The only problem is that the scope of the issue is still being debated. As a result, Lightning can't bring the patch in just yet. But we will as soon as the issue is RTBC or we get further clarity about the scope. In the meantime, you can bring the patch in yourself.



  • Your site's config sync directory is located in a VCS tracked directory (e.g. "../config/sync").
  • You use a sub-profile.
  1. Apply the patch #91 from issue #2788777 to drupal/core, in your root composer.json file: "patches": { "drupal/core": { "Allow a profile to be installed from existing config": "" } }
  2. Add the boolean flag to your sub-profile's info file config_sync: true


The result will be that each time you install your site, all of your existing configuration will also be imported.

If you are not using a sub-profile, you can simply use the Config Installer profile mentioned above.

  1. Add the Config Installer profile to your codebase
  2. During installation select Config Installer as the profile
  3. Point Config Installer to your exported config directory (the resulting installation profile will still be Lightning even though you selected Config Installer)

If you're using BLT in your project (recommended), a lot of the configuration setup is already handled for you. See BLT's notes about updating to Drupal 8.4.x.

Categories: Drupal

Takeaways from showing my game for the first time at a festival - by Dan Williams Blogs - 3 October 2017 - 6:35am
In this post I'll go over some tips and observations I found from showing my first commercial game Gravestuck for the first time at the Boston Festival of Indie Games.
Categories: Game Theory & Design

[User Interaction]: Press “O” to open: the running joke behind my un-streamlined controls - by Constantin Bacioiu Blogs - 3 October 2017 - 6:35am
This post covers what I learned after demoing a game that did not offer conventional keyboard controls. 40% of my players never made it past the main menu because the controls were not standard.
Categories: Game Theory & Design

Dissecting Design -- Cuphead - by Josh Bycer Blogs - 3 October 2017 - 6:34am
Each week, Josh of Game-Wisdom examines one game for his Dissecting Design series. This week, we're talking Cuphead.
Categories: Game Theory & Design

Game Design Inspirations: Heat Signature’s Galactic Zoom and Teleporting Items - by Paul Gadi Blogs - 3 October 2017 - 6:29am
Groundbreaking games of recent years have taken the rogue-like genre and evolved them into something new. Heat Signature is another great game to add to that list, with its amazing Galactic Zoom mechanic.
Categories: Game Theory & Design

100 Days of VR: Day 18 Creating Weapon Ammo in Unity - by Josh Chang Blogs - 3 October 2017 - 6:29am
2 days ago, on Day 16, we created a reload system and just yesterday we started shooting lasers at enemies, today, we're going to continue and create a reload system and some UI to display our reload.
Categories: Game Theory & Design

From Zero to Bazoo on the Developer’s Side - by Julien Jorge Blogs - 3 October 2017 - 6:27am
Developing Bazoo was quite an adventure. I've been a developer on the project since more than three years now and I'll tell you everything we did, everything we tried and every stuff we trashed, from the early drafts to the final product.
Categories: Game Theory & Design

Amazee Labs: Recap of #DrupalConEUR Vienna

Planet Drupal - 3 October 2017 - 6:11am
Recap of #DrupalConEUR Vienna

Fully recharged and back in Zurich, let’s recap what happened at DrupalCon Vienna; a week filled with exciting sessions, motivating BoFs (Birds of a Feather) and entertaining social evenings.

Daniel Lemon Tue, 10/03/2017 - 15:11

Of all the sessions, keynotes, BoFs, and social events that I attended during the week, the most notable and inspiring was Joe Shindelar’s keynote “Everyone Has Something to Share.” It was a very fun, motivating, and inspirational talk that led the crowd through Joe's personal experience of sharing and how he’s learned a lot about himself and the community. I highly recommend watching the captivating video of the talk.

Another session that I highly enjoyed was “Motion Design - Improving UX with animations” by Sarah Geissberger and Lisa Thesen. Watching the DrupalCon Vienna logo morph into past DrupalCon logos while learning about 3 of the 10 principles of motion design felt incredibly good.

It was a highly informative talk with lots of fun animations teaching the crowd that motion design should enhance the user's experience and add meaning to a design. Sarah and Lisa reminded us that it’s a powerful design tool that every designer should pay attention to.

Saša Nikolič and Tadej Baša gave their immense talk “Everybody cheer! Here comes Media!” to a completely full room. They took the crowd through the history of media in core, through the pain points every developer and site builder went through with the numerous media modules that required configuration and setup, to what we have now in Drupal 8.

Aside from the sessions, I also highly enjoyed the Drupal Cinema Zapping, a 15-20 minute video showcasing the creative side to the Drupal community in a collage of extremely entertaining video clips, Oida!

As we’ve all heard, unfortunately, the Drupal Association won’t be hosting DrupalCon Europe 2018, however over the course of the past week, in different sessions and BoFs, the community came together and decided to create Drupal Europe 2018. There will be a post-DrupalCon Virtual Meeting on Thursday October 12, at 16:00 CEST - be sure to join the webinar.


For more photos, check out the DrupalCon Vienna Flickr album pool or the Amazee Labs DrupalCon Vienna Flickr collection.

I look forward to meeting you at a future event in Europe, perhaps in Belgrade for Drupal Iron Camp.

Categories: Drupal

Corvus Belli Germany Unification Day Giveaway Happening Now

Tabletop Gaming News - 3 October 2017 - 6:00am
It’s German Unity Day! Being half-German, myself, I’m half-excited about it. What could make me whole-excited? Getting a free mini from Corvus Belli. As is their tradition, it’s a country’s National Day, so they’ve got a giveaway. Put your name in the hat and you could get yourself a figure for free. From the announcement […]
Categories: Game Theory & Design

Entity Reference Guards

New Drupal Modules - 3 October 2017 - 5:52am
Categories: Drupal

DrupalEasy: DrupalEasy Podcast 197 - - BADCamp with AmyJune Hineline

Planet Drupal - 3 October 2017 - 5:50am

Direct .mp3 file download.

AmyJune Hineline (volkswagenchick), Community Lead for Hook 42, joins Mike Anello to talk about BADCamp 2017 and her fantastic job.

  • BADCamp - October 18-21, 2017 - University of California at Berkeley.
DrupalEasy News Sponsors Follow us on Twitter Subscribe

Subscribe to our podcast on iTunes, Google Play or Miro. Listen to our podcast on Stitcher.

If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or corrections. If you'd rather just send us an email, please use our contact page.

Categories: Drupal

Configuration Export

New Drupal Modules - 3 October 2017 - 1:55am

Allows to export configurations to different data storages like git, S3

Categories: Drupal

Valuebound: Managing Drupal 8 applications remotely using Drush aliases

Planet Drupal - 3 October 2017 - 1:33am

Have you ever thought that your business needs to make sure that your web application has a quick release in order to sustain the long race. This sort of has become easy to manage by continuous development & continuous integration using Drush & Drush Aliases. Drupal web development is one such place where multiple command-line interface (CLI) tools are available to make developer’s life easy, and among them, the two important things are Drush and Drupal Console.

In this blog, we will take a brief look at Drush & Drush Aliases and how it can make developer’s tedious manual web development tasks easy by offering various commands to…

Categories: Drupal

Valuebound: Step-by-step guide to Drush & Drush Aliases to make sure your web application has quick releases

Planet Drupal - 3 October 2017 - 1:33am

Have you ever thought that your business needs to make sure that your web application has a quick release in order to sustain the long race. This sort of has become easy to manage by continuous development & continuous integration using Drush & Drush Aliases. Drupal web development is one such place where multiple command-line interface (CLI) tools are available to make developer’s life easy, and among them, the two important things are Drush and Drupal Console.

In this blog, we will take a brief look at Drush & Drush Aliases and how it can make developer’s tedious manual web development tasks easy by offering various commands to…

Categories: Drupal Should Facebook be trusted on React and patents?

Planet Drupal - 3 October 2017 - 12:48am
Dries Buytaert, the BDFL of Drupal, has just published a blog post in which he states that “React is the right direction to move for Drupal's administrative interfaces”. A related issue has also been opened on
Categories: Drupal Blog: AGILEDROP: Our Drupal Blogs from September

Planet Drupal - 3 October 2017 - 12:40am
It's the beginning of the new month, so it's time to look at all the Drupal blogs we have written for you in September. First, we have announced that after a long time, we will be present on any Drupal event. During holidays in July and August, we were not so active in that part, so it was right to point out that we were heading to DrupalCamp Antwerp at that time. Our Commercial director Iztok Smolic had a session there and our client adviser Ales Kohek was taking part in any of the Drupal events for the first time. But more about that later. Our second blog topic in September was again… READ MORE
Categories: Drupal

Appnovation Technologies: Appnovator Spotlight: Ed Cann

Planet Drupal - 2 October 2017 - 11:50pm
Appnovator Spotlight: Ed Cann Here's an insight into Ed, the man with the 'Cann do' attitude... Who are you? What's your story? I'm Ed, a welshman born an bred in Swansea. I grew up fiddling with computers from an early age starting with my Commodore +4. After university I decided that Engineering wasn't for me and Web development was where my talent lies so started with a few f...
Categories: Drupal

PreviousNext: DrupalCon Vienna session retro: Test all the things!

Planet Drupal - 2 October 2017 - 8:57pm

Last week I was fortunate enough to attend and deliver a session at DrupalCon Vienna. The session was based around leveraging and getting productive with the automated testing tools we use in the Drupal community.

by Sam Becker / 3 October 2017

For the kind of large scale projects we work on, it's essential that automated testing is a priority and firmly embedded in our technical culture. Stability and maintainability of the code we're working on helps to build trusting relationships and happy technical teams. I have for a long time been engaged with the developments of automated testing in Drupal core and internally we've worked hard to adapt these processes into the projects we build and fill-in any blanks where required.

I was fortunate enough to be selected to share this at DrupalCon Vienna. Without further ado, I present, Test all the things! Get productive with automated testing in Drupal 8:

Our current testing ethos is based around using the same tools for core and contrib for our bespoke Drupal project builds. Doing so allows us to context-switch between our own client work and contributed project or core work. To make this work we've addressed a few gaps in what's available to us out of the box.

Current State of Testing

I had some great conversations after the session with developers who were just starting to explore automated testing in Drupal. While the tools at our disposal are powerful, there is still lots of Drupal-specific knowledge required to become productive. My hope is the session helped to fill in some of the blanks in this regard.

E2E Testing

Because all of the test cases in core are isolated and individually setup environments/installations, end-to-end testing is tricky without some additional work. One of the touch points in the session was based around skipping the traditional set-up processes and using the existing test classes against pre-provisioned environments. Doing so replicates production-like environments in a test suite, which helps to provide a high-level of confidence tests are asserting behaviors of the whole system. Bringing this into core as a native capability is being discussed on and was touched on in the session.

JS Unit Testing

One thing Drupal core has yet to address is JavaScript unit testing. For complex front-ends, testing JS application code with a browser is can become clumsy and hard to maintain. One approach we've used to address this is Jest. This nicely compliments front-ends where individual JavaScript modules can be isolated and individually tested.

Summing up, attending DrupalCon Vienna, presenting the session and meeting the members of the broader community was a great experience. I'm hopeful my session was able to contribute to the outstanding quality of sessions and technical discussions.

Tagged DrupalCon, DrupalCon Vienna, Testing

Posted by Sam Becker
Senior Developer

Dated 3 October 2017

Add new comment
Categories: Drupal

Dcycle: Letsencrypt HTTPS for Drupal on Docker

Planet Drupal - 2 October 2017 - 5:00pm

This article is about serving your Drupal Docker container, and/or any other container, via https with a valid Let’s encrypt SSL certificate.

Step one: make sure you have a public VM

To follow along, create a new virtual machine (VM) with Docker, for example using the “Docker” distribution in the “One-click apps” section of Digital Ocean.

This will not work on localhost, because in order to use Let’s Encrypt, you need to demonstrate ownership over your domain(s) to the outside world.

In this tutorial we will serve two different sites, one simple HTML site and one Drupal site, each using standard ports, on the same Docker host, using a reverse proxy, a container which sits in front of your other containers and directs traffic.

Step two: Set up two domains or subdomains you own and point them to your server

Start by making sure you have two domains which point to your server, in this example we’ll use:

  • will be a simple HTML site.
  • will be a Drupal site.
Step three: create your sites

We do not want to map our containers’ ports directly to our host ports using -p 80:80 -p 443:443 because we will have more than one app using the same port (the secure 443). Port mapping will be the responsibility of the reverse proxy (more on that later). Replace with your own domain: docker run -d \ -e "VIRTUAL_HOST=test-one.$DOMAIN" \ -e "LETSENCRYPT_HOST=test-one.$DOMAIN" \ -e "LETSENCRYPT_EMAIL=my-email@$DOMAIN" \ --expose 80 --name test-one \ httpd docker run -d \ -e "VIRTUAL_HOST=test-two.$DOMAIN" \ -e "LETSENCRYPT_HOST=test-two.$DOMAIN" \ -e "LETSENCRYPT_EMAIL=my-email@$DOMAIN" \ --expose 80 --name test-two \ drupal

Now you have two running sites, but they’re not yet accessible to the outside world.

Step three: a reverse proxy and Let’s encrypt

The term “proxy” means something which represents something else. In our case we want to have a webserver container which represents our Drupal and html containers. The Drupal and html containers are effectively hidden in front of a proxy. Why “reverse”? The term “proxy” is already used and means that the web user is hidden from the server. If it is the web servers that are hidden (in this case Drupal or the html containers), we use the term “reverse proxy”.

Let’s encrypt is a free certificate authority which certifies that you are the owner of your domain.

We will use nginx-proxy as our reverse proxy. Because that does not take care of certificates, we will use LetsEncrypt companion container for nginx-proxy to set up and maintain Let’s Encrypt certificates.

Let’s start by creating an empty directory which will contain our certificates:

mkdir "$HOME"/certs

Now, following the instructions of the LetsEncrypt companion project, we can set up our reverse proxy:

docker run -d -p 80:80 -p 443:443 \ --name nginx-proxy \ -v "$HOME"/certs:/etc/nginx/certs:ro \ -v /etc/nginx/vhost.d \ -v /usr/share/nginx/html \ -v /var/run/docker.sock:/tmp/docker.sock:ro \ --label com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy \ jwilder/nginx-proxy

And, finally, start the LetEncrypt companion:

docker run -d \ --name nginx-letsencrypt \ -v "$HOME"/certs:/etc/nginx/certs:rw \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ --volumes-from nginx-proxy \ jrcs/letsencrypt-nginx-proxy-companion

Wait a few minutes for "$HOME"/certs to be populated with your certificate files, and you should now be able to access your sites:

  • should show the Drupal installer (setting up a MySQL container to actually install Drupal is outside the scope of this article);
  • should show the “It works!” page.
  • In both cases, the certificate should be valid and you should get no error message.
  • should redirect to
  • should redirect to
A note about renewals

Let’s Encrypt certificates last 3 months, so we generally want to renew every two months. LetsEncrypt companion container for nginx-proxy states that it automatically renews certificates which are set to expire in less than a month, and it checks this hourly, although there are some renewal-related issues in the issue queue.

It seems to also be possible to force renewals by running:

docker exec nginx-letsencrypt /app/force_renew

So it might be worth considering to be on the lookout for failed renewals and force them if necessary.


You can now bask in the knowledge that your cooking blog will not be man-in-the-middled.

This article is about serving your Drupal Docker container, and/or any other container, via https with a valid Let’s encrypt SSL certificate.

Categories: Drupal

Issue 4 of Irregular Magazine Now Available

Tabletop Gaming News - 2 October 2017 - 3:00pm
This is the last post of the day here on TGN. So, what will you do to fill the void between now and when I schedule up the first one for tomorrow? Well, I might suggest a gaming magazine. In particular, Issue 4 of Irregular Magazine is now available. It’s just full of all sorts […]
Categories: Game Theory & Design


Subscribe to As If Productions aggregator