Deploy your web application

Exclude files from deployment

While all your application code and configuration files belong in the Git repository, there is a number of files and directories that you have to keep separated. The most important example are the shared folders you’ve declared in the Boxfile such as sites/default/files; they’re created by the freistilbox deployment process and must not be deployed from your repository. For the same reason, you need to also exclude environment-specific files, for example sites/default/settings.php; only deploy their variants (e.g. settings.production.php).

Fortunately, Git doesn’t expect you to take extreme care with every commit. You can simply exclude all the files you’d like to stay out of the repository by listing them in a file named .gitignore, located in the repository’s root directory. You can use pattern matching to exclude a whole bunch of files.

The following would make for a good starter .gitignore:

*.bak

# Drupal
/docroot/sites/*/files
settings.php

# WordPress
/docroot/uploads
wp-config.php

See the gitignore documentation for details.

Commit your changes

Now that you’ve set up your repository, it’s time to collect all your local changes and commit them to the repository as a new revision:

git add .
git commit

Trigger the deployment

To deploy your Drupal installation to our freistilbox hosting platform, you transfer all the changes you’ve made to the repository to the central repository. You do this by using a simple command:

git push origin master

By doing a “push”, you transfer all changes you’ve made since you’ve cloned or updated your local repository from the central repository back to it.

A sophisticated deployment mechanism now takes care that all application servers start to deliver this new version of your Drupal installation. It also chooses the correct configuration file which most of the times will be settings.production.php.

Because Git is a distributed version control system, you can clone as many repositories from the central one as you like – for example in a development team. You need to be careful, though, when you push changes from different repositories. Since these repositories tend to diverge in their commit history, pushing changes from different source repositories can lead to conflicts when those changes need to be merged together on the freistilbox infrastructure. Those conflicts then block all further updates and can only be resolved by our tech support. That’s why we recommend using a central repository to first integrate all changes from the different developer repositories and then push everything at once to the hosting platform.

Troubleshooting deployment

If something goes wrong during deployment, you will notice because your changes won’t become visible on the website. In that case, you should take a look at the deployment logfile and see if it contains any error messages.

Use SSH to log in to the remote access box and change into the directory site/.deploy. There, you’ll find the deployment log file deploy.log:

cd site/.deploy
less deploy.log

If you need any help in getting deployment issues resolved, just contact our support team.


Next: Your application is configured and ready to run. All that’s missing is setting up your application!