今まで仕事で使用してきたバージョン管理システムはSubversion(SVN)がほぼすべてで、現在OSSで欠かせないGitは未経験。今のプロジェクトはその辺好きにして良いとのことなので、Gitを使うことにしました。
とは言え、オンライン上にソースを置けるわけでもないため、GitHubでもBitbucketでもなく、GitBucketでローカルなGit環境を構築することにしました。

完成目標

次のような感じに使えるように環境を構築します。
  • ローカルネットワーク内のコンピューター複数台からMac miniのホスト名でアクセスする
  • Mac miniの電源さえ入っていればGitBucketが利用できるようにする
  • GitBucketのデータ一式を置く場所(ディレクトリ)は指定する
今回特別なのが後2点。通常、OS起動後、何かしらのユーザーでログインしてからアプリケーションを立ち上げると思いますが、今回用意したMac miniはサーバ専用機ではなく開発兼用機で、かつ利用ユーザーも固定されていません。なので、いわゆる「デーモン(Windowsで言えばサービス)」としてGitBucketを起動させ、利用ユーザーに依存しない環境を構築します。で、データ一式はデフォルトではユーザーのホームディレクトリに置かれるのですが、前述の理由のためユーザーに依存しない場所に置きます。

今回利用するソフトウェアのバージョンは下記の通りです。
  • macOS High Sierra
  • GitBucket 4.21.2
  • Oracle Java Development Kit 8 update 162
macOS向けのGitBucketはHomebrewでインストール可能ですが、今回は手動インストールです。また、GitBucket 4.21.2はJava 8が必要なので、Oracleからダウンロードしたものをインストールしてあります。

ホスト名の設定

自分の備忘も兼ねて。
macOSではコンピュータ名とホスト名が別々に設定できます。片方の変更だけでは漏れが生じますので、意図通りの設定ができているかちゃんと確認しましょう。
ホスト名の変更はシステム環境設定の「共有」から行います。表示されたダイアログで設定できるのはコンピュータ名です。ホスト名を変更するにはコンピュータ名の入力欄右下にある[編集]ボタンを押下してください。すると「ローカルホスト名」の入力欄が表示されるので、そこに希望のホスト名を入力してください。なお、末尾の「.local」は消せないようです。

入力後、[OK]ボタン押下して共有ダイアログに戻り、共有ダイアログを閉じてください。接続テストとして、LAN内の他PCから設定したホスト名でpingを打つと良いかもしれません。

GitBucketの手動インストール

GitBucketの実行ファイルである「gitbucket.war」はGitBucketのサイトよりダウンロードしてください。

ダウンロードしたgitbucket.warは、/opt/gitbucketに配置します。このディレクトリは既存のものではないので、以下のコマンドでディレクトリを作成します。
$sudo mkdir /opt
$sudo mkdir /opt/gitbucket

次いでデータ一式を置くディレクトリ。こちらは/var/gitbucket/reposとします。これらも既存ではないので、以下のコマンドでディレクトリを作成します。
$sudo mkdir /var/gitbucket
$sudo mkdir /var/gitbucket/repos

ここまでできたら、デーモンへの登録をする前に動作確認をします。ターミナルから次のコマンドを実行してください。
$java -jar /opt/gitbucket/gitbucket.war --gitbucket.home=/var/gitbucket/repos

つらつらとログが表示された後、プロンプトに戻らなければ起動成功です。ブラウザからhttp://[設定したホスト名(.local含む)]:8080/にアクセスすると、次の画面が表示されると思います。
確認できたら、ターミナルでControl+Cを打ってGitBucketを終了します。

GitBucketのデーモンへの登録

macOSのデーモンへの登録は、所定のディレクトリにアプリケーション専用のplistファイルを配置し、launchctlコマンドで登録します。

今回作成するplistファイルのファイル名は「gitbucket.plist」としてください。そして、下記内容を入力してください。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>gitbucket</string>
    <key>ProgramArguments</key>
    <array>
      <string>java</string>
      <string>-jar</string>
      <string>/opt/gitbucket/gitbucket.war</string>
      <string>--gitbucket.home=/var/gitbucket/repos</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
  </dict>
</plist>

保存したファイルは/Library/LaunchDaemons/にコピーしてください。

コピーしたら、あとはデーモンに登録するだけです。
デーモンへ登録するには、次のコマンドを実行してください。
$sudo launchctl load /Library/LaunchDaemons/gitbucket.plist

これでデーモンへの登録と同時に、デーモンとしてGitBucketが起動します。ブラウザで先ほど確認を行ったURLに再びアクセスしてください。同じ画面が表示されるはずです。また、Mac Miniからログアウトした状態、もしくは再起動してユーザーが未ログインの状態でも、他PCから同アドレスにアクセスするとGitBucketが利用できるはずです。
なお、デーモンの登録解除を行う場合は、次のコマンドを実行してください。
$sudo launchctl unload /Library/LaunchDaemons/gitbucket.plist


謝辞

今回、下記のサイトを参考にさせて頂きました。この場を借りてお礼申し上げます。