Giteaを使ってローカルでGitHubライクサーバーを作成する

GitHubには上げたくなけど専用サーバーをつくるのしんどい方は必見

目次

対象者

  • 会社のデータなのでGitHubに上げることができない
  • 1人もしくは小規模でGitを使用する
  • 専用サーバー機を用意してまで大それたことはしたくない

作るきっかけ

現在のGitHubではプライベートリポジトリも無料でできますが、それでも社内ツールみないなものは上げたくないものです。
一応ローカルにリモートリポジトリを作成自体はできるのですが、単純にリポジトリがあるだけなのでGitHubみたいにイシューやプルリクのような便利なものはありません。
これを実現するにはGitLabみたいなのを使って専用サーバーをつくるできるのですが、それはしんどい。そんな大それたことはしたくない。。。
どうにか簡単にできないものかと調べていたところGiteaというものたどりついた
で、少しいじってみたか滅茶苦茶簡単に作れたのでぜひ広まって欲しいと思い記事にしました。

Giteaとは

特徴として

  • gitHubライクなサイトを作成できる→サンプル
  • ローカルサーバー内で完結できる
  • SQLite3に対応しているので手軽
  • 軽い。ラズパイでも余裕らしい。

があります。

恐らくこの手のもので一番有名なのはGitLabですが、あれはアカウントが必要でスペックも結構必要な感じで自分もあきらめていましたが、
これなら誰かがホストになればわざわざ専用サーバーを用意しなくてもよさそうな感じです。
手軽にできるので1人Gitしてる方にもオススメです

Giteaを使って構築してみる

1. 前準備

はここでは解説しませんが、各自やっておいてください。

2. GiteaをDLする

本題のGiteaほうですが、ここからDLしてください。
この記事を書いているときは1.13.5がCurrent Releaseだったのでこれのgitea-1.13.5-windows-4.0-amd64.exeを選びました。
DLできたらDBを保存するディレクトリに移動させてください。
ここではわかりやすくC:\giteaとして説明します。
またファイル名が長いのでgitea.exe にリネームしておきます

3. Giteaを起動してみる

といっても以下のコマンドを実行するだけです。
コマンドプロンプト

1cd C:\gitea
2gitea.exe ./gitea web

これだけでローカルサーバーに作成されています。
http://localhost:3000/にアクセスしてます。

たったこれだけでできてしました。簡単すぎる…

4. 初期設定を行う

右上の登録ボタンを押すと初期設定が行えます。
データベースはお手軽に扱えるSQLite3を選択、サイトタイトルやリポジトリパスはお好みで

複数のPCで使うのであればSSHサーバーのドメインはコンピューター名
GiteaのベースURLhttp://<コンピューター名>:3000/にしておくのが無難です。
コンピューター名は

1hostname

でわかります。

オプション設定ですが、ローカルで使うのであればメール設定とサーバーと外部サービスの設定の項目は飛ばしていいでしょう。
最後に管理者アカウントの設定でユーザー名、パスワード、メアドを設定してください。

giteaをインストールボタンを押します。 先ほど設定した管理者アカウントでログインできたら初期設定完了です。

あとはGitHubと同じように右上にある+ボタンでリポジトリ作成してみてテストしてみてください。
GitHubと同じ感覚でクローン、プッシュ、プルリクなどができます。
それと他のPCからアクセスできるかも試してください。
できない場合は大抵はファイアウォールのせいです。gitea.exeのローカルもしくはドメイン間だけ通信許可を出せば他のPCでも見れるようになると思います。
ローカルで使うならHTTPS化もしません。ローカルサーバに入られたり、ホストのPCになにか仕掛けられないかぎり問題なし。

なお、Gitのプロキシ設定で対象を指定せずに使うとGiteaのリポジトリにアクセスできません。
.gitconfigで特定のURLのみプロキシを通すようにします。

GitHubでのみプロキシを使う場合は以下のように書きます。

1[http "https://github.com/"]
2    proxy = プロキシURL
3[https "https://github.com/"]
4    proxy = プロキシURL

5. 自動的に起動させる

環境はできたけど毎回パソコン起動するたびに./gitea webとするのは面倒なので起動時に自動的に開始されるようにします。

といっても公式に記載しているとおりにやるだけです。

まず、C:\gitea\custom\conf\app.iniにあるファイルを開きRUN_USER =の値をコンピュータ名にします。

1RUN_USER = コンピュータ名

次にコマンドプロンプトを管理者で起動します ここで、gitea.exeがあるパスとapp.iniがあるパスを指定します。

1sc.exe create Gitea start= auto binPath= "\"C:\gitea\gitea.exe\" web --config \"C:\gitea\custom\conf\app.ini""
2rem [SC] CreateService SUCCESS

でSuccessが出たら登録完了です。 早速起動してみましょう。
「Windows」キーを押しながら「R」キーで「ファイル名を指定して実行」→services.mscの入力するとサービス一覧がでます。
そこから先ほど登録したGiteaの項目があるのでクリックして開始ボタンを押すと起動します。

これでいちいち./gitea webしなくても見れるようになりました。

ちなみに登録削除する場合は

1sc.exe delete Gitea 

です。

おわりに

ローカルでGitHubと同じ感覚でリポジトリが見れるのはやっぱりいいですね、しかもこっちはちゃっかり日本語化されてるし。
そしてこんなのが気軽に作れてしまう。最近は本当に便利な世の中だなと思う。