Git 管理に Forgejo
個人利用の Git 管理はセルフホストしたサービスを利用しています。
これまでは GitLab をセルフホストで利用していました。
新しく知った軽量ツールである Forgejo を使っていこうと思います。
Forgejo について

Forgejo – Beyond coding. We forge.
Forgejo は Git のホスティングツールです。
GitHub の代替というような位置づけで、以下のようにトップページでも説明しています。
Forgejo offers a familiar environment to GitHub users
また、以下のようにも謳われています。
Forgejo will always be Free and Open Source Software.
Forgejo は Gitea というサービスからフォークされたプロジェクトです。
元々 Gitea というオープンソースのプロジェクトがあったのですが、営利企業によって運営されるようになったタイミングでフォークされて Forgejo が生まれました。
という経緯もあって、Free で Open Source であることを強調しているのでしょう。
Codeberg launches Forgejo — Codeberg News
導入 & 移行
Installation with Docker | Forgejo – Beyond coding. We forge.
コンテナで導入するのが簡単と思います。
バイナリをインストールする方法もありますが、実行ユーザーである git ユーザーを作成したりする必要があります。
コンテナだとその辺はこみこみなので楽です。
Podman + Quadret で Systemd サービスとして運用するのが自分の定番になっています。
DB は SQLite も選択できます。
一人使いなので競合することもなく、全体の容量も少ないので SQLite を選択しました。
僕の場合はこれまで GitLab をセルフホストで運用してきました。
GitLab からの移行は簡単で Forgejo には移行のためのマイグレーションツールがあります。
いろいろなリポジトリからの移行ツールが用意されています。

GUI ツールでの移行はリポジトリごとに手動で行います。
Issue や Wiki も移行できます。
ただ、GitLab から移行した場合は Wiki は完全ではありませんでした。
GitLab では Wiki はメインページに紐づけたサブページというように階層にできるのですが、移行は上位のものだけしかできませんでした。
Forgejo は Wiki は階層にできないようで、GitLab と仕組みが違う部分は思ったように移行されない場合があるので注意が必要です。
Git のリポジトリは問題ありませんでした。
GitHub からと Forgejo からの移行も行いました。
GitHub からは Git リポジトリのみでしたが問題なしです。
なんと Forgejo から Forgejo への移行は認証のステップがうまくいかず移行できませんでした(もしかしたら何かの操作ミスかもしれませんが・・・Git リポジトリだけ移行しました)。
GitLab から移行した場合は CI/CD は作り直しになります。
GitLab と Forgejo はどちらも yaml での記述ですが書き方が異なります。
Forgejo Actions | GitHub Actions | Forgejo – Beyond coding. We forge.
もし、GitHub からの移行であるなら、変更は少なくて済むかもしれません。
Familiarity instead of compatibility (互換性より親しみやすさ)
Forgejo Actions is built on top of several existing technologies that were built to emulate GitHub Actions. For this reason, Forgejo Actions will seem very similar to GitHub Actions.
名前も Forgejo Actions で GitHub Actions とよく似ています。
使用感
使用感はすこぶる良いです。
動作が速いです。
GitLab から移行すると特に感じます。
機能はおおむね GitHub と同じです。
プライベートリポジトリでも Wiki が使えて、CI/CD も時間制限を気にせずに使えます。
メモリの使用量が驚きです。
これまで使用していた GitLab では 4 GB 以上が推奨でした。
僕は 2 GB の VPS でなんとか運用していました。
長く使っていると若干遅くなっているようで、GitLab のバージョンアップ後に再起動するとちょっと速く感じたりしていました。
という感じで 2 GB でぎりぎりやっていました。
Forgejo では感動の 65 MB です。
VPS はメモリ 1 GB のものにダウングレードしました。
(別の 1 GB の VPS に移行しました。これまで使っていた 2 GB の方の VPS は別の用途で使います。)
僕は DB は SQLite を選択しています。
GitLab では内部で PostgreSQL を使っています。
Forgejo でも DB に PostgreSQL などを選択した場合はメモリ使用量はもう少し増えるかもしれません。
バックアップ方法
コンテナで実行した場合は /data に紐づけたボリュームをバックアップすればよいです。
SQLite の場合は DB ファイルがここにありますし、設定ファイル app.ini もここにあります。
バックアップする際は競合を避けるために、念のため一度サービスを停止してから実行するのが良いようです。
一人使いであれば自分がアクセスしていなければ問題ないかというとそうでもなくて、裏では定期的にクリーンアップ処理が動いているようです。
まとめ
セルフホストで Git 管理されている場合は、Forgejo は十分検討に値するツールと思います。
リソース消費が格段に少なくて、コスト削減の可能性もあります。
僕は VPS をダウングレードできました。
機能は GitHub ライクなので移行もそれほどストレスなくできるのではないかと思います。
[過去記事]:GitLab 導入の話