注意書き

本サイトでは、アフィリエイト広告およびGoogleアドセンスを利用しています。

dockerによるforgejoサービスの起動

インフラストラクチャ

GitリポジトリをホスティングするものとしてGitHubは有名ですが、ローカルの環境にちょっとだけサービスを立てたいという場面もそこそこあるものです。このときの定番と言えば GitLab が候補に挙がりますが、他にもまだ候補となるサービスはあります。

以前は Gitea というものをオススメできるものとしていたのですが、最近少し事情が変わったようで、Giteaから派生した forgejo というものがあるようです。こちらはMITライセンスの元開発を続けた版との位置づけのようです。

スポンサーリンク

Forgejo とは

GiteaからフォークしたMITライセンスで開発を続けているプロダクトです。Giteaが利潤追求を目的に「Gitea Limited」という企業を発足したところに起因して、開発者がフォークを始めたというのが発端のようです。

基本的にはGiteaにそっくりで、データの移行もできるように見えます。

Forgejo – Beyond coding. We forge.
Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.

Docker でサービスを立ててみる

いくつかのLinuxディストリビューション向けに、バイナリインストールができるようなマニュアルが用意されています。しかし、ここでは Docker コンテナとしてサービスを稼働させることにトライします。またデフォルトではSQLiteによるデータベースを使うようですが、小規模環境でも実用になるようにMySQLをデータベースとして使うようにしてみます。

Docker Composeによるサンプル記述もマニュアルに記載されています。が、ここではMySQL分も有効にした、以下のComposeファイルを用意しました。ひとまずこれで私は起動しましたが、実際の運用場面では適切に変更する必要があると思いますので、そのあたりはよしなによろしくお願い致します。

networks:
  forgejo:
    external: false

services:
  forgejo:
    image: codeberg.org/forgejo/forgejo:7.0.5-rootless
    ports:
      - "3000:3000"
      - "10022:22"
    environment:
      USER_UID: 1000
      USER_GID: 1000
      TZ: Asia/Tokyo
      FORGEJO__database__DB_TYPE: mysql
      FORGEJO__database__HOST: forgejo-db:3306
      FORGEJO__database__NAME: forgejo
      FORGEJO__database__USER: forgejo
      FORGEJO__database__PASSWD: forgejo-pw
    networks:
      - forgejo
    volumes:
      - ./forgejo:/data
    depends_on:
      - forgejo-db

  forgejo-db:
    image: mysql:8
    expose:
      - "3306"
    environment:
      MYSQL_ROOT_PASSWORD: forgejo
      MYSQL_DATABASE: forgejo
      MYSQL_USER: forgejo
      MYSQL_PASSWORD: forgejo-pw
      TZ: Asia/Tokyo
    volumes:
      - ./mysql:/var/lib/mysql
    networks:
      - forgejo
    user: "1000:1000"

なお公式のDockerにインストールするためのマニュアルについては、 https://forgejo.org/docs/latest/admin/installation-docker/ に記載されています。

初回起動時

これで初回起動すると、サービスの設定画面が出現します。基本的には、上記に記した Compose ファイルの内容が反映されていますが、ssh ポートについてはその限りではありません。上記の Compose ファイルに従うのであれば、forgejoコンテナでは 22 番ポートにしておいて、外部からは 10022 で受け付けるという感じにします。

設定項目を埋めたら画面末尾のボタンを押して、インストールの続行・設定の完了を行います。

今回使用している環境は Windows の Docker Desktop を使ったものです。Ubuntu on WSL2 の上で Docker を構築しているような場合では、また少し変わった状態になるかもしれません。

初回ユーザー登録

設定が完了すると、以下のような画面になります。ここで初回のユーザー登録をおこないます。サインアップのタブに変えて、ユーザーを作成しましょう。パスワードには8文字以上が必要になるなど条件があるので注意です。

アカウントが作成されると、以下のような画面に遷移します。

試しに稼働させた執筆時点の状況では、Gitea のサービスにそっくりです。

その他

Giteaはラズパイでもホスティングできる、という話題がありました。おそらくこのForgejoも同様にホスティング可能です。Giteaにも Gitea ActionsとあったようにForgejoにもActionsがあるようなので、小規模なCI/CDが簡単にできるようなのもよいですね。

これらについては、また試してみたいと思います。

created by Rinker
Raspberry Pi
¥10,256 (2024/12/03 07:35:31時点 Amazon調べ-詳細)

コメント

タイトルとURLをコピーしました