ElementaryOS 0.4: Gitウェブフロントエンドのcgitをインストールする

cgitをインストールする手順を記載します。

1 cgitをインストールする

cgitパッケージをインストールします。

  • この記事ではhttpsの為にデフォルトのSSL/TLS証明書を使っています。別にSSL/TLS証明書を用意している場合はそちらをお使いください。
  • httpではなくhttpを使用する場合は、/etc/apache2/conf-available/cgit.confにて、443を80にしてSSLXXXのディレクティブを削除してください。
  • SCAN_PATHは/etc/cgitrcで設定するscan-pathの値です。
#!/bin/sh

set -e

[ -z "${SCAN_PATH}" ] && SCAN_PATH=${HOME}/repo

cgit_install()
{
  sudo apt install -y cgit
  echo "scan-path=${SCAN_PATH}" | sudo tee -a /etc/cgitrc
}

apache_install()
{
  sudo apt install -y apache2
  sudo cp /etc/apache2/conf-available/cgit.conf \
       /etc/apache2/conf-available/cgit.conf.orig
  cat <<EOF | sudo tee /etc/apache2/conf-available/cgit.conf
<VirtualHost _default_:443>
  SSLEngine on
  SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
  SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

$(sed -e 's/^/  /g' /etc/apache2/conf-available/cgit.conf.orig)
</VirtualHost>
EOF
  sudo a2enmod cgid
  sudo a2enmod ssl
  sudo a2enconf cgit
  sudo systemctl restart apache2
}

create_repo()
{
  mkdir -p "${SCAN_PATH}"/test.git
  cd "${SCAN_PATH}"/test.git
  git init --bare
}

cgit_main()
{
  cgit_install
  apache_install
  create_repo
}

cgit_main

2 テスト用のリポジトリを作成する

scan-pathに設定したディレクトリでリポジトリを作成します。

$ mkdir -p "${SCAN_PATH}"/test.git
$ cd "${SCAN_PATH}"/test.git
$ git init --bare

3 cgitへアクセスする

以下のURLへアクセスします。

https://<server>/cgit

先ほど作成したリポジトリが表示されます。

0001_cgit.png