alwaysdata Autodeploy Git Hook
A simple bash script to deploy on production using Git hooks.
This script simply checkout the last version of a given branch (e.g a production branch) to a working directory. It updates your files and ensure your website / service is properly updated.
To get it working, create a bare repository on your remote server and place the
post-receive hook script in its hooks directory:
$ git init --bare ~/project.git $ curl -L -o ~/project.git/hooks/post-receive https://raw.githubusercontent.com/alwaysdata/autodeploy-git-hook/master/post-receive $ chmod +x project.git/hooks/post-receive
The script embed some variables you need to define to get it working properly. They are declared at the top of the
post-receive file, feel free to adapt them to your needs:
TARGET: the directory where the files need to be deployed
GIT_DIR: the current git bare repository path
BRANCH: the branch to deploy (default to
In case you want to restart your app after deploy, you need to fill:
RESTART: a boolean to enable restart (default to
API_KEY: your api key you can find in your profile section
ACCOUNT: the account name your site is associated to
SITE_ID: the reference ID of your site you can find in your sites section
In your local repository, simply define a new remote, then push your production (or the branch you set in config) to this remote:
$ cd project $ git remote add deploy <account>@ssh-<account>.alwaysdata.net:~/project.git $ git checkout production $ git push deploy production
The script logs actions in your git terminal, so the Git
push action will show you that your deploy is OK or not.
Feel free to contribute to the project by opening pull-requests, or fill issues that will let us improve it. Thanks
Release under MIT LICENSE.
For more information, you can take a look at our blog post about how to deploy using Git Hooks.