Gogs

提供: ArchWiki
移動先: 案内検索

関連記事

Gogs (Go Git Service) はセルフホスティング Git サービスです。Go プログラミング言語で書かれています。

パッケージ

  • gogsAUR - リリース版パッケージ。
  • gogs-gitAUR - Git の master ブランチ版パッケージ [1]
  • gogs-dev-gitAUR - Git の dev ブランチ版パッケージ [2]

上記のパッケージでは sqlite, redis, memcache が有効になります。使用するには、app.ini 設定ファイルを編集する必要があります (#設定を参照)。

インストール

AUR から Gogs をインストールすることで、手動でインストールする場合に設定する必要があることをほとんど自動で行ってくれます (例: ファイルのパーミッションや所有者の設定など)。

AUR から Gogs のパッケージをインストールする前に、Gogs と同じマシンにデータベースを作る場合、データベースバックエンドを選んでください:

SSH を使ってリポジトリを操作できるようにする場合、/etc/ssh/sshd_configAllowUsers エントリに gogs ユーザーを追加してください。

初期設定

gogs.service起動したら、http://[server]:3000 からサービスにアクセスできるようになります。初めてアクセスしたときは、インストールページに転送されます。インストールページでは様々な設定オプションを設定できます。他の設定は /srv/gogs/conf/app.ini 設定ファイルで変更できます (ポート番号など)。

設定

最初の起動時、Gogs は設定ファイルを /srv/gogs/conf ディレクトリに作成します。

.gitignore と license ファイル

/srv/gogs/conf/gitignore または /srv/gogs/conf/license ディレクトリにファイルを追加してください。ディレクトリが存在しない場合、最初に作成する必要があります。

.gitignore ファイルは こちらのページ から取得・作成できます。

データベース

SQLite

sqlite をインストールしてインストールページで SQLite を選択してください。

PostgreSQL

postgresql をインストールしてインストールページで PostgreSQL を選択してください。

# su - postgres -c
# createuser -P gogs
# createdb -O gogs gogs

MariaDB

mariadb をインストールしてユーザーとデータベースを設定してください:

# CREATE DATABASE `ishouldchangethisdatabasename` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
# CREATE USER 'ishouldchangethisusername'@'localhost' IDENTIFIED BY 'ishouldchangethispassword';
# GRANT ALL ON `ishouldchangethisdatabasename`.* TO 'ishouldchangethisusername'@'localhost';

インストールページでは mysql を選択して、設定したユーザーとパスワード、データベース名を入力してください。

ヒントとテクニック

テーマ

最新パッケージ (gogs-git* と gogs>=0.4.2) ではカスタムテーマに対応しています。Gogs のテーマを保存するディレクトリは /usr/share/themes/gogs/ です。Gogs にはデフォルトテーマが付属していますが、簡単にテーマを作成することができます。デフォルトの theme ディレクトリをコピーして自由に変更してください。public ディレクトリには javascript やスタイルシート、フォントファイルを保存し template ディレクトリには HTML テンプレートを保存します。app.ini の設定パラメータ STATIC_ROOT_PATH を変更することでテーマを選ぶことができます。新しいテーマの絶対パスに変更してください。

アップグレード後に再起動

Gogs はアップグレード後に再起動を必要とします。javascript や css アセットのパスが変更されウェブサイトが表示できなくなるためです。以下の pacman フックを /etc/pacman.d/hooks/gogs.hook として作成することで再起動を自動化できます:

[Trigger]
Type = File
Operation = Upgrade
Target = usr/share/gogs/gogs
[Action]
Description = Restart gogs...
When = PostTransaction
Exec = /usr/bin/systemctl try-restart gogs.service

SSH ポート

SSH サーバーのポートをデフォルトから変更している場合、クローン URL が醜くなります。ポート 22 を使用して gogs で独自の SSH サーバーを起動させることができます。

gogs バイナリから特権ポートの使用を許可:

# setcap CAP_NET_BIND_SERVICE=+eip /usr/share/gogs/gogs

/srv/gogs/conf/app.ini で gogs の SSH サーバーを設定:

START_SSH_SERVER       = true
SSH_PORT               = 22
SSH_LISTEN_PORT        = 22

参照