./START
In Your Code (local) Repository
Where you edit your code (ie. local machine, Cloud9)
Create deploy.php
Update Master
1. Add the Deploy script “deploy.php” to your repository.
deploy.php
To do this, first start by creating the file.
$ touch deploy.php
Make sure the deploy script is in a directory that makes it accessable through a URL.
Open the file and past the code from the Gist below.
Save.
/**
* GIT DEPLOYMENT SCRIPT
*
* Used for automatically deploying websites via github or bitbucket, more deets here:
* https://gist.github.com/riodw/71f6e2244534deae652962b32b7454e2
* How To Use:
* https://medium.com/riow/deploy-to-production-server-with-git-using-php-ab69b13f78ad
*/
2. Add, commit, and push the change to GitHub.
$ git add .
$ git commit -m "Added the git deployment script"
$ git push origin master
On The Production Server
Where the code will be served from.
Install Git.
Setup Git.
Generate new SSH key.
Setup Git
3. Check if Git is installed
$ git --version
4. Git version
If git version
is greater than “1.7.9.5" you’re good!
If not, update Git.
If Git is not installed:
https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
Generating a new SSH key
5. Set your Git username on the server:
Paste the text below, substituting “YOUR_USERNAME” with your personal GitHub username.
$ git config --global user.name "YOUR_USERNAME"
Confirm that you have set your GitHub username correctly:
$ git config --global user.name
YOUR_USERNAME
6. Set your GitHub email:
Paste the text below, substituting “YOUR_EMAIL” with your email that is registered with GitHub.
$ git config --global user.email "YOUR_EMAIL"
7. Generating a new SSH key
Paste the text below, substituting “YOUR_EMAIL” with your email that is registered with GitHub.
$ ssh-keygen -t rsa -b 4096 -C "YOUR_EMAIL"
This should create a new SSH key (using the provided email as a label) and put it in the newly created directory ‘.ssh’
Hit enter through the rest of the setup to take the defaults.
Copy the new SSH key
8. Copy the string of characters that are output from executing the following command:
$ cat ~/.ssh/id_rsa.pub
Copy the string starting at ssh-rsa to the end of your email.
On GitHub
Where your repository is stored.
Add the SSH key to your Git profile.
Set up push service Webhook.
Add SSH key
9. Add the SSH Key to your User profile.
10. Click “New SSH key”
11. Title the key after the name of your server.
This is not required, but it helps keep track of what/where the key is.
12. Past your SSH key into the “Key” box.
The key is the string of characters that was output from Step: 8.
13. Click “Add SSH key”
Set up a Webhook
14. Go to your GitHub repository.
15. Click “Settings”
16. Click “Webhooks”
https://github.com/USER_NAME/REPO/settings/hooks
17. Click “Add webhook”
18. Enter the URL
The URL that will be notified by GitHub when an update to the repository is made.
You should be able to leave everything else as default.
19. Click “Add webhook”
On the Server
Go to site folder.
Clone Repository.
Go to site folder
20. cd
to the site folder.
The directory on the server that will serve the site.
$ pwd
/home2/NAME/public_html/SITE_FOLDER
Clone Repository
21. Copy the SSH direct link from GitHub.
NOT the HTTPS.
22. Clone the Repository to the site folder on the server.
git clone git@github.com:USERNAME/REPO.git
- Note: You may have to update the directory that the site is being served from to the directory that was just created with git clone. Folder name should be the name of the GitHub repository.
You can test to see if successful by navigating to the deployment script to trigger a pull and see the output.
./END
Was this useful? Let me know.