2011-01-07 7 views
12

自分のサーバーにプライベートgit reposをホストする方法を探しています。
私はGithubを私のオープンソースプロジェクトに使用していますが、プライベートgitリポジトリを格納するために私自身のサーバを使いたいと思っています。自分のサーバーにプライベートギフトレポをホスティングしていますか?

この目的のためにどのスクリプトを使用する必要があるか、誰かから教えてもらえますか?
Tracは私が探しているものではありません。私は、好ましくはPHPベースのソリューション(単なるオプション)とespであるものを求めています。簡単なUIを持つもの

ここにお手伝いがあります。

てgitosisを持つ別のオプション:

+3

これはserverfaultに適していませんか? – marcgg

答えて

10

まあは、非てgitosis/gitoriousセットアップのために次の2つのオプションがあり、本当に:

  1. はgitリポジトリへのアクセス権を持っている人に完全なシェル(パスワードおよび/またはSSHキー)とLinuxのアカウントを与えます。
  2. sshキーを/home/ac/.ssh/authorized_keys2に設定して、シェルを/usr/bin/git-shellに設定すると、Linuxアカウントにアクセスできます。つまり、シェルを使ってLinuxユーザとしてログインすることはできず、マシン上でgitを使う以外は何もしません。

いずれの場合も、ユーザーは、ユーザーまたはグループの一部として、必要に応じてgitリポジトリへのアクセス権(読み込み|書き込み|両方)を必要とします。

複数の人が同じリポジトリにプッシュするのは、一般的には悪い考えです(私の経験では人が簡単にやってしまう)ので、/ git/projectディレクトリを作成してそこにユーザリポジトリを置くことは意味があります。 。たとえば、/srv/git/proj/proj-ninefingers.gitを持っていて、 '/ srv/git/proj/project.git`の "release"レポを持っているかもしれません。パーミッション、シェルなどを適切に設定する。

読み取り専用のgitプロトコルを使用してエクスポートを許可するには、設定されたgitユーザーに読み取りアクセス権があり、裸のリポジトリにgit-daemon-export-okが存在することを確認する必要があります。 git update-server-infoは、gitwebがリポジトリを取得する前に実行しておく必要があります。

他の人によると、git gcはリポジトリを最適化しており、これを定期的に行うことをお勧めします。 Cronの仕事ですか?

最後に、これを簡略化するためのフレームワークが多数存在します(gitosis、gitorious、...)。私はさまざまなメカニズムを介してフォルダへのアクセスを提供するより簡単になるとは思わないが、それは私です。私のセットアップの一例として、

は、それは私だけであること、私が持っている:

$ cat /etc/passwd | grep git 
git:x:1002:1002:Antony Vennard,,,:/home/git:/usr/bin/git-shell 
gitdaemon:x:112:65534::/nonexistent:/bin/false 
$ cat /etc/group | grep git 
git:x:1002: 
$ ls -l /srv/git 
drwxr-xr-x 7 git git 4096 2010-09-12 23:31 bsdnt.git 
drwxr-xr-x 7 git git 4096 2010-06-16 22:32 vforth.git 
$ cat /home/git/.ssh/authorized_keys2 
ssh-rsa somehex user1 
ssh-rsa somehex user2 

これは、秘密鍵USER1と誰がログインしてこれらのリポジトリのいずれかにコミットできることを意味します。

1

Gitoriousは独自のコードベースに基づいています。 this pageには、git-repoがあります。プロジェクトの。

Gitalistはgit Webinterfaceを使いやすいです。

0

コードリポジトリだけでWebページを必要としない場合は、HTTP経由でクローニングするのに十分な場所に ".git"ディレクトリを置いてください(そのリポジトリにプッシュするにはsshなどが必要です)。

たとえば、私のプロジェクトはhttp://psi5.com/~geier/mutextrace.gitにこの方法でホストされています。

オブジェクトをまとめるために、そのリポジトリで定期的に "git gc"を実行することをお勧めします。クライアントは何千ものアクセスをする必要はありません。

ウェブページが必要な場合、gitoriousは確かに行く方法です。

関連する問題