Project structure
When you generate your project with Humpback Generator, you'll get the following folders and files in the root path of your project.
.ahoy
It contains the definition of custom ahoy commands for your site.
.circleci
Contains a basic template to integrate your project with CircleCI.
composer-scripts
Contains custom composer scripts for your project, like the one in charge of the drupal settings placing.
config
In this folder all the drupal configuration files are stored.
docs
It stores all the custom documentation of your project.
drush
This directory contains commands, configuration and site aliases for Drush. See this web page for a directory of Drush commands installable via Composer.
files
This folder contains all the files uploaded to your Drupal site. The folder web/sites/default/files
is a symbolic link to this folder.
gulp-task
This folder contains all the custom gulp task defined for the project. You could develop your own gulp tasks and put it in this folder to make it available to your project.
modules
Contains all the custom modules developed in your custom project. Notice that web/modules/custom
is a symbolic link to the folder custom
that's is inside of this directory.
mysql
This folder contains the MYSQL configuration file (my.cnf) for the MYSQL container.
nginx
Contains the nginx server configuration for the nginx container.
patches
This folder is exclusive to save the local patches for modules, libraries and so on.
profiles
By default, Humpback Generator creates an installation profile for each project it generates, that profile is stored in this folder and its content is linked to the folder web/profiles/custom
(by using a symbolic link).
root
This folder is created so you can add files that you need to be placed in the root path of your project, for example the .htaccess
file. All the files here will be symbolic linked into the web
folder.
settings
This folder contains all the settings files and the services.yml file required by drupal. All of this files are symbolic linked into the folder web/sites/
.
solr
Contains the Solr server config for the Humpback Solr container.
tests
The purpose of this folder is to store all the custom behat test for the generated project.
themes
This directory contains the Custom Drupal Themes for the project, also it is symbolic linked into: web/themes/custom
.
web
This folder is where the complete drupal site is built, it shouldn't be added to the git history, its goal is to store the artifact for local development.
.ahoy.yml
Defines some ahoy commands.
.editorconfig
EditorConfig helps developers define and maintain consistent coding styles between different editors and IDEs, see http://editorconfig.org/.
.env
This file is very important, it allows us to change certain settings of the Humpback containers environment, for example using the environment variable VIRTUAL_HOST
, we can change the local site domain.
behat.yml
This file provides all the behat testing framework configuration for the environment.
composer.json
This file is the one in charge to keep the information about the required modules and libraries and the version of those packages, including the drupal core. For more information follow this link.
composer.lock
composer.patches.json
docker-compose.yml
It contains the Docker compose configuration for the current project containers. For more information about how it works, you can take a look here.
env.example
Example file for the .env file.
gulpfile.js
Gulp configuration file for the project.
LICENSE
The License file for the project.
package-lock.json
package.json
pantheon.yml
This file provides the possibility to set advanced configuration to your pantheon environments. For more information look at: pantheon.yml usage
README.md
The readme file for your project.
traefik.toml
It contains the configuration to be placed in the traefik container to configure the traefik app. For more information about this file, check this link