Gitea
関連記事
Gitea は Go で書かれた軽量なコードホスティングサーバーである Gogs のコミュニティによるフォークです。MIT ライセンスで配布されています。
目次
インストール
gitea か 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 に設定してください。