「Gitea」の版間の差分
(動機) |
(同期) |
||
11行目: | 11行目: | ||
Gitea はデータベースバックエンドを必要とします。以下のデータベースがサポートされています: |
Gitea はデータベースバックエンドを必要とします。以下のデータベースがサポートされています: |
||
− | * [[MariaDB]] |
+ | * [[MariaDB]]/[[MySQL]] |
* [[PostgreSQL]] |
* [[PostgreSQL]] |
||
* [[SQLite]] |
* [[SQLite]] |
||
* [https://github.com/pingcap/tidb TiDB] |
* [https://github.com/pingcap/tidb TiDB] |
||
− | + | == 実行 == |
|
+ | {{Note|全てのインターフェイスで Gitea を使えるようにするには、{{ic|/var/lib/gitea/custom/conf/app.ini}} に {{ic|1=HTTP_ADDR = 0.0.0.0}} を設定してください。}} |
||
+ | |||
+ | {{ic|gitea.service}} を[[起動]]・[[有効化]]してください。{{ic|http://localhost:3000}} からウェブインターフェイスを開けます。 |
||
+ | |||
+ | 始めて Gitea を起動したときは {{ic|http://localhost:3000/install}} にリダイレクトされます。 |
||
+ | |||
+ | == 設定 == |
||
+ | {{Note|{{AUR|gitea-git}} では最初のインストール時に基本的な設定ファイルが {{ic|/var/lib/gitea/custom/conf/app.ini}} に用意されます。}} |
||
+ | ユーザーの設定ファイルは {{ic|/etc/gitea/app.ini}} です。メインの設定ファイル ({{ic|/var/lib/gitea/conf/app.ini}}) は編集してください。バイナリに含まれており、アップデートで上書きされる可能性があるためです。代わりに {{ic|/var/lib/gitea/conf/app.ini}} を {{ic|/etc/gitea/app.ini}} にコピーして使ってください。 |
||
+ | |||
+ | Gitea アプリケーションとリポジトリデータは {{ic|/var/lib/gitea}} に保存されますが、{{ic|/etc/gitea/app.ini}} で別のディレクトリを指定することもできます。 |
||
+ | |||
+ | === MariaDB/MySQL === |
||
{{Note|listen アドレスとして {{ic|/var/run/mysqld/mysqld.sock}} を使用することで MySQL のソケットを利用することができます。}} |
{{Note|listen アドレスとして {{ic|/var/run/mysqld/mysqld.sock}} を使用することで MySQL のソケットを利用することができます。}} |
||
[[MariaDB]] は以下のように設定してください: |
[[MariaDB]] は以下のように設定してください: |
||
{{hc|$ mysql -u root -p|2= |
{{hc|$ mysql -u root -p|2= |
||
− | mysql> CREATE DATABASE `gitea` DEFAULT CHARACTER SET ` |
+ | mysql> CREATE DATABASE `gitea` DEFAULT CHARACTER SET `utf8mb4` COLLATE `utf8mb4_general_ci`; |
− | mysql> CREATE USER |
+ | mysql> CREATE USER `gitea`@'localhost' IDENTIFIED BY 'password'; |
− | mysql> GRANT ALL ON `gitea`.* TO |
+ | mysql> GRANT ALL PRIVILEGES ON `gitea`.* TO `gitea`@`localhost`; |
mysql> \q |
mysql> \q |
||
}} |
}} |
||
32行目: | 45行目: | ||
最初の起動時や {{ic|app.ini}} を編集して MariaDB を設定します: |
最初の起動時や {{ic|app.ini}} を編集して MariaDB を設定します: |
||
− | {{hc|/ |
+ | {{hc|/etc/gitea/app.ini|2= |
DB_TYPE = mysql |
DB_TYPE = mysql |
||
− | HOST = /var/run/mysqld/mysqld.sock |
+ | HOST = 127.0.0.1:3306 ; or /var/run/mysqld/mysqld.sock |
NAME = gitea |
NAME = gitea |
||
USER = gitea |
USER = gitea |
||
40行目: | 53行目: | ||
}} |
}} |
||
+ | === SSH サポートの有効化 === |
||
− | == 実行 == |
||
+ | {{Note| |
||
− | {{ic|gitea.service}} を[[起動]]・[[有効化]]してください。ウェブインターフェイスは {{ic|http://localhost:3000}} からアクセスできます。 |
||
+ | *{{AUR|gitea-git}} は {{ic|gitea}} [[グループ]]と[[ユーザー]]を使います。 |
||
+ | *{{AUR|gitea}} は {{ic|git}} [[グループ]]と[[ユーザー]]を使用します。下に出てくるコマンドでは {{ic|gitea}} ではなく {{ic|git}} を使ってください。 |
||
+ | *パスワードプロンプトが表示される場合、[[SSH 鍵#トラブルシューティング]]を見てください。 |
||
+ | }} |
||
+ | {{Warning|SSH で全ての設定をするまではセッションを閉じてはいけません。ロックアウトされてしまいます。}} |
||
+ | *[[SSH]] が正しく設定されていることを確認。 |
||
− | Gitea を最初に起動したときは {{ic|http://localhost:3000/install}} にリダイレクトされます。 |
||
+ | *{{ic|/home/gitea}} をホームディレクトリとして {{ic|gitea}} [[グループ]]と[[ユーザー]]を作成: |
||
+ | # groupadd --system gitea |
||
+ | # useradd --system -c 'Gitea' -g gitea -m -d /home/gitea -s /bin/bash gitea |
||
+ | *パーミッションを適切に設定: |
||
+ | # chown -R gitea:gitea /var/log/gitea |
||
+ | # chown -R gitea:gitea /var/lib/gitea |
||
+ | *{{ic|app.ini}} の [[SSH]] 設定を更新: |
||
+ | {{hc|/etc/gitea/app.ini|2= |
||
+ | [server] |
||
+ | ; Disable SSH feature when not available |
||
+ | DISABLE_SSH = '''false''' |
||
+ | ; Domain name to be exposed in clone URL |
||
+ | SSH_DOMAIN = %(DOMAIN)s |
||
+ | ; Port number to be exposed in clone URL |
||
+ | SSH_PORT = '''22''' |
||
+ | ; Root path of SSH directory, default is '~/.ssh', but you have to use '/home/git/.ssh'. |
||
+ | SSH_ROOT_PATH = '''/home/gitea/.ssh''' |
||
+ | }} |
||
+ | * [[Secure_Shell#SSH の設定|SSH]] の {{ic|AuthorizedKeysFile .ssh/authorized_keys}} と {{ic|AllowUsers gitea}} の設定を更新: |
||
+ | {{hc|/etc/ssh/sshd_config|2= |
||
+ | Port 22 |
||
+ | AuthorizedKeysFile '''.ssh/authorized_keys''' |
||
+ | UseDNS no |
||
+ | PermitUserEnvironment '''yes''' |
||
+ | PermitRootLogin no |
||
+ | PasswordAuthentication no |
||
+ | PermitEmptyPasswords no |
||
+ | AllowUsers archie '''gitea''' |
||
+ | PubkeyAuthentication yes |
||
+ | PrintMotd no |
||
+ | Subsystem sftp /usr/lib/ssh/sftp-server |
||
+ | }} |
||
+ | *[[SSH 鍵#トラブルシューティング|SSH のパーミッション]]を正しく設定。 |
||
+ | *{{ic|gitea.service}} と {{ic|sshd.service}} を[[再起動]]。 |
||
+ | *クライアントで [[SSH 鍵#SSH 鍵のペアを生成|SSH 鍵のペア]]を生成。 |
||
+ | *生成した {{ic|~/.ssh/id_rsa.pub}} の中身を Gitea ウェブインターフェイスの '''Your Settings''', '''SSH Keys''' の '''Add Key'''に追加。 |
||
+ | これで SSH 認証を使ってリポジトリを管理できるようになり、ユーザー名とパスワードの入力が不要となります。 |
||
− | == 設定 == |
||
− | ユーザー設定ファイルは {{ic|/var/lib/gitea/custom/conf/app.ini}} です。メインの設定ファイルである {{ic|/var/lib/gitea/conf/app.ini}} を編集してはいけません。このファイルはバイナリに含められるため、アップデートによって上書きされてしまいます。 |
||
− | |||
− | Gitea のアプリケーションやリポジトリのデータは {{ic|/var/lib/gitea}} に保存されます。{{ic|/var/lib/gitea/custom/conf/app.ini}} で別の保存場所を指定することもできます。 |
||
=== HTTP プロトコルの無効化 === |
=== HTTP プロトコルの無効化 === |
||
− | Gitea ではデフォルトで HTTP プロトコルを使ってリポジトリを操作できるようになっています。{{ic|DISABLE_HTTP_GIT}} を ''' |
+ | Gitea ではデフォルトで HTTP プロトコルを使ってリポジトリを操作できるようになっています。{{ic|DISABLE_HTTP_GIT}} を '''true''' に設定することでサポートを無効化できます。 |
== 高度な設定 == |
== 高度な設定 == |
||
57行目: | 108行目: | ||
=== nginx をリバースプロキシとして設定 === |
=== nginx をリバースプロキシとして設定 === |
||
+ | {{Tip|[[Let’s Encrypt]] はフリーの自動オープン認証局です。コマンドラインから SSL 証明書を要求して自動で設定できるプラグインが存在します。}} |
||
+ | |||
[[nginx]] をリバースプロキシとして [[OpenSSL]] を使用する例: |
[[nginx]] をリバースプロキシとして [[OpenSSL]] を使用する例: |
||
{{hc|/etc/nginx/servers-available/git|2= |
{{hc|/etc/nginx/servers-available/git|2= |
||
62行目: | 115行目: | ||
server { |
server { |
||
listen 80; |
listen 80; |
||
+ | listen [::]:80; |
||
server_name git.domain.tld; |
server_name git.domain.tld; |
||
return 301 https://$server_name$request_uri; |
return 301 https://$server_name$request_uri; |
||
68行目: | 122行目: | ||
server { |
server { |
||
listen 443 ssl http2; |
listen 443 ssl http2; |
||
+ | listen [::]:443 ssl http2; |
||
server_name git.domain.tld; |
server_name git.domain.tld; |
||
+ | client_max_body_size 50M; |
||
ssl_certificate ssl/'''cert.crt'''; |
ssl_certificate ssl/'''cert.crt'''; |
||
ssl_certificate_key ssl/'''cert.key'''; |
ssl_certificate_key ssl/'''cert.key'''; |
||
location / { |
location / { |
||
− | proxy_set_header X-Real-IP $remote_addr; |
||
proxy_pass http://localhost:3000; |
proxy_pass http://localhost:3000; |
||
+ | proxy_set_header Host $host; |
||
+ | proxy_set_header X-Real-IP $remote_addr; |
||
} |
} |
||
} |
} |
||
89行目: | 146行目: | ||
}} |
}} |
||
{{Note|{{ic|app.ini}} で SSL 証明書のオプションを有効にする必要はありません。}} |
{{Note|{{ic|app.ini}} で SSL 証明書のオプションを有効にする必要はありません。}} |
||
+ | |||
+ | 最後に ''cookie'' セクションを更新して COOKIE_SECURE を '''true''' に設定してください。 |
||
== 参照 == |
== 参照 == |
2017年7月21日 (金) 20:42時点における版
関連記事
Gitea は Go で書かれた軽量なコードホスティングサーバーである Gogs のコミュニティによるフォークです。MIT ライセンスで配布されています。
目次
インストール
giteaAUR か gitea-gitAUR パッケージをインストールしてください。
Gitea はデータベースバックエンドを必要とします。以下のデータベースがサポートされています:
実行
gitea.service
を起動・有効化してください。http://localhost:3000
からウェブインターフェイスを開けます。
始めて Gitea を起動したときは http://localhost:3000/install
にリダイレクトされます。
設定
ユーザーの設定ファイルは /etc/gitea/app.ini
です。メインの設定ファイル (/var/lib/gitea/conf/app.ini
) は編集してください。バイナリに含まれており、アップデートで上書きされる可能性があるためです。代わりに /var/lib/gitea/conf/app.ini
を /etc/gitea/app.ini
にコピーして使ってください。
Gitea アプリケーションとリポジトリデータは /var/lib/gitea
に保存されますが、/etc/gitea/app.ini
で別のディレクトリを指定することもできます。
MariaDB/MySQL
MariaDB は以下のように設定してください:
$ mysql -u root -p
mysql> CREATE DATABASE `gitea` DEFAULT CHARACTER SET `utf8mb4` COLLATE `utf8mb4_general_ci`; mysql> CREATE USER `gitea`@'localhost' IDENTIFIED BY 'password'; mysql> GRANT ALL PRIVILEGES ON `gitea`.* TO `gitea`@`localhost`; mysql> \q
新しいユーザーで新しいデータベースへの接続を試行してみてください:
$ mysql -u gitea -p -D gitea
最初の起動時や app.ini
を編集して MariaDB を設定します:
/etc/gitea/app.ini
DB_TYPE = mysql HOST = 127.0.0.1:3306 ; or /var/run/mysqld/mysqld.sock NAME = gitea USER = gitea PASSWD = password
SSH サポートの有効化
# groupadd --system gitea # useradd --system -c 'Gitea' -g gitea -m -d /home/gitea -s /bin/bash gitea
- パーミッションを適切に設定:
# chown -R gitea:gitea /var/log/gitea # chown -R gitea:gitea /var/lib/gitea
app.ini
の SSH 設定を更新:
/etc/gitea/app.ini
[server] ; Disable SSH feature when not available DISABLE_SSH = false ; Domain name to be exposed in clone URL SSH_DOMAIN = %(DOMAIN)s ; Port number to be exposed in clone URL SSH_PORT = 22 ; Root path of SSH directory, default is '~/.ssh', but you have to use '/home/git/.ssh'. SSH_ROOT_PATH = /home/gitea/.ssh
- SSH の
AuthorizedKeysFile .ssh/authorized_keys
とAllowUsers gitea
の設定を更新:
/etc/ssh/sshd_config
Port 22 AuthorizedKeysFile .ssh/authorized_keys UseDNS no PermitUserEnvironment yes PermitRootLogin no PasswordAuthentication no PermitEmptyPasswords no AllowUsers archie gitea PubkeyAuthentication yes PrintMotd no Subsystem sftp /usr/lib/ssh/sftp-server
- SSH のパーミッションを正しく設定。
gitea.service
とsshd.service
を再起動。- クライアントで SSH 鍵のペアを生成。
- 生成した
~/.ssh/id_rsa.pub
の中身を Gitea ウェブインターフェイスの Your Settings, SSH Keys の Add Keyに追加。
これで SSH 認証を使ってリポジトリを管理できるようになり、ユーザー名とパスワードの入力が不要となります。
HTTP プロトコルの無効化
Gitea ではデフォルトで HTTP プロトコルを使ってリポジトリを操作できるようになっています。DISABLE_HTTP_GIT
を true に設定することでサポートを無効化できます。
高度な設定
他の設定例は Gogs の FAQ を見てください。
nginx をリバースプロキシとして設定
nginx をリバースプロキシとして OpenSSL を使用する例:
/etc/nginx/servers-available/git
# redirect to ssl server { listen 80; listen [::]:80; server_name git.domain.tld; return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name git.domain.tld; client_max_body_size 50M; ssl_certificate ssl/cert.crt; ssl_certificate_key ssl/cert.key; location / { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
app.ini
の server セクションを更新してください:
/var/lib/gitea/custom/conf/app.ini
[server] PROTOCOL = http DOMAIN = git.domain.tld ROOT_URL = https://git.domain.tld/ HTTP_ADDR = 0.0.0.0 HTTP_PORT = 3000
最後に cookie セクションを更新して COOKIE_SECURE を true に設定してください。