「Gogs」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
(→‎SSH: 同期)
 
(4人の利用者による、間の12版が非表示)
1行目: 1行目:
[[Category:バージョ管理シテム]]
+
[[Category:Git ウェブイターフェイス]]
 
[[en:Gogs]]
 
[[en:Gogs]]
 
{{Related articles start}}
 
{{Related articles start}}
5行目: 5行目:
 
{{Related articles end}}
 
{{Related articles end}}
 
[http://gogs.io/ Gogs] (Go Git Service) はセルフホスティング Git サービスです。[[Go]] プログラミング言語で書かれています。
 
[http://gogs.io/ Gogs] (Go Git Service) はセルフホスティング Git サービスです。[[Go]] プログラミング言語で書かれています。
 
== パッケージ ==
 
 
* {{AUR|gogs}} - リリース版パッケージ。
 
* {{AUR|gogs-git}} - Git の {{ic|master}} ブランチ版パッケージ [https://github.com/gogits/gogs]
 
* {{AUR|gogs-dev-git}} - Git の {{ic|dev}} ブランチ版パッケージ [https://github.com/gogits/gogs/tree/develop]
 
 
上記のパッケージでは sqlite, redis, memcache が有効になります。使用するには、{{ic|app.ini}} 設定ファイルを編集する必要があります ([[#設定]]を参照)。
 
   
 
== インストール ==
 
== インストール ==
   
[[AUR]] から Gogs をインストールすることで手動でインストールする場合に設定する必要があることをほとんど自動で行ってくれます (例: ファイルのパーミッションや所有者の設定など)
+
Gogs パッケージ (開発バージョンの場合は {{AUR|gogs}} または {{AUR|gogs-git}}) [[インストール]] する前にGogs をホストする予定がある場合は、データベースバックエンドを選択する必要があます。:
 
[[AUR]] から Gogs のパッケージをインストールする前に、Gogs と同じマシンにデータベースを作る場合、データベースバックエンドを選んでください:
 
   
 
* SQLite: {{Pkg|sqlite}} - Gogs で SQLite を使用する方法は [[#SQLite]] を見てください。
 
* SQLite: {{Pkg|sqlite}} - Gogs で SQLite を使用する方法は [[#SQLite]] を見てください。
 
* PostgreSQL: {{Pkg|postgresql}} - [[PostgreSQL#PostgreSQL のインストール]]を読んでセットアップして[[デーモン]]を起動してください。Gogs で PostgreSQL を使用する方法は [[#PostgreSQL]] を見てください。
 
* PostgreSQL: {{Pkg|postgresql}} - [[PostgreSQL#PostgreSQL のインストール]]を読んでセットアップして[[デーモン]]を起動してください。Gogs で PostgreSQL を使用する方法は [[#PostgreSQL]] を見てください。
 
* MariaDB: {{Pkg|mariadb}} - [[MariaDB#インストール]]を読んでセットアップして[[デーモン]]を起動してください。Gogs で MariaDB を使用する方法は [[#MariaDB]] を見てください。
 
* MariaDB: {{Pkg|mariadb}} - [[MariaDB#インストール]]を読んでセットアップして[[デーモン]]を起動してください。Gogs で MariaDB を使用する方法は [[#MariaDB]] を見てください。
  +
  +
各パッケージには、サービスのバックエンド/ストレージを構成するための複数のオプションが用意されています。[[#設定]] を参照してください。
   
 
SSH を使ってリポジトリを操作できるようにする場合、{{ic|/etc/ssh/sshd_config}} の {{ic|AllowUsers}} エントリに {{ic|gogs}} ユーザーを追加してください。
 
SSH を使ってリポジトリを操作できるようにする場合、{{ic|/etc/ssh/sshd_config}} の {{ic|AllowUsers}} エントリに {{ic|gogs}} ユーザーを追加してください。
28行目: 20行目:
 
== 初期設定 ==
 
== 初期設定 ==
   
{{ic|gogs.service}} を[[起動]]した、{{ic|http://[server]:3000}} からサービスにアクセスできるようになります。初めてアクセスしたときは、インストルページ転送されます。インストールページでは様々な設定オプションを設定できます。他の設定は {{ic|/srv/gogs/conf/app.ini}} 設定ファイルで変更できます (ポート番号など)
+
{{ic|gogs.service}} を [[起動]] したURL {{ic|http://[server]:3000}} 経由で実行中のサービスにアクセスできます。のロド時、いくつかのオプションを設定できンストーページにリダイレクトされます。
  +
  +
初期設定ページを使用して行われた変更を保存できるようにするには、設定ディレクトリ (root が所有) の権限を (一時的または永続的に) 変更する必要があります。次に例を示します:
  +
  +
# chown -R gogs:gogs /etc/gogs/
  +
  +
また、{{ic|gogs.service}} が {{ic|/etc/gogs}} の内容を変更できるように [[ドロップインファイル]] を作成する必要もあります:
  +
  +
{{hc|/etc/systemd/system/gogs.service.d/writable-etc.conf|2=
  +
[Service]
  +
ReadWritePaths=/etc/gogs
  +
}}
  +
  +
次に、[[daemon-reload]] を実行し {{ic|gogs.service}} を [[再起動]] します。インストール後、セキュリティを向上させるためにこれらの変更を元に戻すことができます。
  +
  +
設定ファイル {{ic|/etc/gogs/app.ini}} では、さらに多くの値 (ポート番号など) を変更できます。
   
 
== 設定 ==
 
== 設定 ==
   
  +
Gogs 設定ファイルは {{ic|/etc/gogs/app.ini}} にあります。設定オプションを編集する場合は、変更を有効にする前に、このファイルを編集し、Gogs サービスを再起動する必要があります。
最初の起動時、Gogs は設定ファイルを {{ic|/srv/gogs/conf}} ディレクトリに作成します。
 
  +
  +
=== SSH ===
  +
  +
ssh を使用して git リポジトリと通信し、アップロードされた公開キーを使用できるようにするには、次の手順を実行します:
  +
  +
* {{ic|/etc/gogs/app.ini}} の {{ic|SSH_ROOT_PATH}} を {{ic|/var/lib/gogs/.ssh}} に設定します ([https://github.com/gogs/docs/blob/master/en-US/advanced/configuration_cheat_sheet.md ドキュメント]) を参照し、{{ic|DISABLE_SSH}} が {{ic|false}} であることを確認します。
  +
  +
* {{ic|/etc/ssh/sshd_config}} の {{ic|AllowUsers}} に {{ic|gogs}} を追加します。
  +
  +
* {{ic|/var/lib/gogs/.ssh}} を作成し、所有権を {{ic|gogs}} ユーザーに譲渡します:
  +
> mkdir -p /var/lib/gogs/.ssh
  +
> chown -R gogs:gogs /var/lib/gogs/.ssh
  +
  +
公開鍵は、{{ic|gogs}} ユーザーによって {{ic|/var/lib/gogs/.ssh/authorized_keys}} に追加されます
  +
  +
{{AUR|gogs}} をインストールすると、{{ic|gogs}} ユーザーは {{ic|/sbin/nologin}} シェルを持つことになるため、{{ic|/bin/bash}} シェルを追加する必要があります:
  +
# usermod -s /bin/bash gogs
   
 
=== .gitignore と license ファイル ===
 
=== .gitignore と license ファイル ===
44行目: 68行目:
 
==== SQLite ====
 
==== SQLite ====
   
{{Pkg|sqlite}} をインストールしインストールページで SQLite を選択してください
+
{{Pkg|sqlite}} をインストールしインストールページで SQLite を選択しますSQLite データベースファイルには、{{ic|/etc/gogs/app.ini}} ({{ic|[database]}} セクションの {{ic|PATH}} 変数) で絶対パスを使用します。他の設定と一貫性を持たせるには、{{ic|/var/lib/gogs/data/gogs.db}} を使用します (issue [https://github.com/gogits/gogs/issues/4298 4298] も参照)
   
 
==== PostgreSQL ====
 
==== PostgreSQL ====
64行目: 88行目:
 
インストールページでは '''mysql''' を選択して、設定したユーザーとパスワード、データベース名を入力してください。
 
インストールページでは '''mysql''' を選択して、設定したユーザーとパスワード、データベース名を入力してください。
   
== Tips and tricks ==
+
== テーマ ==
 
=== テーマ ===
 
   
 
最新パッケージ (gogs-git* と gogs>=0.4.2) ではカスタムテーマに対応しています。Gogs のテーマを保存するディレクトリは {{ic|/usr/share/themes/gogs/}} です。Gogs にはデフォルトテーマが付属していますが、簡単にテーマを作成することができます。デフォルトの {{ic|theme}} ディレクトリをコピーして自由に変更してください。{{ic|public}} ディレクトリには javascript やスタイルシート、フォントファイルを保存し {{ic|template}} ディレクトリには HTML テンプレートを保存します。{{ic|app.ini}} の設定パラメータ {{ic|STATIC_ROOT_PATH}} を変更することでテーマを選ぶことができます。新しいテーマの絶対パスに変更してください。
 
最新パッケージ (gogs-git* と gogs>=0.4.2) ではカスタムテーマに対応しています。Gogs のテーマを保存するディレクトリは {{ic|/usr/share/themes/gogs/}} です。Gogs にはデフォルトテーマが付属していますが、簡単にテーマを作成することができます。デフォルトの {{ic|theme}} ディレクトリをコピーして自由に変更してください。{{ic|public}} ディレクトリには javascript やスタイルシート、フォントファイルを保存し {{ic|template}} ディレクトリには HTML テンプレートを保存します。{{ic|app.ini}} の設定パラメータ {{ic|STATIC_ROOT_PATH}} を変更することでテーマを選ぶことができます。新しいテーマの絶対パスに変更してください。
   
=== アップグレード後に再起動 ===
+
== アップグレード後に再起動 ==
   
 
Gogs はアップグレード後に再起動を必要とします。javascript や css アセットのパスが変更されウェブサイトが表示できなくなるためです。以下の pacman フックを {{ic|/etc/pacman.d/hooks/gogs.hook}} として作成することで再起動を自動化できます:
 
Gogs はアップグレード後に再起動を必要とします。javascript や css アセットのパスが変更されウェブサイトが表示できなくなるためです。以下の pacman フックを {{ic|/etc/pacman.d/hooks/gogs.hook}} として作成することで再起動を自動化できます:

2024年3月15日 (金) 13:17時点における最新版

関連記事

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

インストール

Gogs パッケージ (開発バージョンの場合は gogsAUR または gogs-gitAUR) を インストール する前に、Gogs をホストする予定がある場合は、データベースバックエンドを選択する必要があります。:

各パッケージには、サービスのバックエンド/ストレージを構成するための複数のオプションが用意されています。#設定 を参照してください。

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

初期設定

gogs.service起動 した後、URL http://[server]:3000 経由で実行中のサービスにアクセスできます。最初のロード時に、いくつかのオプションを設定できるインストールページにリダイレクトされます。

初期設定ページを使用して行われた変更を保存できるようにするには、設定ディレクトリ (root が所有) の権限を (一時的または永続的に) 変更する必要があります。次に例を示します:

# chown -R gogs:gogs /etc/gogs/

また、gogs.service/etc/gogs の内容を変更できるように ドロップインファイル を作成する必要もあります:

/etc/systemd/system/gogs.service.d/writable-etc.conf
[Service]
ReadWritePaths=/etc/gogs

次に、daemon-reload を実行し gogs.service再起動 します。インストール後、セキュリティを向上させるためにこれらの変更を元に戻すことができます。

設定ファイル /etc/gogs/app.ini では、さらに多くの値 (ポート番号など) を変更できます。

設定

Gogs 設定ファイルは /etc/gogs/app.ini にあります。設定オプションを編集する場合は、変更を有効にする前に、このファイルを編集し、Gogs サービスを再起動する必要があります。

SSH

ssh を使用して git リポジトリと通信し、アップロードされた公開キーを使用できるようにするには、次の手順を実行します:

  • /etc/gogs/app.iniSSH_ROOT_PATH/var/lib/gogs/.ssh に設定します (ドキュメント) を参照し、DISABLE_SSHfalse であることを確認します。
  • /etc/ssh/sshd_configAllowUsersgogs を追加します。
  • /var/lib/gogs/.ssh を作成し、所有権を gogs ユーザーに譲渡します:
> mkdir -p /var/lib/gogs/.ssh
> chown -R gogs:gogs /var/lib/gogs/.ssh

公開鍵は、gogs ユーザーによって /var/lib/gogs/.ssh/authorized_keys に追加されます

gogsAUR をインストールすると、gogs ユーザーは /sbin/nologin シェルを持つことになるため、/bin/bash シェルを追加する必要があります:

# usermod -s /bin/bash gogs

.gitignore と license ファイル

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

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

データベース

SQLite

sqlite をインストールし、インストールページで SQLite を選択します。SQLite データベースファイルには、/etc/gogs/app.ini ([database] セクションの PATH 変数) で絶対パスを使用します。他の設定と一貫性を持たせるには、/var/lib/gogs/data/gogs.db を使用します (issue 4298 も参照)

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

参照