CentOS7でGitBucketをホストする

  • LINEで送る

こんばんにちは

みなさんgitは使っていますでしょうか。

GitHubという有名なサービスがあり、そちらを使っている方も多いでしょう。
しかし、それらのサービスは無料だと機能制限がある場合がほとんどです。
また、あまり外のサービスに置きたくないようなファイルをgit管理したい場合もあるかもしれません。

そういった場合にgitサーバーを自分でホストすればいいと思います。

gitサーバー自体はUNIXシステム上でgitのパッケージをインストールして少し設定すれば機能するのですが、私が使いたいのはGitHubのようにブラウザからアクセスして使うようなGUIを持ったアプリケーションなので、
今回はGitBucketというものを使います。

 

続きをどうぞ

 


 

GitBucketとは

簡単に

こちらにある、OSSのGitHubクローンです。Scalaで書かれています。

インストールも簡単で、動作がとても軽いのが特徴です。

 

構成

GitBucket自体はwarファイルで、それをjavaで実行するだけで8080をリッスンしてくれるので、firewalldによってポート開放します。

 

今回の環境

今回サーバーとしてRaspberry Pi 3 Model Bを用います。

OSはRaspbianではなくCentOSです。

こちらの記事で作成した環境です。

raspi2 ~ % uname -r
4.14.52-v7.1.el7
raspi2 ~ % cat /etc/redhat-release
CentOS Linux release 7.5.1804 (AltArch)

 

JREインストール

ここではOpenJDKを使用します。

探します。

raspi2 ~ % yum search openjdk
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
=================================================================================== N/S matched: openjdk ===================================================================================
java-1.6.0-openjdk.armv7hl : OpenJDK Runtime Environment
java-1.6.0-openjdk-demo.armv7hl : OpenJDK Demos
java-1.6.0-openjdk-devel.armv7hl : OpenJDK Development Environment
java-1.6.0-openjdk-javadoc.armv7hl : OpenJDK API Documentation
java-1.6.0-openjdk-src.armv7hl : OpenJDK Source Bundle
java-1.7.0-openjdk.armv7hl : OpenJDK Runtime Environment
java-1.7.0-openjdk-accessibility.armv7hl : OpenJDK accessibility connector
java-1.7.0-openjdk-demo.armv7hl : OpenJDK Demos
java-1.7.0-openjdk-devel.armv7hl : OpenJDK Development Environment
java-1.7.0-openjdk-headless.armv7hl : The OpenJDK runtime environment without audio and video support
java-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.7.0-openjdk-src.armv7hl : OpenJDK Source Bundle
java-1.8.0-openjdk.armv7hl : OpenJDK Runtime Environment
java-1.8.0-openjdk-accessibility.armv7hl : OpenJDK accessibility connector
java-1.8.0-openjdk-demo.armv7hl : OpenJDK Demos
java-1.8.0-openjdk-devel.armv7hl : OpenJDK Development Environment
java-1.8.0-openjdk-headless.armv7hl : OpenJDK Runtime Environment
java-1.8.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.8.0-openjdk-javadoc-zip.noarch : OpenJDK API Documentation compressed in single archive
java-1.8.0-openjdk-src.armv7hl : OpenJDK Source Bundle
icedtea-web.armv7hl : Additional Java components for OpenJDK - Java browser plug-in and Web Start implementation

  Name and summary matches only, use "search all" for everything.
raspi2 ~ % yum info java-1.8.0-openjdk
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
利用可能なパッケージ
名前                : java-1.8.0-openjdk
アーキテクチャー    : armv7hl
エポック            : 1
バージョン          : 1.8.0.181
リリース            : 3.b13.el7_5
容量                : 228 k
リポジトリー        : updates/7/armhfp
要約                : OpenJDK Runtime Environment
URL                 : http://openjdk.java.net/
ライセンス          : ASL 1.1 and ASL 2.0 and BSD and BSD with advertising and GPL+ and GPLv2 and GPLv2 with exceptions and IJG and LGPLv2+ and MIT and MPLv2.0 and Public Domain and W3C
                    : and zlib
説明                : The OpenJDK runtime environment.

 
必要なのはruntimeのみなので、このパッケージだけでよさそうです。

インストールします。

raspi2 ~ % sudo yum install java-1.8.0-openjdk

 
インストールされたことを確認します。

raspi2 ~ % java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK Zero VM (build 25.181-b13, interpreted mode)

 

GitBucketインストール

GitBucket用にユーザーを作ります。

raspi2 ~ % sudo useradd gitbucket

 
ここから最新のurlを確認します。

wgetします。

raspi2 ~ % sudo wget -P ~gitbucket/ https://github.com/gitbucket/gitbucket/releases/download/4.28.0/gitbucket.war
raspi2 ~ % sudo ll ~gitbucket
合計 49256
-rw-r--r--. 1 root root 50436412  9月  1 09:44 gitbucket.war

 
起動用スクリプトを用意します。

raspi2 ~ % sudo -e /root/StartGitBucket.sh
raspi2 ~ % sudo cat /root/StartGitBucket.sh
#!/bin/sh

su - gitbucket -c "java -jar /home/gitbucket/gitbucket.war --gitbucket.home=/home/gitbucket/"
raspi2 ~ % sudo chmod 700 /root/StartGitBucket.sh

 
サービスとして登録してSystemctlで制御します。

raspi2 ~ % sudo -e /usr/lib/systemd/system/gitbucket.service
raspi2 ~ % cat /usr/lib/systemd/system/gitbucket.service
[Unit]
Description = GitBucket daemon

[Service]
ExecStart = /root/StartGitBucket.sh
Restart = always
Type = simple

[Install]
WantedBy = multi-user.target

 
Unitファイルが正常に認識されているか確認します。

raspi2 ~ % sudo systemctl daemon-reload
raspi2 ~ % sudo systemctl list-unit-files  --type=service | grep gitbucket
gitbucket.service                             disabled

 

GitBucket起動

systemctlを用いて起動します。

raspi2 ~ % sudo systemctl enable gitbucket
Created symlink from /etc/systemd/system/multi-user.target.wants/gitbucket.service to /usr/lib/systemd/system/gitbucket.service.
raspi2 ~ % sudo systemctl start gitbucket
raspi2 ~ % sudo systemctl status gitbucket
● gitbucket.service - GitBucket daemon
   Loaded: loaded (/usr/lib/systemd/system/gitbucket.service; enabled; vendor preset: disabled)
   Active: active (running) since 水 2018-09-12 22:31:53 JST; 7s ago
 Main PID: 4653 (StartGitBucket.)
   CGroup: /system.slice/gitbucket.service
           └─4653 /bin/sh /root/StartGitBucket.sh
...

 

ポート開放

firewalldにより、8080/tcpを開放します。

raspi2 ~ % sudo firewall-cmd --permanent --add-port=8080/tcp
success
raspi2 ~ % sudo firewall-cmd --reload
success
raspi2 ~ % sudo firewall-cmd --info-zone=public | grep ports
  ports: 22/tcp 60080/tcp 8080/tcp
  forward-ports:
  source-ports:

 

GitBucket設定

右上からSign inできるので、
Username: root
Password: root

でサインインし、一般ユーザーを作成したり設定を変更したりできます。
 

まとめ

今回は自宅のLAN内にあるラズパイに構築したので、SSL化とかセキュリティ対策がほぼ皆無ですが、

実際の環境ではnginx等でリバースプロキシしたり、しています。

ではでは

  • LINEで送る

SNSでもご購読できます。

コメントを残す

*