Building a collaborative Drupal 8.x distribution
Use prefixes by table for the database in order to exclude tables from database import/export processes.
Store user generated files (
sites/*/files) on external storage and get files from there for any new build.
Disable update_manager from Drupal ui and allow updates only from ssh.
Live site should have the [trusted_host_patterns] to allow http requests.
cookie_domain to allow logged in users to move between multidomains.
development.services.yml for custom development settings. Do not enable this on live site!
config* files out of sites/* folder.
$settings['file_public_base_url'] variable to have the public files on external folder.
renderer_cache_contexts to alter cache settings. See the related
Drupal.org API. Create custom cache tags for rendering caching and add them to
On packaging, distribution
When creating Drupal Features it is better to add dependencies of D.O. modules and not of custom modules that belong to the profile.
Except if the required feature has necessary settings. This way each feature could be more “independent”.
Every functionality that is strongly related with the development
parameters should be implemented as entityreference (eg the language of a block). Dump database should be exported from live site (master) every n hours.
Create a list of things for the customer to check on every release.