Gitea。GitHubライクなコードホスティングサービスを自前で気軽に立ち上げられる
GitHubライクなコードホスティングサービスを自分で立ち上げられるOSS「Gitea」を導入してみた。

軽量なコードホスティングサービス Gitea
Gitでファイル管理やバージョン管理をしたいんだけど、GitHubに登録するほどでもないんだよなぁ、と思うものが時折出てくる。
自分ひとりのGitレポジトリだし、ローカルだけで完結してもいいんだけど、いざというときのためにどこか別の場所に保管しておければ安心感は高まるというもの。
Gitのリモートレポジトリを作るだけなら、特に何もインストールしなくても、単なるGitレポジトリをネットワーク上でアクセスできるように置いておけばいいだけなんだけど。
管理の面を考えると、WebのUIがあった方が便利だ。
古くはGitLabなど、ローカルで立ち上げられるGitHubのようなものはあったのだけれど、あの辺りも割と複雑怪奇なものになっている気がしていて (機能的にも、インストールやメンテをする点でも)、今更ああいうのを作る気にもならず。
そういうものを手軽に置いておける場所を自分で作れないかと探していたら、Giteaにたどり着いた。
Giteaはどうも比較的新しく作られたものみたいで、Go言語で書かれているらしく、軽量でインストールも簡単らしい。Dockerでインストールできるそうだ。
そういうことならと、ひとまずインストールしてみることにしたのだった。
なお、我が家にはミニPCで作ったLinuxサーバが稼働しており、こういうのを見つけたら気軽に試せるようにしている。今回も、そのLinuxサーバにインストールした。
Gitea を Docker Compose でインストール
公式サイトのドキュメントに Docker Compose で Gitea をインストールする例があったから、それをちょいなちょいなと書き換えて使うことにする。といっても、ポート番号をうちの環境に合わせて書き換えただけだ。
作った docker-compose.yml はこんな感じ。
networks:
gitea:
external: false
services:
server:
image: docker.gitea.com/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
restart: always
networks:
- gitea
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "8090:3000"
- "222:22"
あとはこれでコンテナを立ち上げてやれば・・・
docker compose up -d
あっという間に使えるようになってしまった。
なお、Giteaはデータベースを使用するようになっていて、この例だと SQLite を使うことになる。
他には MySQL や PostgreSQL を使用することもできる。その例は公式サイトのドキュメントにあるから参考にしたらいいだろう。
まずは立ち上げて使ってみたいだけだし、SQLiteで行ってみる。まあ、おそらく私の運用ではそれで困るようなこともなさそうだから、そのまま本運用になりそうだが。
Gitea を初期設定
Dockerコンテナが立ち上がったら、Webブラウザでアクセスする。先の設定だと、
http://<server-ip>:8090
になる。<server-ip>のところは自分で読み替えるべし。
はじめてアクセスすると、初期設定画面が出てくる。

最初の項目に「データベースのタイプ」を選ぶところがあるが、そこは SQLite3 だ。
あとの項目は、基本的にそのままでいい。サイトタイトルを変えるくらいだろう。
初期設定が完了したら、ログイン画面が出てくる。
ここで最初に作ったユーザが、サイトの管理者ユーザになるそうだ。これは初期設定画面のオプションの中、一番最後のオプションで管理者ユーザを作るものがあり、そちらに記載がある。もちろん、初期設定画面で管理者ユーザを作っておいてもいいだろう。

Gitea でGitプロジェクト管理
ログイン後の画面は、GitHubを使ったことがあるならだいたい使えるんじゃないかと思う。私も早速1つレポジトリを作ってみて、ローカルに作っていたレポジトリを push してみた。

おお。本当にアレっぽい。
ざっと見た感じ、日本語化もきれいなものだし、イシューやプルリクの管理もできるし、Wikiも作れるし。一通りの機能は揃っていると思う。しかも、軽量というだけあって、画面がめちゃくちゃ軽い。動作がキビキビしている。
なんか、外部公開する必要ないなら、もうこのGiteaでいいんじゃないかという気がしてきた。
GitHubだと ssh key を設定するとかが微妙に面倒だったりするし。いや、基本的には最初に1回やればいいだけなんだけどね・・・私はLinuxサーバが何台かあったり、ちょいちょい再インストールしたりするから、その都度、設定し直す必要があるのが面倒なんだよなぁ、という超個人的な理由から面倒くさがっている。
おわりに
GitHubライクなコードホスティングサービスを「Gitea」で立ち上げてみた。
簡単にインストールできて、それでいて必要な機能は十分にありそうな予感がする。キビキビと軽快に動作するのがまた気持ちいい。
普段遣いはこのGiteaにしておいて、バックアップ的な感じでGitHubを使うのでもいいんじゃないかという気がしてきたくらいだ。
これはいいプロダクトな雰囲気がヒシヒシとしてきたから、しばらく使って検証してみるとしよう。