1
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Raspberry pi 3 Model B+ にGogsをインストール(ラズパイ+Gitサーバ ー)

Last updated at Posted at 2018-10-29

GogsをRaspberry piにインストールします。
GitHubにアカウントを持っていますが、非公開リポジトリを作りたかった(Githubの非公開リポジトリは有料プラン)のでラズパイにgitをインストールしてリポジトリを作成したいと考えました。
それならBitbucketでいいじゃん!ってなるかもしれませんが、使っていなくて放置されたラズパイがあったのでGogsをインストールしてGitサーバーにしてみました。

環境
Raspberry Pi 3 Model B+
OSバージョン: Raspbian GNU/Linux 9.4 (stretch)
Gogsバージョン: 0.11.66 

なぜGogs?

ローカルのGitと言えば、Gitlabが有名ですが以下の3点でGogsにしました。

動作が軽い

1番の大きな理由として動作が軽いことです。Gogsをインストールする前はGitlabを使用していました。しかし、以下が難点でした。

  1. メモリ使用量が90%が普通の環境
  2. ブラウザで長いコードを読み込むとき時間がかかる

こちらで各ローカルリポジトリのGitソフトウェアを使ってベンチマークを調べた記事があります。自分のラズパイ環境でも90%以上ものメモリ使用率を誇っていたので、Gitlabだけで他の用途に使えなくなってしまうことがイマイチでした。また、ラズパイに負担がものすごいので、ブラウザでコード読み込むのも時間が掛かりました。
それに比べてGogsは比較対象の中でも動作の軽さが光っています。

日本語対応

GithubでもGitlabでも言語は英語で使用するのが一般的ですが、Gogsは日本語対応のGitソフトなので分かりやすい!

インストールが簡単

これは人によるかもしれませんが、Gitlabをインストールした時は手順通りにやってもエラーが多発しつまずくことが多かったです。しかし、Gogsはまとめられたバイナリがありますので、少ないコマンド数でWebブラウザからすぐにアクセスできる環境まで持っていくことができます。

インストール

こちらのバイナリダウンロードサイトからラズパイ上のコマンドラインで以下のように最新版のGogsをダウンロードしてきます。
※予め、ラズパイがインターネットに繋がっている必要があります。

端末
$ wget https://dl.gogs.io/0.11.66/gogs_0.11.66_raspi2_armv6.zip

また、MySQLが必要なのでインストールします。

端末
$ sudo aptitude install mysql-server

インストール後、MySQLのrootユーザーでログインしたら、gogsのデータベースを作成しておきます。(必須)

端末
> CREATE DATABASE IF NOT EXISTS gogs CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

ダウンロードしたgogsのzipを解凍し、ディレクトリ移動した後にデーモンを実行すると以下のように出力します。

端末
$ unzip gogs_0.11.66_raspi2_armv6.zip 
(省略)
$ cd gogs/
$ ./gogs web
2018/10/02 20:16:32 [ WARN] Custom config '/home/pi/gogs/custom/conf/app.ini' not found, ignore this if you're running first time
2018/10/02 20:16:32 [TRACE] Custom path: /home/pi/gogs/custom
2018/10/02 20:16:32 [TRACE] Log path: /home/pi/gogs/log
2018/10/02 20:16:32 [TRACE] Build Time: 2018-09-16 05:04:22 UTC
2018/10/02 20:16:32 [TRACE] Build Git Hash: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2018/10/02 20:16:32 [TRACE] Log Mode: Console (Trace)
2018/10/02 20:16:32 [ INFO] Gogs 0.11.66.0916
2018/10/02 20:16:32 [ INFO] Cache Service Enabled
2018/10/02 20:16:32 [ INFO] Session Service Enabled
2018/10/02 20:16:32 [ INFO] SQLite3 Supported
2018/10/02 20:16:32 [ INFO] Run Mode: Development
2018/10/02 20:16:34 [ INFO] Listen: http://0.0.0.0:3000

Listen: http://0.0.0.0:3000と表示されますので、ラズパイのブラウザのURLから入力してアクセスすると以下のように表示されると思います。
image.png

MySQLのrootパスワードだけ入力し次に進むと、エラーがなければ以下のように「サインイン」が表示されます。「アカウントが必要ですか?今すぐ登録しましょう!」をクリックしてアカウント登録し、サインインしてください。
image.png

サインインに成功しますと、Gogsのホーム画面が表示されますので、これでGogsが使えるようになります。
おめでとうございます!
image.png

クライアントPCからアクセス

ラズパイのファイアウォールでhttpまたはポート80番を有効にします。
その後、ラズパイとネットワークに繋がっているクライアントPCからラズパイのIPアドレスでアクセスすると以下のように表示され、利用することができるようになります。
image.png

常時使えるようにする

デーモンが動いている途中でラズパイを再起動してしまうと、再度アクセスできなくなってしまい、また./gogs webを実行するということを行う必要があります。
それは流石にメンドくさいのでログイン後デーモンを動かせるように.profileの末尾に記述しておきます。

.profile
(省略)
cd gogs/
./gogs web

主なエラー

ブラウザ
データベースの設定が正しくありません:dial tcp 127.0.0.1:3306: connect: connection refused

MySQLが正しくインストールされていないか、設定が間違えている可能性が高いです。

1
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?