Push Git Repo Into Shared Hosting Account Like Hostgator
Many use 3rd party git hosting (Github.com) to host their git repos, but sometimes you’re not wanting to take your project to a social network. Sometimes your repo is for yourself, for your website and no one else. I want to run you through how to setup your Hostgator account with the configuration needed to push directly into Hostgator in 3 steps. Theoretically you can do this with any shared hosting that gives you SSH access and has Git Client installed.
1.) Setup Hostgator
Make sure you have SSH access. Shared hosting accounts with Hostgator do not come with SSH access by default. You will have to go to the support chat and ask for SSH access or go here and ONLY follow instructions for “Shared Web Hosting”, this will only take minutes and is effective immediately. Once they give you access, make sure you can login. SSH port for hostgator is 2222. Here is how you would SSH into your account with your Hostgator username and password.
ssh USER_NAME@your-domain.com -p 2222 ... Enter your password: *********
Get your public key into Hostgator.Your public key is located at
~/.ssh/id_rsa.pub (on your workstation), copy the contents and paste it in a file on Hostgator:
Incase you don’t have
~/.ssh/id_rsa.pubon your workstation, run
ssh-keygenin your console and hit
enterall the way through. At the end of that, you will have the
~/.ssh/id_rsa.pubfile on your computer.
~/.ssh/authorized_keysdoes not exist on Hostgator, then create it with
Configure your repo on hostgator. First, you need to set a config option in your hostgator repo to accept pushes into this working directory. SSH into hostgator, navigate to your repo directory and run this command:
git config receive.denyCurrentBranch ignore
Finally, you need to set a git hook that will refresh your working directory after the push has been accepted. Save the following content in:
#!/bin/sh # Save this in: PATH_TO_REPO/.git/hooks/post-receive GIT_WORK_TREE=../ git checkout -f
Then, make it executable with
chmod +x PATH_TO_REPO/.git/hooks/post-receive
2.) Setup Your SSH Config Locally
Automate SSH connection for Hostgator. In order to add hostgator as a git remote, you need to automate the fact that you will be connecting to hostgator via port 2222 and you will not be using your password for authentication. Your need to edit/create the file
~/.ssh/config on your computer. Then add this content.
Host your-domain.com Port 2222 PreferredAuthentications publickey
Now, you should be able to login with
ssh firstname.lastname@example.org without needing to type your password. If this is not the case, start over at step 1.
3.) Setup Hostgator as a Remote
Add your domain as a remote. On your computer, navigate to your git repo and run this command:
git remote add hostgator-live email@example.com:www/site-directory
Now, you can make you changes to your repo and when you are ready to push your changes:
git push hostgator-live
Something to think about
With this setup it is now easy to have a “dev” site on your hostgator account too. SSH into hostgator and replicate your repo into a different folder (
~/www/dev). Locally, setup a new remote:
git remote add hostgator-dev firstname.lastname@example.org:www/dev
So, from now on you can
git push hostgator-dev to test out your new changes. When you are ready to make your changes live:
git push hostgator-live