AWSにForgejo構築

kuwaharu,git

Forgejoとは

ChatGPTによる解説

Forgejoは、軽量でセキュリティを強化したオープンソースのGitリポジトリ管理ツールで、特に低スペックな環境(例:Raspberry Pi)でも動作します。Giteaをベースにしており、以下の特徴があります:

  • 軽量でリソース消費が少ない
  • プライバシーとセキュリティを強化
  • 簡単にインストール・セットアップでき、無料で使用可能
  • Gitリポジトリ管理、コードレビュー、CI/CDが可能
  • 個人や小規模チームに最適です。

構築方法

AWSのアカウントの作成済みであるという前提で始めます。

私は学校の方で招待してもらったAcademy Learner Lab環境で試しました。そのため、アカウント作成後の無料枠内でできると思います。

VPC、セキュリティグループの作成

マネジメントコーンソールの左上の検索にVPCと入力し、VPCダッシュボードを開きます。VPCを作成をクリックし、VPCなどを選択、だいたいデフォルトのままで大丈夫ですが、name tagをMy-VPC-01にして、 アベイラビリティゾーン (AZ) の数は1に、VPCエンドポイントは無しにしました。

VPCの設定詳細を表示
  • 作成するリソース: VPCなど
  • 名前タグの自動生成: チェックを入れてMy-VPC-01と入力
  • IPv4 CIDR ブロック: デフォルト(10.0.0.0/16)
  • IPv6 CIDR ブロック: デフォルト(IPv6 CIDR ブロックなし)
  • テナンシー: デフォルト
  • アベイラビリティゾーン (AZ) の数: 1
  • パブリックサブネットの数: 1
  • プライベートサブネットの数: 1
  • サブネット CIDR ブロックをカスタマイズ: デフォルトのまま
  • NAT ゲートウェイ: なし
  • VPC エンドポイント: なし
  • DNS オプション: 二つとのチェックを入れる(デフォルト)

下にスクロールするとあるVPCの作成をクリックしてVPCを作成します。

次にEC2用のセキュリティグループを作成します。

VPCダッシュボードの左側のセキュリティの項目にセキュリティグループがあるのでクリックします。右上にセキュリティグループを作成があるのでそれをクリックします。

右下のセキュリティグループを作成をクリックします。

EC2の作成

左上の検索欄にec2と入力し、EC2ダッシュボードを開きます。

インスタンスを起動をクリックします。

インスタンスを起動をクリックするとEC2インスタンスが起動します。

EC2ダッシュボードに戻り、左のインスタンスをクリックすると先ほど作成したインスタンス画表示されます。

左のチェックボックスをクリック後、下にパブリックIPv4アドレス画表示されるので先ほどEC2作成時に作ったkeyを使ってSSHで接続します。(ユーザ名はubuntuです。)

Forgejoの構築

ダウンロード

公式ドキュメント (opens in a new tab)を参考に進めます。

※次のコマンドはこの記事執筆時の安定バージョンをダウンロードするものです。公式ドキュメントから現在のバージョンを確認してください。

ダウンロード

wget https://codeberg.org/forgejo/forgejo/releases/download/v11.0.0/forgejo-11.0.0-linux-amd64
chmod +x forgejo-11.0.0-linux-amd64

検証

gpg --keyserver keys.openpgp.org --recv EB114F5E6C0DC2BCDD183550A4B61A2DC5923710
wget https://codeberg.org/forgejo/forgejo/releases/download/v11.0.0/forgejo-11.0.0-linux-amd64.asc
gpg --verify forgejo-11.0.0-linux-amd64.asc forgejo-11.0.0-linux-amd64

インストール

公式ドキュメント (opens in a new tab)を参考に進めます。

DNSの設定

ドメインを取得していない場合は、ドメイン管理サービスでドメインを取得してください。

利用しているドメイン管理サービスのDNS管理で新しくAレコードを追加します。

タイプ名前値(IPv4アドレス)TTL
A設定したドメイン名EC2のパブリックIPv4アドレス自動

メモ: cloudflareで設定する時、プロキシをONにするとSSHが使えなくなる。

リバースプロキシ(Nginx)の構築・設定

Let’s EncryptでHTTPS化

以上で構築完了になります。

次はCI/CDができるようにForgejo runnerの設定もできたらと思っています。

間違っている箇所、不明点がありましたらX (opens in a new tab)のDMにお願いします。