目次

19 Gitea

弊社では社内のGitリポジトリサーバーとしてGitLabコンテナを運用しています。

しかし、コンテナのロードから動作開始まで2分程度かかる(※)ことから、Go言語で書かれた軽量なGitリポジトリサーバーGiteaコンテナをテスト目的で導入してみました。

※コンテナの起動時に問題になるだけで一度起動してしまえば問題ありません。

Containerfile(Dockerfile)

DockerfileはGitHubのgiteaプロジェクトを参照してください。

systemd service

[Unit]
Description  = gitea

[Service]
Type         = forking
ExecStartPre = /usr/bin/rm -f /%t/%n-pid /%t/%n-cid
ExecStart    = /usr/bin/podman run -d --name=gitea \
                 --conmon-pidfile=/%t/%n-pid --cidfile=/%t/%n-cid \
                 --pod=container-pod \
                 -e USER_UID=1000 -e USER_GID=1000 \
                 -v /var/giteadata:/data \
                 -v /etc/localtime:/etc/localtime:ro \
                 docker.io/gitea/gitea:latest
ExecStop     = /usr/bin/sh -c "/usr/bin/podman rm -f `cat /%t/%n-cid`"
KillMode     = none
ExecStartRestart = always

[Install]
WantedBy     = default.target

最低限の設定内容を記載しています。
9行目
nginx(openresty)コンテナと連携するpodを指定しています。

nginx設定

     :
http {
     :
  server {
     :
    server_name  git.example.jp;
     :
    location / {
     :
      proxy_pass http://127.0.0.1:3210/;
    }
     :
  }
}

最低限の設定内容を記載しています。
10行目
既定の設定ではポートが3000なのですが、grafanaのポートと重複しているため3210に変更しています。

Gitea初期設定

Gitea用に用意した永続化ディレクトリ/var/giteadata内を空にして、gitea.serviceを起動します。

正常に起動したら、そのまますぐにgitea.serviceを終了させます。

Giteaの設定ファイル/var/giteadata/gitea/conf/app.iniが作成されていますので内容を編集します。

@@ -12,13 +12,14 @@
 
 [server]
 APP_DATA_PATH    = /data/gitea
-DOMAIN           = localhost
-SSH_DOMAIN       = localhost
-HTTP_PORT        = 3000
-ROOT_URL         = 
+DOMAIN           = git.example.jp
+SSH_DOMAIN       = git.example.jp
+HTTP_PORT        = 3210
+ROOT_URL         = https://git.example.jp/
 DISABLE_SSH      = false
-SSH_PORT         = 22
-SSH_LISTEN_PORT  = 22
+START_SSH_SERVER = true
+SSH_PORT         = 222
+SSH_LISTEN_PORT  = 222
 LFS_START_SERVER = false
 LFS_CONTENT_PATH = /data/git/lfs

9行目, 10行目
リポジトリホスト名です。
11行目, 12行目
nginxの設定に合わせます。
16行目
SSH_LISTEN_PORTの設定を有効にします
17行目, 18行目
podのポートマッピング設定に合わせます。

Giteaの設定ファイルの編集を終えたら、再びgitea.serviceを起動します。

ブラウザで設定ファイルのROOT_URLに設定したURLにアクセスするとGiteaのトップ画面が表示されます。

server:fedora-coreos:containers:gitea0101.png
左上の『エクスプローラー』をクリックします。

server:fedora-coreos:containers:gitea0102.png
必要項目を入力します。

スクロールして『Giteaをインストール』をクリックするとインストールが完了します。