GitHub, Bitbucket, GitLab(.com) のような gitレポジトリホスティングサーバーを自前で構築できる、GitLab Communitiy Edition (GitLab CE) をインストールした忘備録。
本記事は 2017/03/14 の時点で大部分を書いた後、長く下書き状態のまま残っていたものです。
2020/05 に Docker版 の公開に伴い、参考資料として当時のまま掲載します。
そういった経緯で、記事内容の鮮度や校閲に多少問題があるかもしれませんが、どうぞご了承ください。
インストール環境
Scientific Linux Fermi 6.6 x86_64
インストール手順
基本的にはオフィシャルのインストール手順に従う。
RHEL6 なのでこのページ。
「2. Add the GitLab package server and install the package」の項で、
os detection に失敗するので手動でスクリプトを落として、os=scientific と指定した。
「3. Configure and start GitLab」の項について、
GitLabを稼動させるサーバーにはホスト名としてFQDN(ドメイン名を省略していないドメイン名)が指定されている必要があるらしい。
「4. Browse to the hostname and login」で、
初回アクセス時にrootのぱすわーどを設定できる。
初期設定
- ユーザーアカウントの作成
- プロジェクトの作成
- SSH公開鍵を作成、登録
- .ssh/config に適当な設定を書く
1 2 3 4 |
Host gitlab HostName yourgithost.com User git IdentityFile ~/.ssh/gitlab |
ここでホスト側の sshd_config で UsePAM が no になっているとアクセスできないので。
no になっている場合は yes にする。
メールサーバーの設定
ユーザー追加、パスワード初期化などの際に通知メールを送るのに必要となる。
この用途だけのために sendmail/postfix を立てるのがメンドウなので
web mail の smtp を設定した。
/etc/gitlab/gitlab.rb 内の "gitlab_rails[‘smtp_*’] = ~" を全て適切に設定すると、
Gmail 等を用いてシステムの通知を送ることができる。
(オプション) http にベーシック認証をつける
主にブラウザからのページアクセスを制限する目的で、
httpにベーシック認証を設定してみる。
以下で、htpasswd ファイルを作成。
$> htpasswd -c -b /var/opt/gitlab/nginx/conf/htpasswd USER PASS
/etc/gitlab/gitlab.rb を編集、以下を追加
nginx['custom_gitlab_server_config'] = "auth_basic 'Restricted';\n auth_basic_user_file htpasswd;\n"
設定を反映。
$> gitlab-ctl reconfigure
ただしこれをやると http で clone できなくなる。
SSH公開鍵で gitアクセスする分には問題無し。
おそらく手はあるのだろうけど、すぐにどう設定すれば良いのか分からないし、
SSHのみで特に問題ないので保留。