とても便利な GitHub ですが、使い込むとこういった壁にぶち当たりました。
- 無料だとプライベートリポジトリで権限つきプルリクできない…
- 有料でも、LFS の容量が少なすぎる…
- 大きなフォルダを一気にプッシュすると、curl エラーが出てプッシュできない…
LFS .. ローカルファイルストレージ。動画や音声などの大きなファイルは Git 管理すると膨大な大きさになるため、別に分けて管理するための器。
確かに上2つはお金を無尽蔵に使えば解消しますし、下1つも小分けにコミットすればどうにかなりますが、「お金を無尽蔵」って部分はちょっと戸惑ってしまいますね。
ユーザーが増えれば増えるほど金額は重たく、嵩む経費はバカになりません。
最小モデル(例えば LFS 100G 程度積んだ Proライセンスを1人、他の人は無料とか…)でよければ、GitLab より安価に GitHub を運用できるかもしれませんが…。
そんな時、GitLab による管理体制に移行すれば、従量課金ではなく固定料金で Git を運営することが可能です。
GitLab とは
GitLab を使うことで、GitHub と同じような Web 操作環境を自分のサーバーで運用することができます。
gitlab.com の事ではありません。ご注意を。
操作が全く同じではありませんが、GitHub を使ったことがある人であれば、大体直感的に使えるんじゃないでしょうか。
ただ、Linux サーバーの運用なので、経験ない人にとってはちょっと敷居が高いですよね。
そこで Conoha VPS + Xserver Domain を使い、Web 上でポチポチするだけでドメインつきでリポジトリを管理できる方法を紹介します。
Conoha VPS や Xserver Domain 以外でも勿論構わないのですが、Web 上でポチポチ…とはいかないかもしれません。また、この構成は 2021/12 現在安価ですが、今後どうなるかはわかりません。
Conoha VPS を契約
以下の画面は既に Conoha アカウントを持っている人の契約画面ですが、とりあえず 4Core 4GB の VPS で契約しましょう。
それ以下のスペックにすると、GitLab が遅延したり、動作不安定になるようです。
分かった上で安価にしたい…という人以外にはオススメできません。
1GB で試したところ、1日中 502 エラーになったりしていました…。
OS
私は Cent OS 7 にしてみましたが、Ubuntu などでもおそらく問題ないかと思います。
アプリケーション
GitLab を選択してください。表示されていなければ、「他のアプリケーションを見る」ボタンを押してください。

↓

root パスワード
コンソールでルートログインするために必要なので、必ず記憶しておいてください。
(今回の記事は一度もコンソールを使うことはありません)
ネームタグ
Conoha 上の名前です。好きなようにつけて構いません。
全て設定し終わったら「追加」ボタンを押し、料金支払い画面に進みます。
GitLab の起動を確認する

契約が完了したら、このような画面になります。
作成に多少時間はかかるので、ゆっくりと待ちましょう。
左メニューのサーバー > ネームタグのリンク > ネットワーク情報
を開きます。

IP アドレス(オレンジ枠部分の数値)を、Web ブラウザに直接入力し、エンター。

このような画面が表示されていたら無事アクセス完了です!(GitLab 初回起動は root ユーザーのパスワード設定になります)
999.99.99.99 の部分にネットワーク情報の IP アドレスが入ります。
この IP アドレスは次のドメイン設定でも使うので、記憶しておきましょう。
万が一 GitLab のエラー画面が出た場合、ちょっと時間を置いてアクセスしてみましょう。
数時間経ってもアクセスできない場合は契約時の設定に問題があったかのもしれません。
IP 間違ってた、なんて赤面のミスもありがち
ドメイン設定を行う
このままでも運用可能ですが、できれば IP アドレス直打ちではなく、わかりやすい名前に変えたいですね。
ドメイン登録を Xserver Domain で行い、GitLab サーバーと紐づけを行いましょう。
Xserver Domain でドメインを契約する

まず、取得したいドメインが使われていないか確認しましょう。
ドメインは最後の修飾子(.com の部分)によって価格が違います。
また、ドメインは取得時の価格と更新価格(1年ごと)が違います。ここも忘れず確認しましょう。
確認が面倒であれば .com が取得、更新も含めて安価だと思います(2021/12現在)。

画面をスクロールし、「取得手続きに進む」をクリック

エックスサーバーは「利用しない」
また画面をスクロールさせ、「取得手続きに進む」をクリック

アカウントをもっていなければ「XServer アカウントの登録」。登録情報は記憶しておくこと
アカウントが既にあるなら「ログイン」

02~04 まで、指示通りに進めてください。
無事登録完了すると、以下の画面になります。

画面下までスクロールし、ログイン
Conoha VPS でドメイン登録

左メニュー DNS > 右上ドメイン
。Xserver Domain で設定したドメイン名を入力し、保存

〉をクリックして開く > +を押す
タイプ / 名称 / TTL / 値 を入力して「保存」
①~③の値(ネームサーバーアドレス)は Xserver Domain で使うので、覚えておいてください。
Xserver Domain で Conoha のドメインとリンクする

Xserver Domain にログイン
先ほどログインしたままであれば、この操作は不要です。

左メニューからネームサーバー設定を選択
「その他サービスで利用する」を選び、ネームサーバー1~3に先ほどの①~③のアドレスを入れる確認画面へ進む > 設定を変更する
反映されるには、時間がかかる
これで設定完了です!
が、実際にドメイン名でアクセスできるようになるまで数時間かかると思います。
私は3時間ほどで接続を確認しましたが、ドメインアクセスに要する時間は最大2~3日だそうです。
ドメインは、世界中のサーバー PC がリレーをして設定値を行き渡らせる必要があります。
そのため、自分がアクセスできても、世界の裏側の人はまだアクセスできない事もあります。
追記:ポチポチだけだと済まなかった設定(推奨)
GitLab の標準設定はやたらとメモリを要求する状態なのですが、これは 100 ユーザー程度を見越しているそうです。
10人くらいで使う場合はその設定が仇となり、安いサーバーでの使用を困難にします。
今回の推奨 4GB スペックでも、突然動作がもっさりしたり、500 エラーが表示されることがありました。
そうならないように、/etc/gitlab/gitlab.rb の設定値を調整します。
コンソールにログインし、vi などで編集しましょう。
vi は特殊なエディタだけど、「/」「i」「x」「:q!」「:wq」くらいを覚えていたらなんとか使えるはず
4GB、4コアのサーバーで適切そうな値にしています。
$ [login]
$ vi /etc/gitlab/gitlab.rb
/worker_processes で検索。コメントになっていると思うので、解除
unicorn['worker_processes'] = 3
/shared_buffers で検索。コメントになっていると思うので、解除
postgresql['shared_buffers'] = "512MB"
参考記事
こちらの記事が大変参考になりました。