プライベートなGitホスティングサーバを持っておきたかったので,構築が簡単だというGitBucketを試してみた.
Installation of Tomcat
以下のコマンドでtomcat8
をインストールする.
$ yaourt -S tomcat8
インストールできたら,/etc/tomcat8/tomcat-users.xml
を以下に示すように編集する.
$ sudo diff tomcat-users.xml.bak tomcat-users.xml 32d31 < <!-- 34,38c33,41 < <role rolename="role1"/> < <user username="tomcat" password="tomcat" roles="tomcat"/> < <user username="both" password="tomcat" roles="tomcat,role1"/> < <user username="role1" password="tomcat" roles="role1"/> < --> --- > <role rolename="manager-gui"/> > <role rolename="manager-script"/> > <role rolename="manager-jmx"/> > <role rolename="manager-status"/> > <role rolename="admin-gui"/> > <role rolename="admin-script"/> > <user username="tomcat" password="[CHANGE_ME]" roles="tomcat"/> > <user username="manager" password="[CHANGE_ME]" roles="manager-gui,manager-script,manager-jmx,manager-status"/> > <user username="admin" password="[CHANGE_ME]" roles="admin-gui"/>
編集できたら,以下のコマンドでTomcatを起動する.
$ sudo systemctl start tomcat8
起動後Tomcatを起動したサーバにsshのポート転送を用いた接続を行い,スタート画面の表示を確認する.
ssh -L 8080:localhost:8080 username@your.server.hostname
上記コマンドを実行し,ブラウザ上でlocalhost:8080
に移動すれば良い.
起動確認を済ませたら,GitBucketを動作させる下準備を行う.
Preparation of installing GitBucket
GitBucketをダウンロードする前に,TomcatとApacheが連携して動作できるように設定を行う.
まずは,/etc/tomcat8/server.xml
の以下のような行をコメントアウトし,Tomcatへの直接接続を禁止するように変更する.
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
また,以下のような行が存在するかを確認し,なければ追加する.
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
さらに,以下の行を最終行付近の</Host>
の下に追加する.
<Host name="tomcat.your.domain" appBase="myapp" unpackWARs="true" autoDeploy="true"> <Value className="org.apache.catalina.values.AccesLogValve" directory="logs" prefix="tomcat.your.domain-access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host>
追加できたら,GitBucketを配置するディレクトリの作成と/usr/share/tomcat8/へのリンク作成,GitBucketのデータを保存する .gitbucketディレクトリの作成を行う. 具体的には,以下のコードを実行する.
$ sudo mkdir /var/lib/tomcat8/myapp $ sudo chown tomcat8:tomcat8 /var/lib/tomcat8/myapp $ sudo ln -s /var/lib/tomcat8/myapp /usr/share/tomcat8/myapp $ sudo mkdir /usr/share/tomcat8/.gitbucket $ sudo chown tomcat8:tomcat8 /usr/share/tomcat8/.gitbucket
次に,/etc/httpd/conf/httpd.conf
の以下の2行をアンコメントする.
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
さらに,GitBucketにはHTTPSで接続したいため,オレオレ証明書を作成する.
$ sudo openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out server.key $ sudo chmod 600 server.key $ sudo openssl req -new -key server.key -out server.csr $ sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
証明書が作成できたら,/etc/httpd/conf/extra/tomcat.conf
を作成し,VirtualHostの設定を行う.
<VirtualHost *:443> ServerAdmin foo@foofarm.com ServerName tomcat.your.domain ErrorLog /var/log/httpd/tomcat.your.domain-error.log CustomLog /var/log/httpd/tomcat.your.domain-access.log common DocumentRoot /usr/share/tomcat8/myapp ProxyPass /assets ! ProxyPass /gitbucket ajp://localhost:8009/gitbucket ProxyPassReverse /gitbucket ajp://localhost:8009/gitbucket ProxyPreserveHost on SSLEngine on SSLCertificateFile "/etc/httpd/conf/server.crt" SSLCertificateKeyFile "/etc/httpd/conf/server.key" </VirtualHost> <VirtualHost *:80> ServerName tomcat.your.domain Redirect / https://tomcat.your.domain/ </VirtualHost>
ファイルの作成ができたら,/etc/httpd/conf/httpd.conf
のInclude行の最後に以下の行を追加する.
Include conf/extra/tomcat.conf
Install GitBucket
いよいよGitBucketのインストールを行う.gitbucket.war
の最新版をGitBucketのリリースページからダウンロードしてこよう.
$ wget https://github.com/takezoe/gitbucket/releases/download/2.8/gitbucket.war
wget
に渡しているURLは構築当時のものなので,実際に構築する際はリリースページから最新版のURLを渡すこと.
ダウンロードできたら,以下のコマンドでgitbucket.war
を適切なパスに移動させる.
$ sudo mv gitbucket.war /var/lib/tomcat8/webapps/
移動させられたら,以下のコマンドを実行してGitBucketを動かそう.
$ sudo systemctl restart tomcat8 $ sudo systemctl enable tomcat8 $ sudo systemctl restart httpd $ sudo systemctl enable httpd
正常に起動し,/var/lib/tomcat8/myapp/gitbucket
ディレクトリが作成されていることを確認したら,https://tomcat.your.domain/gitbucket/
にアクセスしてみよう.正常に設定できていればGitBucketのサインイン画面が出るはずだ.