[GitBucket: note] GitBucket - GitHub clone Application on Tomcat. #git #gitbucket #tomcat
GitHub クローンなコンセプトの OSS な Git サーバ。日本人の @takezoe 様個人開発。Scala 製で Java VM 環境で動作するため Apache で動かす場合は Tomcat が必須。GitLab で良くね?とか言わない。
インストールは GITBUCKET_HOME/plugins
に .jar
おいて Tomcat 再起動で大体いける。
# java8 へアップデート
$ yum remove java-1.7.0-openjdk # 古いの削除
$ yum install java-1.8.0-openjdk
# tomcat7 のインストール
$ yum -y install tomcat7 tomcat7-webapps tomcat7-admin-webapps
# tomcat7 の時刻合わせ
$ vim /usr/share/tomcat7/bin/setenv.sh
> CATALINA_OPTS='-Duser.timezone=Asia/Tokyo'
> export CATALINA_OPTS
# Tomcat 管理画面ディレクティブを編集
$ vim /usr/share/tomcat7/conf/tomcat-users.xml
> <role rolename="manager-gui"/>
> <role rolename="admin-gui"/>
> <user username="ユーザー名" password="パスワード" roles="manager-gui,admin-gui"/>
# tomcat/webapps 配下へ gitbucket.war ぶち込む
$ cd /usr/share/tomcat7/webapps
$ wget https://github.com/gitbucket/gitbucket/releases/download/4.28.0/gitbucket.war
$ chmod -R 755 .gitbucket
$ chown -R tomcat:tomcat .gitbucket
$ service tomcat7 restart
# http://domain:8080/gitbucket/ へブラウザでアクセス
# 初回アクセス以降 gitbucket.war の存在するディレクトリ上に gitbucket / .gitbucket が生成される
Installation で説明したインストール方法では、ポート 8080 で Tomcat が直にアクセスを捌くことになる。この場合 SSL/TLS 対応の際に Tomcat に証明書をインストールする必要が生じる。
Apache から https://server-name.com/gitbucket
などで Tomcat 配下の ( /webapps
配下の ) アプリケーションにリクエストを流すには Apache から AJP ( Apache Java servlet Protocol ) を使ってプロキシ設定をする必要がある。
# 必要なモジュールがインストールされていることを確認
$ cat /etc/httpd/conf/httpd.conf | grep mod_proxy
> LoadModule proxy_module modules/mod_proxy.so
> LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
# プロキシ設定 ( 単純な Location 設定なのでこれだけで HTTPS もさばける )
$ vim /etc/httpd/conf/httpd.conf
> <Location /gitbucket >
> ProxyPass ajp://localhost:8009/gitbucket
> Order allow,deny
> Allow from all
> </Location>
# Tomcat の AJP 受けポートが解放されていることを確認
$ cd /usr/share/tomcat7/conf
$ cat server.xml | grep protocol=\"AJP/1.3\"
> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
# Tomcat のデフォルト受けポート ( 8080 ) を無効化
$ vim server.xml
> <!--
> <Connector port="8080" protocol="HTTP/1.1"
> connectionTimeout="20000"
> redirectPort="8443" /> -->
> -->
# gitbucket の base_url を変更
$ vim /usr/share/tomcat7/webapps/.gitbucket/gitbucket.conf
> base_url=http\://www.example.com/gitbucket
ssh -T ssh://git@登録してる ssh 用のドメイン
$ vim /usr/share/tomcat7/conf/catalina.properties
> gitbucket.maxFileSize=134217728
https://qiita.com/AkihiroTakamura/items/971cf758a813cc7d1ea5
情報が古いみたいで、今は GitHub Notifications (Legacy) を選択する必要あり。あとメンションを Slack 側につけるには <@name>
や <!channel>
みたいにやればイケる - 参考
$ cd /usr/share/tomcat7/webapps
$ service tomcat7 stop
# 既存のGitbucketをバックアップ
$ mv gitbucket.war gitbucket.war.bak
$ mv gitbucket gitbucket.bak
# 最新バージョンをダウンロード & 展開
$ wget https://github.com/gitbucket/~~/gitbucket.war
$ unzip gitbucket.war -d gitbucket
$ service tomcat7 restart