Giteaは、Goで記述された高速で使いやすいセルフホストのgitサーバーです。リポジトリファイルエディタ、プロジェクトの問題追跡、ユーザー管理、通知、組み込みのWikiなどが含まれています。
Giteaは軽量のアプリケーションであり、低電力システムにインストールできます。メモリフットプリントがはるかに小さいGitlabの代替品を探していて、Gitlaboffersが提供するすべてのベルやホイッスルが必要ない場合は、Giteaを試してみてください。
この記事では、Ubuntu20.04にGiteaをインストールして構成する方法について説明します。
前提条件#
Giteaは、SQLite、PostgreSQL、およびMySQL/MariaDBasデータベースバックエンドをサポートしています。
SQLiteは小規模なインストールにのみ推奨されます。大規模なインストールでは、MySQLまたはPostgreSQLを使用する必要があります。
GiteaのデータベースとしてSQLiteを使用します。 SQLiteがUbuntuシステムにインストールされていない場合は、sudouserとして次のコマンドを入力してインストールします。
sudo apt update
sudo apt install sqlite3
GiteaはDockerイメージを提供し、ソース、バイナリ、およびパッケージとしてインストールできます。バイナリからGiteaをインストールします。
最初のステップは、サーバーにGitonをインストールすることです。
sudo apt update
sudo apt install git
Gitのバージョンを表示してインストールを確認します:
git --version
git version 2.25.1
Gitユーザーを作成する#
次のように入力して、Giteaアプリケーションを実行する新しいシステムユーザーを作成します。
sudo adduser \
--system \
--shell /bin/bash \
--gecos 'Git Version Control' \
--group \
--disabled-password \
--home /home/git \
git
上記のコマンドは、git
という名前の新しいユーザーとグループを作成します 、ホームディレクトリを/home/git
に設定します 。出力は次のようになります:
Adding system user `git' (UID 112) ...
Adding new group `git' (GID 118) ...
Adding new user `git' (UID 112) with group `git' ...
Creating home directory `/home/git' ...
Giteaダウンロードページに移動し、アーキテクチャの最新のバイナリをダウンロードします。執筆時点では、最新バージョンは1.10.2です。利用可能な新しいバージョンがある場合は、VERSION
を変更します 以下のコマンドの変数。
wget
を使用する /tmp
にGiteaバイナリをダウンロードするには ディレクトリ:
VERSION=1.14.1
sudo wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64
gitea
を実行できます 任意の場所からのバイナリ。規則に従い、バイナリを/usr/local/bin
に移動します ディレクトリ:
sudo mv /tmp/gitea /usr/local/bin
バイナリを実行可能にします:
sudo chmod +x /usr/local/bin/gitea
以下のコマンドを実行してディレクトリを作成し、必要な権限と所有権を設定します。
sudo mkdir -p /var/lib/gitea/{custom,data,log}
sudo chown -R git:git /var/lib/gitea/
sudo chmod -R 750 /var/lib/gitea/
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea
上記のディレクトリ構造は、Giteaの公式ドキュメントで推奨されています。
/etc/gitea
の権限 ディレクトリは770
に設定されています インストールウィザードが構成ファイルを作成できるようにします。インストールが完了したら、より制限の厳しい権限を設定します。
Systemdユニットファイルを作成する#
Giteaをsystemdサービスとして実行します。
サンプルのsystemdユニットファイルを/etc/systemd/system
にダウンロードします 次のように入力してディレクトリ:
sudo wget https://raw.githubusercontent.com/go-gitea/gitea/main/contrib/systemd/gitea.service -P /etc/systemd/system/
ファイルを編集する必要はありません。設定に合わせて構成されています。
Giteaサービスを有効にして開始します:
sudo systemctl daemon-reload
sudo systemctl enable --now gitea
Giteaが実行されていることを確認します:
sudo systemctl status gitea
● gitea.service - Gitea (Git with a cup of tea)
Loaded: loaded (/etc/systemd/system/gitea.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2021-05-06 05:32:04 UTC; 7s ago
Main PID: 77781 (gitea)
Tasks: 6 (limit: 470)
Memory: 130.6M
CGroup: /system.slice/gitea.service
└─77781 /usr/local/bin/gitea web --config /etc/gitea/app.ini
...
Giteaがダウンロードされて実行されたので、Webインターフェイスを介してインストールを完了することができます。
デフォルトでは、Giteaはポート3000
で接続をリッスンします すべてのネットワークインターフェースで。
サーバーでUFWファイアウォールを実行している場合は、Giteaポートを開く必要があります。ポート3000
でのトラフィックを許可するには 、次のコマンドを入力します:
sudo ufw allow 3000/tcp
ブラウザを開き、http://YOUR_DOMAIN_IR_IP:3000
と入力します 、次のような画面が表示されます。
データベース設定:
- データベースタイプ:SQLite3
- パス:絶対パス
/var/lib/gitea/data/gitea.db
を使用します
アプリケーションの一般設定:
- サイトタイトル:組織名を入力します。
- リポジトリルートパス:デフォルトの
var/lib/gitea/data/gitea-repositories
のままにします 。 - Git LFSルートパス:デフォルトの
/var/lib/gitea/data/lfs
のままにします 。 - 実行ユーザー名:git
- SSHサーバードメイン:ドメインまたはサーバーのIPアドレスを入力します。
- SSHポート:22、SSHが他のポートでリッスンしている場合は変更します
- Gitea HTTPリッスンポート:3000
- GiteaベースURL:httpとドメインまたはサーバーのIPアドレスを使用します。
- ログパス:デフォルトの
/var/lib/gitea/log
のままにします
インストールを開始するには、「Giteaのインストール」ボタンを押します。
インストールは瞬時に行われます。完了すると、ログインページにリダイレクトされます。
「アカウントが必要ですか?今すぐ登録。"リンク。最初に登録されたユーザーは、自動的に管理者グループに追加されます。
以下を使用して、Gitea構成ファイルの権限を読み取り専用に変更します。
sudo chmod 750 /etc/gitea
sudo chmod 640 /etc/gitea/app.ini
それでおしまい。 GiteaがUbuntuマシンにインストールされました。
NginxをSSLターミネーションプロキシとして構成する#
この手順はオプションですが、強くお勧めします。 SSLターミネーションとは、NginxがGiteaアプリケーションとWebクライアント間の仲介ポイントとして機能するため、HTTPS経由でGiteaにアクセスできることを意味します。
Nginxをリバースプロキシとして使用するには、サーバーのパブリックIPを指すドメインまたはサブドメインが必要です。この例では、git.example.com
を使用します 。
まず、Nginxをインストールし、以下のガイドを使用して無料のLet’sEncryptSSL証明書を生成します。
- Ubuntu20.04にNginxをインストールする方法
- Ubuntu20.04でLet'sEncryptを使用してNginxを保護する
完了したら、テキストエディタを開き、ドメインサーバーのブロックファイルを編集します。
sudo nano /etc/nginx/sites-enabled/git.example.com
/etc/nginx/sites-enabled/git.example.com server {
listen 80;
server_name git.example.com;
include snippets/letsencrypt.conf;
return 301 https://git.example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name git.example.com;
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
client_max_body_size 50m;
# Proxy headers
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
# SSL parameters
ssl_certificate /etc/letsencrypt/live/git.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/git.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/git.example.com/chain.pem;
include snippets/letsencrypt.conf;
include snippets/ssl.conf;
# log files
access_log /var/log/nginx/git.example.com.access.log;
error_log /var/log/nginx/git.example.com.error.log;
# Handle / requests
location / {
proxy_redirect off;
proxy_pass http://127.0.0.1:3000;
}
}
git.example.comをGiteaドメインに置き換え、SSL証明書ファイルへの正しいパスを設定することを忘れないでください。 HTTPトラフィックはHTTPSにリダイレクトされます
変更を有効にするには、Nginxサービスを再起動します。
sudo systemctl restart nginx
次に、GiteaドメインとルートURLを変更します。これを行うには、構成ファイルを開き、次の行を編集します。
sudo nano /etc/gitea/app.ini
/etc/gitea/app.ini [server]
DOMAIN = git.example.com
ROOT_URL = https://git.example.com/
次のように入力して、Giteaサービスを再起動します。
sudo systemctl restart gitea
この時点で、Giteaプロキシが構成されており、https://git.example.com
からアクセスできます。
Giteaインスタンスに通知メールを送信させたい場合は、Postfixをインストールするか、SendGrid、MailChimp、MailGun、SESなどのトランザクションメールサービスを使用できます。
電子メール通知を有効にするには、構成ファイルを開き、次の行を編集します。
sudo nano /etc/gitea/app.ini
/etc/gitea/app.ini [mailer]
ENABLED = true
HOST = SMTP_SERVER:SMTP_PORT
FROM = SENDER_EMAIL
USER = SMTP_USER
PASSWD = YOUR_SMTP_PASSWORD
正しいSMTPサーバー情報を入力してください。
変更を有効にするには、Giteaサービスを再起動します。
sudo systemctl restart gitea
設定を確認してテストメールを送信するには、Giteaにログインし、[サイトの管理]>[構成]>[SMTPメーラーの構成]に移動します。
Giteaでは、Web Webhookを作成してSlackに接続し、Slackチャネルに通知を送信することもできます。
最新のGiteaバージョンにアップグレードするには、バイナリをダウンロードして置き換えるだけです。
-
Giteaサービスを停止します:
sudo systemctl stop gitea
-
最新のGiteaバージョンをダウンロードして、
/usr/local/bin
に移動します ディレクトリ:VERSION=<THE_LATEST_GITEA_VERSION>
wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64
sudo mv /tmp/gitea /usr/local/bin
-
バイナリを実行可能にします:
sudo chmod +x /usr/local/bin/gitea
-
Giteaサービスを再起動します:
sudo systemctl restart gitea
それだけです。