Your own Git server
If you need your own remote Git server, you can just create Git bare repositories in your Linux server, like this:
git init --bare /git/myRepo.git
And make the repository available to system users, using chmod to determine who can access to which files. Then, users can access via SSH:
git clone ssh://user@yourserver.com/git/myRepo.git/
This approach is fast and easy to implement, but insecure and complicated, because permissions on Linux can be tricky and disable console access while maintain SSH working for git command is not an easy task.
Gitosis
Is a great tool to deal with this type of work. You install Gitosis in your server and then clone a configuration project to your local machine, in which you can manage the Git server (users, repositories, groups) using git. All users, including admin, have access via the gitosis user, and that user has console access disabled.
First, use a package installer to install git-core and gitosis:
sudo apt-get -y install git-core gitosis
Initialize gitosis using your public key:
sudo -H -u gitosis gitosis-init < yourPublicKey.pub
Where yourPublicKey.pub is a copy of the public key from your local machine.
And, in your local machine, checkout the gitosis-admin branch:
git clone gitosis@yourserver.com:gitosis-admin.git
You can edit the configuration file:
vi gitosis-admin/gitosis.conf
And add projects, users or groups.
After your're done, save the file and commit back:
git commit -a -m "New project, yeah!"
git push
More detailed info here:
Written by emi420
Related protips
6 Responses
This should be a blog post or article.
Awesome.
Thanks francisc!
That's probably the exact same reason why you login to Github using the git
user rather than your own account.
Thanks Emilio Mariscal.......
Nice roundup although I prefer https://github.com/sitaramc/gitolite over gitosis.
got to agree with jan0sch