能書き
おうちサーバー構築報告:予告からのおうちサーバー構築。前回からForgejo関連作業をしています。
- ProxmoxVE(9.1.5)に仮想マシンを作成、PostgreSQL(18.4)をインストール
- Forgejoをバイナリインストール ←イマココ
- リバースプロクシを設定
- Forgejo Runner をインストールし、Forgejo本体と連携
- ForgejoでCI/CDを実験
- Mattermost(11.4.2)と連携
前提
- 我が家のサーバーマシンにProxmoxVE(9.1.5)をインストール
- Proxmoxコンテナ上にメールサーバー(Postfix)をインストール
- Proxmox仮想マシン上にPostgreSQL(18.4)をインストールしてForgejo用に設定
目標
- Forgejo本体をバイナリインストール
参考文献
下記が公式ページです。今回も公式ページ(の自動翻訳)を頼りに作業します。
- Installation from binary - Installation - Forgejo Administrator Guide
- Email setup - Setup - Forgejo Administrator Guide
- Logging Configuration - Troubleshooting - Forgejo Administrator Guide
事前準備
前回のPostSQL18.4、そのインストール先の仮想マシンと同じ所にForgejo本体(およびForgejo Runner)をインストールする事にします。
まずは念の為に、仮想マシンのスナップショットを撮っておきます。
- 該当仮想マシン(IPアドレス
172.16.1.104)を停止 - スナップショットを作成
- 仮想マシンを起動
Forgejoインストール
Dockerではなくてバイナリインストールとします。
ダウンロード
下記の手順でバイナリをダウンロードします。
cd
wget https://codeberg.org/forgejo/forgejo/releases/download/v15.0.3/forgejo-15.0.3-linux-amd64
chmod +x forgejo-15.0.3-linux-amd64
GPGの署名を確認
大丈夫と思いますが、一応は手順に従って、GPGの署名を確認します。
gpg --keyserver keys.openpgp.org --recv EB114F5E6C0DC2BCDD183550A4B61A2DC5923710
wget https://codeberg.org/forgejo/forgejo/releases/download/v15.0.3/forgejo-15.0.3-linux-amd64.asc
gpg --verify forgejo-15.0.3-linux-amd64.asc forgejo-15.0.3-linux-amd64
確認できたらダウンロードした署名ファイルは削除。
rm forgejo-15.0.3-linux-amd64.asc
バイナリを配置
/usr/local/binにバイナリを移動します。公式ではcpコマンドでしたが、mvでいいよね。
sudo mv forgejo-15.0.3-linux-amd64 /usr/local/bin/forgejo
sudo chmod 755 /usr/local/bin/forgejo
そしてgitコマンドをapt installする事になってますが、Ubuntu26.04では既にインストールされてるようなので省略。しかしgit-lfsの方は入ってない模様。インストールします。
sudo apt install git-lfs
git-lfsをインストールしたら/etcに何やら追加がありました。
sudo svn st /etc | grep "^?" | cut -b9- | sudo xargs -I{} find {} -type f -or -type d -or -type l | sudo xargs -t svn add
sudo svn ci /etc -m"installed git-lfs"
sudo svn up /etc
ユーザー作成
gitユーザーを作成。Forgejoはこのユーザーとして起動されるようです。
sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git
Subversionコミット。
sudo svn st /etc | grep "^?" | cut -b9- | sudo xargs -I{} find {} -type f -or -type d -or -type l | sudo xargs -t svn add
sudo svn ci /etc -m"adduser 'git'"
sudo svn up /etc
ディレクトリ作成
Forgejoが使用するディレクトリを作成し、アクセス権限を適切に設定します。
まずはForgejoがGitリポジトリを含むデータを格納するディレクトリです。
sudo mkdir /var/lib/forgejo
sudo chown git: /var/lib/forgejo
sudo chmod 750 /var/lib/forgejo
次にForgejoの設定ファイル置き場です。
sudo mkdir /etc/forgejo
sudo chown root:git /etc/forgejo
sudo chmod 770 /etc/forgejo
sudo svn st /etc | grep "^?" | cut -b9- | sudo xargs -I{} find {} -type f -or -type d -or -type l | sudo xargs -t svn add
sudo svn ci /etc -m"mkdir /etc/forejo"
sudo svn up /etc
systemdサービスを設定
forgejo.serviceをダウンロードします。
sudo wget -O /etc/systemd/system/forgejo.service https://codeberg.org/forgejo/forgejo/raw/branch/forgejo/contrib/systemd/forgejo.service
PostgreSQLを使用する場合はこれを修正する必要があるとの事。まずは修正前にSubversionコミットしてしまいましょう。
sudo svn st /etc | grep "^?" | cut -b9- | sudo xargs -I{} find {} -type f -or -type d -or -type l | sudo xargs -t svn add
sudo svn ci /etc -m"downloaded forgejo.service"
sudo svn up /etc
そして修正。
sudo EDITOR=vi systemctl edit forgejo --full
修正内容は下記の通りです。
$ sudo svn diff --diff-cmd diff -x -U0 /etc
Index: /etc/systemd/system/forgejo.service
===================================================================
--- /etc/systemd/system/forgejo.service (revision 8)
+++ /etc/systemd/system/forgejo.service (working copy)
@@ -15,2 +15,2 @@
-#Wants=postgresql.service
-#After=postgresql.service
+Wants=postgresql.service
+After=postgresql.service
修正できたらsystemdを再読み込み。
sudo systemctl daemon-reload
そうしたら有効化して起動します。
sudo systemctl enable forgejo
sudo systemctl start forgejo
systemctl status forgejo
起動に成功したら/etcをSubversionコミットします。
sudo svn st /etc | grep "^?" | cut -b9- | sudo xargs -I{} find {} -type f -or -type d -or -type l | sudo xargs -t svn add
sudo svn ci /etc -m"setting forgejo.service"
sudo svn up /etc
ブラウザで確認、そして設定
普段使いのブラウザでhttp://172.16.1.104:3000にアクセスします。
すると初期設定画面が表示されるので、指示に従って入力します。
- データベース設定
- 基本設定 (1/2)
- インスタンス名: Forgejo (デフォルトのまま)
- インスタンスのスローガン: Beyond coding. We Forge. (デフォルトのまま)
- リポジトリのルートパス:
/var/lib/forgejo/data/forgejo-repositories(デフォルトのまま) - Git LFSルートパス:
/var/lib/forgejo/data/lfs(デフォルトのまま) - 実行ユーザー名:
git(デフォルトのまま) - サーバードメイン:
172.16.1.104(デフォルトのまま)
- 基本設定 (2/2)
- SSHサーバーのポート: 22 (デフォルトのまま)
- HTTPポート: 3000 (デフォルトのまま)
- ForgejoのベースURL: http://172.16.1.104:3000/ (デフォルトのまま)
- ログの保存先パス:
/var/lib/forgejo/log(デフォルトのまま) - セルフ登録を無効にする: チェック (デフォルトのまま)
- アップデートチェッカーを有効にする: チェック (デフォルトのまま)
- オプション設定・メール設定
- SMTPホスト: 172.16.1.102 (我が家のメールサーバー)
- SMTPポート: 25 (我が家のメールサーバー)
- メール送信者: "Forgejo" noreply@forgejo.example.com (ドメインは自分で取得した物にしましょう)
- SMTPユーザー名: (空欄) (デフォルトのまま)
- SMTPパスワード: (空欄) (デフォルトのまま)
- 登録にはメールによる確認が必要: チェックを外す (デフォルトのまま)
- メール通知を有効にする: チェックを入れる
-
オプション設定・サーバーと外部サービスの設定
- すべてデフォルトのまま
-
オプション設定・管理者アカウントの設定
- 管理者ユーザー名: administrator
- メールアドレス: administrator@forgejo.example.com (ドメインは自分で取得した物にしましょう)
- パスワード: (強力なパスワード)
- パスワード確認: (強力なパスワードをもう一度入力)
入力できたら、画面下端の「Forgejoをインストール」ボタンをクリックします。
するとユーザー administrator でサインインしてダッシュボードが表示されます。言語は最初から日本語です。すごいな…
そうしたら/etc/forgejo/app.iniが自動生成されます。これをSubversionコミット。
sudo svn st /etc | grep "^?" | cut -b9- | sudo xargs -I{} find {} -type f -or -type d -or -type l | sudo xargs -t svn add
sudo svn ci /etc -m"created app.ini"
sudo svn up /etc
ログファイル出力
ログの出力設定をします。ファイルへ出力させましょう。その為の設定については公式に記述がありますが、よくわからないんですよね。とりあえず下記のようにしてみました。
sudo vi /etc/forgejo/app.ini
設定内容は下記。
$ sudo svn diff --diff-cmd diff -x -U0 /etc/forgejo/app.ini
Index: /etc/forgejo/app.ini
===================================================================
--- /etc/forgejo/app.ini (revision 10)
+++ /etc/forgejo/app.ini (working copy)
@@ -67 +67 @@
-MODE = console
+MODE = file
設定を修正したら再起動しましょう。
sudo systemctl restart forgejo
するとログが出力されます。
sudo ls -l /var/lib/forgejo/log
ログファイル名はgitea.logでした。forgejo.logじゃないんですね。
$ sudo ls -l /var/lib/forgejo/log
total 4
-rw-r----- 1 git git 3986 Jun 21 13:28 gitea.log
ともあれログファイルの出力が確認できたら、app.iniをSubversionコミットしましょう。
sudo svn st /etc | grep "^?" | cut -b9- | sudo xargs -I{} find {} -type f -or -type d -or -type l | sudo xargs -t svn add
sudo svn ci /etc -m"Forgejo log file mode"
sudo svn up /etc
仕舞い
ここまで出来たら、最初に撮っておいたスナップショットは削除しても大丈夫……かな。





