FreeBSD に GitBucket をインストール
無線 LAN AP を構築したら,転がってた USB 無線 LAN のアダプターを使ったせいか設定が悪かったのか,半日ぐらいすると発熱でハングアップしていたので,こましなアダプターが見つかるまで保留することにする.
気を取り直して,ファイルサーバーを構築しようと思ったのだが,Samba も 4.3.0 と 4.2.4 リリース直前だったのでリリース後入れることにする.最近は,ソースからインストールが億劫な歳に差し掛かってきたので,Ports がでるまで待つことにする.(9/8 にリリースされました.)
そこで,GitHub のクローンを構築をしようと思い,GitBucket をインストールすることにした.Java ベースは個人的に重いイメージがあるので,GitLab の方が好みではあるけど,アップデートの手間を考えて GitBucket を選択する.
Tomcat 8
この辺は,サクッと Package でインストールする.
(root で作業)
# pkg install tomcat8
# rehash
インストールが終われば,service tomcat8 onestart
で Tomcat を起動する.
http://ip-address:8080
で動作しているか確認する.(pf でポート 8080 を止めている場合,アクセスできないので 8080 を許可する)
service tomcat8 onestop
で Tomcat を停止する.
起動時にサービスが起動してほしいので,/etc/rc.conf
に下記内容を追加する.
tomcat8_enable="YES"
GitBucket
ここから,「gitbucket.war」をダウンロードする.
# cd /usr/local/apache-tomcat-8.0/webapps
# curl -O https://github.com/takezoe/gitbucket/releases/download/3.6/gitbucket.war
Proxy 環境では,curl -x http://user:password@proxy:port -O url
としてダウンロードする.
FreeBSD の tomcat のユーザは,www
で,ホームディレクトリが /nonexistent
で存在しないので,GitBucket のデータを保存するディレクトリを指定する必要がある.(参考)Qiita
/usr/local/apache-tomcat-8.0/bin/
に setenv.sh
を作成して,GITBUCKET_HOME
を指定する.
# mkdir /home/gitbucket
# chown www:www /home/gitbucket
# vi /usr/local/apache-tomcat-8.0/bin/setenv.sh
# chmod +x /usr/local/apache-tomcat-8.0/bin/setenv.sh
#!/bin/sh
export GITBUCKET_HOME=/home/gitbucket
Tomcat を起動すると,webapp
に置いた gitbucket.war
が配備されるで,Tomcat を起動して動作を確認する.
service tomcat8 start
データを初期化したければ,/home/gitbucket
を削除すればよい.
SSH で接続するのに System Settings
の SSH access
を有効にするときに,SSH Port
を指定するが,GitBucket が独自に sshd サーバを起動するので,sshd サーバのポートと別のポートを指定する.(pf でポートを制限している場合は,このポートもアクセス許可する)
トラブル
ある環境において ssh からの git clone
がうまくいかない.
Unable to negotiate with xx.xx.xx.xx: no matching host key type found.Their offer: ssh-dss fatal:
のようなメッセージが出て,ssh で接続出来ないので,調べてみるとOpenSSH の 7.0 から DSA(ssh-dss) の脆弱性により無効にされたことが原因のようです.
将来的には GitBucket もRSAに対応してくれると思うのですが,一時的な対応としてクライアント側で対応します.
~/.ssh/config
で特定ホストに対して,ssh-dss の認証を有効にする.
Host GitBucketのホスト名(or IP)
HostKeyAlgorithms ssh-dss
後は,Apache
か Nginx
と連携させてSSLの対応もしたいのだけど,どちらのサーバを利用するか決めていないので決まるまで持ち越しです.
アップデート
(2016/03/04)久しぶりにアップデートしたらトラブったのでメモを更新します.
Gitbucket 3.12 が出ていたので,gitbuket.war を置き換えて更新してみたら,404 が表示されました><;
Gitbuketのリリース情報を確認すると,3.11 から Java 8 が要求されてましたので、さっそく更新します.
# service tomcat8 stop
# pkg set -o java/openjdk7:java/openjdk8
# pkg delete openjdk
# pkg install -Rf www/tomcat8
# service tomcat8 start
でアクセスすることができたが,上記トラブルで書いた RSA の対応がされたようで,~/.ssh/config
の設定を削除します.一応,~/.ssh/known_hosts
の該当するサーバの行も削除しました.