こんばんにちは
みなさん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等でリバースプロキシしたり、しています。
ではでは
コメント