
Gitサーバー「Forgejo」を Ubuntu 26.04 環境に導入してみよう
皆様こんにちは。tamです。
今回は、Gitサーバー「Forgejo」を、Ubuntu 26.04 環境でお試し構築してみたお話です。
バージョンについて
公式リリースサイクル
https://forgejo.org/docs/latest/admin/upgrade/#release-life-cycle
最新安定板(Latest Release)
リリースから3カ月間、バグ修正やセキュリティ修正を含むフルサポートが提供されます。
次の安定版のリリース後も2週間は並行してサポートされます。
長期サポート(LTS:Long Term Support)版
毎年第1四半期(1〜3月)に公開される、安定性を最優先したバージョンです。
1年3ヶ月の間、致命的なバグ修正とセキュリティサポートが継続されます。
実験(開発)版
次期リリースに向けた最新機能が盛り込まれている開発中のバージョンです。
予期せぬ不具合が含まれる可能性があるため、本番環境での使用は推奨されません。
リリーススケジュール
公式リリーススケジュール
https://forgejo.org/docs/latest/admin/release-schedule/
執筆時点では15.xがLTSとなっており、EOLは2027/7/15です。
上記を踏まえ、今回はv15.0.3 を導入しました。
PostgreSQL 18 のセットアップ
SQLiteでも動作しますが、今回はPostgreSQLを採用することにしました。
早速インストール開始します。
root@forgejo:~# apt search ^postgresql-[0-9]
postgresql-18/resolute-updates,resolute-security 18.4-0ubuntu0.26.04.1 amd64
The World's Most Advanced Open Source Relational Database
root@forgejo:~# apt install postgresql-18
続けて、Forgejo用のロールとデータベースを作成します。
root@forgejo:~# su - postgres
postgres@forgejo:~$ psql
postgres=# CREATE ROLE forgejo WITH LOGIN PASSWORD '<任意のパスワード>';
CREATE ROLE
postgres=# CREATE DATABASE forgejo OWNER forgejo;
CREATE DATABASE
postgres=# \q
接続テストを実施すると…
root@forgejo:~# psql -U forgejo forgejo
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: Peer authentication failed for user "forgejo"
残念ながら接続不可とのこと。
pg_hba.confを確認してみます。
root@forgejo:~# cat /etc/postgresql/18/main/pg_hba.conf
(略)
local all all peer
host all all 127.0.0.1/32 scram-sha-256
host all all ::1/128 scram-sha-256
local接続がpeer認証になっているのが原因でした。
postgresユーザーの認証方式はそのまま残しつつ、local all allの行だけscram-sha-256に変更し、PostgreSQLを再起動します。
root@forgejo:~# systemctl restart postgresql
再度接続テストを行い、パスワード認証で接続できることが確認できました。
root@forgejo:~# psql -U forgejo forgejo
Password for user forgejo:
psql (18.4 (Ubuntu 18.4-0ubuntu0.26.04.1))
Type "help" for help.
forgejo=> \d
Did not find any relations.
DB周りの作業はここまでです。
Forgejo本体のインストール
公式リリースページから、選定したv15.0.3のLinux amd64バイナリを取得します。
root@forgejo:~# wget https://codeberg.org/forgejo/forgejo/releases/download/v15.0.3/forgejo-15.0.3-linux-amd64
取得したバイナリを配置し、実行権限を付与します。
root@forgejo:~# cp forgejo-15.0.3-linux-amd64 /usr/local/bin/forgejo
root@forgejo:~# chmod 755 /usr/local/bin/forgejo
Forgejoの動作にはgitが必須のため、git-lfsも含めてインストールしておきます。
root@forgejo:~# apt install git git-lfs
Forgejo専用のシステムユーザーを作成します。
ログインシェルは運用上の都合で /bin/bash を指定しています。
root@forgejo:~# adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git
リポジトリなどの実データを保存するディレクトリを作成し、gitユーザーに所有権を渡します。
root@forgejo:~# mkdir /var/lib/forgejo
root@forgejo:~# chown git:git /var/lib/forgejo
root@forgejo:~# chmod 750 /var/lib/forgejo
設定ファイル用のディレクトリも作成します。
gitグループには書き込み権限を与えつつ、所有はrootのままにしています。
root@forgejo:~# mkdir /etc/forgejo
root@forgejo:~# chown root:git /etc/forgejo
root@forgejo:~# chmod 770 /etc/forgejo
※この権限については後ほど再設定を行います。
続いてsystemdサービスの登録を行います。
Forgejo公式が用意しているsystemdのユニットファイルを取得します。
root@forgejo:~# wget -O /etc/systemd/system/forgejo.service https://codeberg.org/forgejo/forgejo/raw/branch/forgejo/contrib/systemd/forgejo.service
ユニットファイルを配置したら、systemdに設定を読み込ませます。
root@forgejo:~# systemctl daemon-reload
Forgejoを起動する
root@forgejo:~# systemctl start forgejo
3000ポートでブラウザアクセスすると初期設定画面が見えます。
http://<IPアドレス>:3000
ここでPostgreSQLのホストやユーザー名、パスワード、データベース名などを入力。
また最初のユーザーかつ管理者アカウントの作成を行います。
色々と入力したら「Forgejoをインストール」ボタンを押します。
これを行うことで/etc/forgejo/app.iniが作成されます。
今後はWebUIで変更することはないのでパーミッションを変更しておきます。
root@forgejo:~# chmod 750 /etc/forgejo
root@forgejo:~# chmod 640 /etc/forgejo/app.ini
ここまででForgejoの導入は「一応」完了です。
これで新しいリポジトリや組織を作成することができますし、Gitサーバーとして動作します。
ただし、この状態では色々と問題があります。
問題点
- httpsでなくhttp
- メールやWebhookでの通知が行われない
- リポジトリを作ると公開される
- ログファイルが残らない
上記の問題点のほとんどは設定ファイルに追記または編集することで対応が可能です。
https化についてはForgejo単体でも可能ですが、前段にApache2を入れてForgejoをバックエンドで動かした方が汎用性が高くなるかと思います。
まとめ
今回はUbuntu 26.04 + PostgreSQL 18という比較的新しい組み合わせで、Forgejo v15.0.3のインストールと初期動作確認までを行いました。
PostgreSQLのpeer認証で少しつまづきましたが、大きなトラブルもなく最初の一歩となる「起動」までたどり着けました。
実際のところ、ここまでの作業自体はそれほど難しいものではなく、手順通りに進めれば意外と簡単です。
ただし、今回ご紹介したのはあくまで「素」の状態でのインストールまでです。
実際に運用に乗せるには、https化やメール・Webhookの設定など、環境や要件に応じて手を加える必要があります。
まずは気軽に「起動」までやってみて、そこから先はご自身の環境に合わせて設定を進めてみて下さい。





