Raspberry Pi as Private Git Server
Posted on January 25th, 2014
Here is what you need to do in order to setup your own private Git server for all your repositories.
First you have to get Git on your pi.
sudo apt-get install wget git-core
This will install the Git server and the necessary client software.
If you don't already have SSH installed, do so with the following command:
sudo apt-get install ssh
You can then start it with this command:
sudo /etc/init.d/ssh start
You now have SSH running, but once you reboot your Pi, you will have to run the command above again. You can get around this by running this command once:
sudo update-rc.d ssh defaults
After rebooting your Pi, SSH should now startup automatically. To see if you can connect to your Pi via SSH, go on your Windows machine and try connecting using Putty (Mac users will have to find an alternative SSH client).
Enter the IP adress of your Pi in the Host Name textbox. To find your IP address run this command:
Look for inet addr: and your IP is right after that.
This step isn't necessary, but I do highly recommend it if you are using, or ever plan on using, multiple Raspberry Pi devices.
sudo leafpad /etc/hostname
Type in the hostname your would like use, and then save the file. My hostname is "gitpi".
Next, type the following:
sudo leafpad /etc/hosts
Replace any instance of "raspberrypi" with the new host name you entered in the previous step. After this, reboot your Raspberry Pi.
Add a "Git" User and Group
Next you will want to create a 'git' user and a new user group. Note that /home/git is the directory I am using for this example. If you want it somewhere else, replace the "/home/git" part in the command below.
adduser --system --shell /bin/bash --gecos 'git version control by pi' --group --home /home/git git
After you have created the user, change the password.
Your 'git' user now has a new password. Try switching users, and you should see the terminal user and host as 'git@gitpi'. You can change users by doing this:
Add an Empty Git Repository
We will now create an empty Git Repository.
First change directories to where you will store your git repos.
Make a directory for your repo, move into it, and initialize and empty repository.
Please note that I am current the user 'git' while doing this. This user has control over the /home/git directory.
mkdir test.git cd test.git git --bare init
Push Code to your Pi
Finally, we will push code onto our device. First, change directories to where you have previously initialized a git repo (or initialize a new one).
Add a new remote: (*no braces around your IP address)
git remote add pi git@[your IP]:/home/git/test.git
Now all you have to do is add your code, commit, and push.
git add . git commit -am "Initial" git push pi master
If you get a message about the "authenticity of host ..." just type "yes" and continue.
Hopefully, if everything worked out for you, you have successfully setup your own personal Git Repo on your Raspberry Pi.
If you want to test it out, try cloning your repo onto your Windows machine. First change directories to where you would like to clone it (an empty directory), then in the Command Prompt (or git bash), run this:
git clone git@[your IP]:/home/git/test.git
If you have any questions, leave them in the comments below. Good luck!