Giteaは、Goで記述された自己ホスト型のオープンソースgitサーバーです。ゴグのフォークです。 Giteaには、リポジトリファイルエディタ、プロジェクトの問題追跡、ユーザー管理、通知、組み込みのWikiなどが含まれています。
Giteaは軽量のアプリケーションであり、低電力システムにインストールできます。メモリフットプリントがはるかに小さいGitlabの代替品を探していて、Gitlaboffersが提供するすべてのベルやホイッスルが必要ない場合は、間違いなくGiteaを試してみてください。
このチュートリアルでは、Ubuntu18.04にGiteaをインストールして構成する方法について説明します。同じ手順がUbuntu16.04およびその他のDebianベースのディストリビューションにも適用されます。
前提条件#
Giteaは、SQLite、PostgreSQL、およびMySQL/MariaDBasデータベースバックエンドをサポートしています。
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.17.1
Gitユーザーを作成する#
次のように入力して、Giteaアプリケーションを実行する新しいシステムユーザーを作成します。
sudo adduser --system --group --disabled-password --shell /bin/bash --home /home/git --gecos 'Git Version Control' git
このコマンドは、git
という名前の新しいユーザーとグループを作成します 、ホームディレクトリを/home/git
に設定します 。出力は次のようになります:
Adding system user `git' (UID 111) ...
Adding new group `git' (GID 116) ...
Adding new user `git' (UID 111) with group `git' ...
Creating home directory `/home/git' ...
Giteaダウンロードページにアクセスして、アーキテクチャの最新のバイナリをダウンロードします。執筆時点では、最新バージョンは1.10.2です。利用可能な新しいバージョンがある場合は、VERSION
を変更します 以下のコマンドの変数。
/tmp
にGiteaバイナリをダウンロードします 次のwget
を使用するディレクトリ コマンド:
VERSION=1.10.2
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,indexers,public,log}
sudo chown git: /var/lib/gitea/{data,indexers,log}
sudo chmod 750 /var/lib/gitea/{data,indexers,log}
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea
上記のディレクトリ構造は、Giteaの公式ドキュメントで推奨されています。
/etc/gitea
の権限 ディレクトリは770
に設定されています インストールウィザードが構成ファイルを作成できるようにします。インストールが完了したら、より制限の厳しい権限を設定します。
Systemdユニットファイルを作成する#
Giteaは、セットアップに一致するようにすでに構成されているSystemdユニットファイルを提供します。
ファイルを/etc/systemd/system/
にダウンロードします 次のように入力してディレクトリ:
sudo wget https://raw.githubusercontent.com/go-gitea/gitea/master/contrib/systemd/gitea.service -P /etc/systemd/system/
完了したら、Giteaサービスを有効にして開始します:
sudo systemctl daemon-reload
sudo systemctl enable --now 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 Sat 2020-01-04 21:27:23 UTC; 3s ago
Main PID: 14804 (gitea)
Tasks: 9 (limit: 1152)
CGroup: /system.slice/gitea.service
└─14804 /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
を使用します
アプリケーションの一般設定:
- サイトタイトル:組織名を入力します。
- リポジトリルートパス:デフォルトの
/home/git/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ターミネーションプロキシとして構成する#
この手順はオプションですが、強くお勧めします。 Nginxをリバースプロキシとして使用するには、サーバーのパブリックIPを指すドメインまたはサブドメインが必要です。このチュートリアルでは、git.example.com
を使用します 。
まず、Nginxをインストールし、以下のガイドを使用して無料のLet’sEncryptSSL証明書を生成します。
- Ubuntu18.04にNginxをインストールする方法
- Ubuntu18.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
それだけです。