MySQL
FreeBSD
GitBucket
pkg
pkgng
FreeBSDDay 4

FreeBSDにGitbucketを構築

FreeBSD 11.2にGitbucketをインストールします。
Qiitaを検索するとtomcatを使った記事が何個かありましたが、
Gitbucketはtomcatのインストール無しで起動できるのでtomcat無しで構築します。
(ちなみにMySQL無しでもH2databaseで使えます)

環境

ソフトウェア バージョン
FreeBSD 11.2
MySQL 5.7.24
Gitbucket 4.29.0

最初はMySQL8で試みたがgitbucketの起動時に下記のエラーが出力されて無理だったのでMySQL5.7にしました

java.sql.SQLException: (conn=13) Failed to add the foreign key constraint. Missing index for constraint 'IDX_ISSUE_COMMENT_FK0' in the referenced table 'issue'

pkg を使う準備と必要な pkg をインストール

OSを素でインストールした直後からの手順です。全部rootで作業しています。

# pkg update
# pkg install -y openjdk8 mysql57-server ca_root_nss

ca_root_nss は fetch で gitbucket.war をダウンロードする時に必要(https)

MySQLのインストール&起動&rootユーザのパスワード設定

# sysrc mysql_enable="YES"
# /usr/local/etc/rc.d/mysql-server start
# mysqladmin password 'tekito-pass' -u root -p`tail -1 /root/.mysql_secret`

MySQLのgitbucket用DB&ユーザ作成

# mysql -u root -p'tekito-pass'
mysql> CREATE DATABASE gitbucket;
mysql> CREATE USER 'gitbucket_user'@'127.0.0.1' IDENTIFIED  BY 'gggppp';
mysql> GRANT ALL ON gitbucket.* TO 'gitbucket_user'@'127.0.0.1' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

GitbucketのDB用設定ファイルを作成

# mkdir -p /home/gitbucket
# cat /home/gitbucket/database.conf
db {
  url = "jdbc:mysql://127.0.0.1/gitbucket?useUnicode=true&characterEncoding=utf8"
  user = "gitbucket_user"
  password = "gggppp"
}

Gitbucketのダウンロード

# fetch -o /home/gitbucket/gitbucket.war https://github.com/gitbucket/gitbucket/releases/download/4.29.0/gitbucket.war

Gitbucketの起動

# /usr/local/bin/java -jar /home/gitbucket/gitbucket.war --port=8080 --gitbucket.home=/home/gitbucket/

これでWebブラウザから下記を開けばGitbucketが使えます
http://サーバのIPアドレス:8080/
※ユーザー:root、パスワード:rootでログイン可能

おわりに

実運用する人はgitbucket用のユーザーや起動用スクリプトなどを作成したほうが良いので下記を参考に...
https://blog.bixr.com/2014/11/795/