A Drupal deployment tool using git and ssh
npm install -g drupaldeploy
Creates a config.json and settings.php.
drupaldeploy init
Example config.json:
{
// Server authentication info.
"servers": [
{
"host": "hostname",
"username": "root"
}
],
// The repository SSH clone url of your project.
"repository": "[email protected]:studiointeract/drupal-git-deploy.git",
// The branch you want to deploy.
"branch": "master",
// Location of web root in the repository.
"web": "web",
// Virtual Host DocumentRoot on the server.
"documentRoot": "~/public_html",
// Location of repository and files on the server (you need write permission).
"installLocation": "/home/root",
// Location of your Drupal settings
"settings": "./settings.php",
// Group for the user running Apache on the server.
"group": "www-data"
}
Setup the server with your configuration and install git.
drupaldeploy setup
Deploy your Drupal project using git pull and ssh.
drupaldeploy deploy
Notice! You need to setup ssh-agent (see below) for this to work, and have permissions to pull from your repository using your own ssh key.
This only tested with Mac/Linux/Windows 10
With the help of ssh-agent
, drupaldeploy
can use SSH keys encrypted with a
passphrase.
Here's the process:
- First remove your
pem
field from theconfig.json
. So, yourconfig.json
only has the username and host only. - Then start a ssh agent with
eval $(ssh-agent)
oreval `ssh-agent.exe`
on Windows 10. - Then add your ssh key with
ssh-add <path-to-key>
, i.e.ssh-add ~/.ssh/id_rsa
. - Then you'll asked to enter the passphrase to the key if you're using one.
- After that simply invoke
drupaldeploy
commands and they'll just work - Once you've deployed your app kill the ssh agent with
ssh-agent -k