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を使用していました。しかし、以下が難点でした。
- メモリ使用量が90%が普通の環境
- ブラウザで長いコードを読み込むとき時間がかかる
こちらで各ローカルリポジトリの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から入力してアクセスすると以下のように表示されると思います。
MySQLのrootパスワードだけ入力し次に進むと、エラーがなければ以下のように「サインイン」が表示されます。「アカウントが必要ですか?今すぐ登録しましょう!」をクリックしてアカウント登録し、サインインしてください。
サインインに成功しますと、Gogsのホーム画面が表示されますので、これでGogsが使えるようになります。
おめでとうございます!
クライアントPCからアクセス
ラズパイのファイアウォールでhttpまたはポート80番を有効にします。
その後、ラズパイとネットワークに繋がっているクライアントPCからラズパイのIPアドレスでアクセスすると以下のように表示され、利用することができるようになります。
常時使えるようにする
デーモンが動いている途中でラズパイを再起動してしまうと、再度アクセスできなくなってしまい、また./gogs web
を実行するということを行う必要があります。
それは流石にメンドくさいのでログイン後デーモンを動かせるように.profile
の末尾に記述しておきます。
(省略)
cd gogs/
./gogs web
主なエラー
データベースの設定が正しくありません:dial tcp 127.0.0.1:3306: connect: connection refused
MySQLが正しくインストールされていないか、設定が間違えている可能性が高いです。