- On the server:
- Install EPEL (likely to be added to RHN shortly which would be just:
yum install epel-release
) rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
yum install gitosis
useradd git
passwd git
- On your client:
ssh-keygen
...if necessaryscp ~/.ssh/id_rsa.pub git@SERVER:/home/git
- On the server:
su - git
gitosis-init < id_rsa.pub
rm id_rsa.pub
chmod 755 /home/git
chmod 700 /home/git/.ssh
chmod 644 /home/git/.ssh/authorized_keys
You're all done on the server! Now follow the instructions in the Gitosis Administration section on the client that you just initialized it's pubkey
This is the standard command line way of doing it... seems it would be real easy to wrap a web application around this... stay tuned for the Mitosis project :)
Your key must already be in the members section of gitosis-admin!
- if you don't have the repo already...
git clone git@SERVER:gitosis-admin.git
cd gitosis-admin
- make sure you have the latest version of the admin repo
git pull
- MODIFY FILES ACCORDINGLY!
git commit -am "useful commit message about what you just did"
git push
- server has been updated!
Objects/Concepts: Users, Keys, Groups, Repositories, Read/Write/Admin Permissions
(these steps are performed by the web app itself)
git pull
- Clear database?
- Read current gitosis.conf and keydir files, fill database
- USER MAKES CHANGES + SAVES
- Clear keydir?
- Read database, write gitosis.conf and keydir files
git add .
git commit -am "Mitosis: $user: CHANGE DESCRIPTION"
git push
For each key:
- write keydir/user-key_description.pub
For each user: [group user] members= key ...
For each group: [group group_name] members= (@user|@group) ...
For each repository: [group repository-writable] writable= repository members= (@user|@group) ...
[group repository-readonly]
readonly= repository
members= (@user|@group) ...
[repo repository]
description= repository_description
owner= repository_owner
gitweb= repository_gitweb
daemon= repository_public