web-dev-qa-db-ja.com

Gitサーバーのセットアップ

最近、Amazon EC2でubuntu-serverをセットアップしました。 gitサーバーとして使用したいので、リポジトリをそこに保存できます。

だから、ubuntuサーバーでgitをセットアップする方法の詳細な指示はどこにありますか?これらすべてのSSHキーとそのようなもの、複数のユーザーなど。

57
Pawełkowy

チュートリアルを使用してGitサーバーをインストールするためのチュートリアル を使用するか、またはEC2インスタンスにSSHサーバーをインストールすることができます(おそらく、それを保護してデフォルトのポートを変更するのが賢明でしょう)。

Gitは、サーバーを使用せずにリポジトリを初期化し、SSH経由でリモートからアクセスできます。したがって、Ubuntu Serverでのこのような指示はそれを行う必要があります。

GIT_DIR=project.git git init  
cd project.git  
git --bare update-server-info  
cp hooks/post-update.sample hooks/post-update

最後に、サーバーにSSHをインストールします。

Sudo apt-get install ssh-server

次に、SSHを構成してセキュリティを確保する必要があります。

プロジェクト(開発マシンに既にあるデータ)をオンラインにするときです。

git Push ssh://<username>@<remote-git-hostname>/path/to/project.git master

これで、クローン作成を開始できます。開発用マシンに行きます:

git clone ssh://<username>@<remote-git-hostname>/path/to/dir.git

これを確認してください Gitの優れたリソース

そして、より安全な認証のためのsshキーを生成するには、 SSH認証 に関するこの記事を読むことができます。

38
Huygens

すべてのGitサーバーのセットアップで Gitolite を使用します。これにより、「ブランチごとの」アクセスのセキュリティ粒度が可能になります。リモートサーバーでセットアップを行う場合、セットアップは非常に簡単です。インタラクティブスクリプトを実行するのと同じくらい簡単です。この「セットアップが簡単」な性質に加えて、NattyおよびMaverickにもパッケージがあります。

Sudo apt-get install gitolite

これはGithubやGitwebのようなWebフロントエンドを提供しませんが、Gitoliteのようなものの上にそれらを簡単に構成してインストールできます。

15
Marco Ceppi

gitolite が好きです。 Pro Gitブックには section がありますが、本全体を読むことをお勧めします。

複数のユーザーの要件に関して:

Gitoliteを使用すると、リポジトリ(Gitosisのように)だけでなく、各リポジトリ内のブランチ名またはタグ名によって権限を指定できます。つまり、特定の人々(または人々のグループ)は特定の「参照」(ブランチまたはタグ)のみをプッシュでき、他はプッシュできないように指定できます。

9
Li Lo

http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way は、目的に合わせてわずかに変更できます... a同様のチュートリアル http://blog.agdunn.net/?p=277

7
RobotHumans

公式ドキュメントを確実に守ってください: https://help.ubuntu.com/community/Git (セクションGitとプロジェクト管理のセットアップ

6
chris

私にとって最適なソリューションは、WebDAVのセットアップでした。

  • Sudo a2enmod Sudo dav_fs

  • Sudo a2enmod dav

  • 新しいファイルを/etc/Apache2/sites-availableに追加し、名前を付けます(例:git.yourserver.com)。それを編集して、次の行を追加します。

<VirtualHost *:80>

DocumentRoot /var/www/git.yourserver.com/repos
ServerName git.yourserver.net
Options Indexes FollowSymLinks MultiViews

<Location />
    DAV On
    AuthType Basic
    AuthName "git repos"
    AuthUserFile /var/www/git.yourserver.net/password.dav
    Require valid-user
</Location>

</VirtualHost>

  • id内にディレクトリ/var/www/git.yourserver.comとディレクトリreposを作成します
  • Sudo chown www-data /var/www/git.yourserver.com/repos
  • Sudo htpasswd -c /var/www/git.yourserver.com/password.dav user_loginおよびuser_loginという名前のユーザーのパスワードを入力します
  • Sudo chown root:www-data /var/www/git.yourserver.com/password.dav
  • Sudo chmod 640 /var/www/git.yourserver.com/password.dav

さて、Sudo a2ensite git.yourserver.comSudo service Apache2 restart

  • /var/www/git.yourserver.com/reposと入力して、ディレクトリを作成します(例:myrepo.git
  • cd myrepo.git
  • git --bare init
  • git update-server-info

次に、リモートサーバーからログアウトし、ファイルを編集するローカルディレクトリに移動します。

git clone http://user_login:[email protected]/myrepo.git

そしてあなたは終わった。コミットした変更をサーバーに送信する場合:

git Push Origin master

Sudo htpasswdを使用して、必要な数のユーザーを作成できます。古いファイルが削除されるため、ユーザーを追加するときに-cスイッチを使用しないでください。

4
Pawełkowy

ユーザーとセキュリティを管理するためのgitoliteアプローチも気に入っています。現在テスト中のEC2用のGit + gitoliteサーバーAMIがあります。試してみてください。ドキュメントはここから入手できます。

Alestic Git Server

このアプローチを使用すると、プライベートリポジトリを備えた中央のGitサーバーを数分で実行できます。あなたがそれらに精通していない場合、gitoliteとEC2の学習曲線があります。

3
Eric Hammond

gitolite で達成するのは非常に簡単です。 1時間以内に、簡単に構成可能で安全なマルチユーザーgitサーバーを使用できます。

私のサイト にハウツー記事があります

3
realcnbs