Gitリポジトリのホスティングサービスを自分の環境に導入するには、いくつかの選択肢がある時代となりました。中でも GitBucket は単一のファイルを配置するだけで済み、自分の中では最強だったのですが、今回 Gitea というものの存在を知ったので確かめてみることにしました。
インストール
まずは Gitea を入手します。ここでは一番手軽に試すために、 Windows 版を用います。 他にも Linux や macOS, そして、 Docker, Vagrant といったコンテナでも動作するように準備がされているので、多くの場面で使うことが出来そうです。
Gitea は https://gitea.io/en-us/ で配布されています。分かりにくいのですが、 Downloads のページにある、その時点での新しいものを使えばよいと思います。インストールのマニュアルは https://docs.gitea.io/en-us/install-from-binary/ を参照してください。
この記事時点では、 gitea-1.9.6-windows-4.0-amd64.exe を使っています。
適当なディレクトリ(c:\gitea)に、ダウンロードしたファイルを gitea.exe と名前を変えて置きます。そして、PowerShell を開き、 以下のコマンドを実行します。
PS> Set-Location c:\gitea
PS c:\gitea>.\gitea.exe web
このとき、git.exe がパスの通った場所に配置されていることが必要です。
git.exe が見つからない場合以下のエラーが発生します。
panic: Git not found: exec: "git": executable file not found in %PATH%
goroutine 1 [running]:
code.gitea.io/gitea/modules/git.init.0()
/go/src/code.gitea.io/gitea/modules/git/git.go:83 +0x294
Git for Windows のインストール時にパスを追加している場合には問題ないでしょうが、そうでない場合には設定が必要です。ここでは PATH にgit.exeが見つかるように設定をしています。
PS> $env:Path += ";C:\Git\bin"
うまく起動が開始されると以下の画面に示すようにログが流れ、 http://0.0.0.0:3000/ で待ち受けていることが確認出来ます。(ここでは d:\gitea に配置したときの状態で撮影しました。)
この起動が確認出来た後で、 http://localhost:3000/ にブラウザでアクセスすると以下の画面が表示されます。
セットアップ
表示された画面のサインインをクリックすると初期設定の画面に入ります。
使用するデータベースサーバーの設定では,一番手軽な SQLite3 を選択します。複数人で使用するなどの状況であればMySQL など本格的なDBサーバーにすると良いと思います。
基本的に初期状態で各種パスが書かれていると思いますが、ほとんどが大事なパラメータとなっています。簡単に説明するので、各自の環境に合わせて再設定してください。
- リポジトリのルートパス
- Git リポジトリが格納される場所です。
- Git LFS ルートパス
- Git の LFS オブジェクトが格納される場所です。大きなファイルサイズのものが配置されるのでストレージには余裕のある場所が良いですね
- 実行ユーザー名
- gitea を実行するユーザーです。Windowsだとログインしているユーザーにしておきます
(サービス実行時はまた別に設定することになるでしょう)
- gitea を実行するユーザーです。Windowsだとログインしているユーザーにしておきます
- SSH サーバーのドメイン
- 本Giteaを動作させているPCのIPアドレスを指定しておきます
- SSHサーバーのポート
- 問題がなければデフォルトのまま22を指定するか、SSH使わないのであれば空欄にしておきます。
- Gitea HTTP ポート
- サーバーのポートです。デフォルトだと3000となっています。
- 通常の HTTP サーバーのように使うのであれば 80 にしておきます。
- GiteaのベースURL
- git で clone のURLとメール通知で使われるURLです。
- ポートを80以外にしている場合は、 http://your.domain.com:3000/ などとポート名を含めて記述します。
- ログの保存先パス
- ログファイルの出力先です。
オプション設定としてメール通知を使う場合にはメールサーバー(SMTP)の設定ができます。
また、サーバーと外部サービスの設定では以下の画面で示す通り細かな設定が可能です。
最後に「管理者アカウントの設定」より、アカウントを設定します。ここでアカウントを作らない場合には、最初に登録したユーザーが管理者として設定されます。(以下の画面はサンプルです)
ここまで設定したら、Gitea をインストールのボタンを押します。少し時間が掛かりますが、セットアップが進行します。このときの様子は PowerShell のコンソール画面をみていると状況が確認出来ます。
完了すると以下の画面に遷移して、ログインできるようになっています。
設定に失敗したら
設定に失敗した場合、状態が不安定になっていることがあるようです。管理者情報が中途半端に設定されていたり、再設定したらポートが反映されていなかったり等。
このような場合には、データベースを一度クリアして、各種フォルダをクリーンな状態にして最初からやり直すと簡単です。SQLite を使う場合にはファイルを消すだけなのでさらに手軽です。
ポート番号が変えられなかった場合にも遭遇しました。 ログイン画面に遷移しようとして3000番のまま動いているのでそこで失敗します。このときには一度 Gitea を終了させて、再起動すると反映されているようです。
リポジトリの作成
GitHub を使っている人には説明するまでもないですが、右上の+の箇所から新しいリポジトリを作成します。
リポジトリ作成画面です。
このあたりは GitHub そっくりですね。
Issue トラッカーやプルリクエストの機能もあるので、簡単に使い始められそうです。
システムの話など
起動直後の様子では以下の通り、コンパクトなメモリ使用量でした。リポジトリを追加していってどこまで増えていくのかについては今後の経過観察が必要ですが、予想よりは省メモリとなっており助かりそうです。
これくらいのメモリで動作するのであれば、本当にラズベリーパイ(Raspberry Pi)に入れてシステムを動かせそうに感じました。 Raspberry Pi 4 はメモリ4GB版もありますしね!
まとめ
他にも Gitea には LDAP や PAMなどの認証系が揃っていたり、 Web Hook の機能もあったり、 Git LFS にも対応できていたりと、機能としては揃っている感じがあります。
Git Bucket からこちらに乗り換えて、使っていってみようと思います。
参考にしたところ: https://celtislab.net/archives/20200205/gitea-windows/