Giteaは、Goで記述された自己ホスト型のオープンソースgitサーバーです。リポジトリファイルエディタ、プロジェクトの問題追跡、ユーザー管理、通知、組み込みのWikiなどが付属しています。
Giteaは軽量のアプリケーションであり、それほど強力ではないシステムにインストールできます。メモリフットプリントがはるかに小さいGitlabの代替品を探していて、Gitlabが提供するすべての機能を必要としない場合は、Giteaを試してみてください。
この記事では、CentOS8にGiteaをインストールして構成する方法を説明します。
前提条件#
Giteaは、SQLite、PostgreSQL、およびMySQL/MariaDBasデータベースバックエンドをサポートしています。
SQLiteを使用します。これは、単一のファイル内にデータを格納する軽量のデータベースです。 CentOSマシンにSQLiteがインストールされていない場合は、sudoユーザーとして次のコマンドを実行してインストールできます。
sudo dnf install sqlite SELinuxが無効になっているか、パーミッシブモードに設定されていることを前提としています。
Giteaは、ソース、バイナリ、およびパッケージとしてインストールできます。 Dockerイメージとしてデプロイすることもできます。バイナリを使用してGiteaをインストールします。
最初のステップは、CentOSにGitonをインストールすることです:
sudo dnf install git Gitのバージョンを表示してインストールを確認します:
git --version git version 2.18.4
Gitユーザーを作成する#
Giteaアプリケーションを実行するための新しいシステムユーザーを作成します:
sudo useradd \--system \--shell /bin/bash \--comment 'Git Version Control' \--create-home \--home /home/git \git
このコマンドは、gitという名前の新しいユーザーとグループを作成します 、ホームディレクトリを/home/gitに設定します 。
最新のGiteaバイナリは、Giteaダウンロードページからダウンロードできます。アーキテクチャに適したバイナリをダウンロードしてください。
執筆時点では、最新バージョンは1.12.3です。利用可能な新しいバージョンがある場合は、VERSIONを変更します 以下のコマンドの変数。
wgetを使用する /tmpにGiteaバイナリをダウンロードするには ディレクトリ:
VERSION=1.12.3sudo wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64
バイナリは任意の場所から実行できます。規則に従い、バイナリを/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/giteasudo chown root:git /etc/giteasudo 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-reloadsudo 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で接続をリッスンします すべてのネットワークインターフェイスで。 Gitea Webインターフェースへのアクセスを有効にするためにファイアウォールを構成する必要があります:
sudo firewall-cmd --permanent --zone=public --add-port=3000/tcpsudo firewall-cmd --reload
ブラウザを開き、http://YOUR_DOMAIN_IR_IP:3000/installと入力します 、および初期構成ページが表示されます:
次のように必須フィールドに入力します。
データベース設定:
- データベースタイプ:SQLite3
- パス:絶対パス
/var/lib/gitea/data/gitea.dbを使用します
アプリケーションの一般設定:
- サイトタイトル-組織名を入力します。
- リポジトリルートパス-デフォルトの
/home/git/gitea-repositoriesのままにします 。 - GitLFSルートパス-デフォルトの
/var/lib/gitea/data/lfsのままにします 。 - ユーザー名として実行-git
- SSHサーバードメイン-ドメインまたはサーバーのIPアドレスを入力します。
- SSHポート-22、SSHが他のポートでリッスンしている場合は変更します
- GiteaHTTPリッスンポート-3000
- GiteaベースURL-httpとドメインまたはサーバーのIPアドレスを使用します。
- ログパス-デフォルトの
/var/lib/gitea/logのままにします
完了したら、「Giteaのインストール」ボタンを押します。インストールは瞬時に行われます。完了すると、ログインページにリダイレクトされます。
「今すぐサインアップ」リンクをクリックします。最初に登録されたユーザーは、自動的に管理者グループに追加されます。
インストールをより安全にするには、以下を使用して、Gitea構成ファイルの権限を読み取り専用に変更します。
sudo chmod 750 /etc/giteasudo chmod 640 /etc/gitea/app.ini
それでおしまい。 CentOSマシンにGiteaがインストールされました。
NginxをSSLターミネーションプロキシとして構成する#
この手順はオプションですが、強くお勧めします。 Nginxをリバースプロキシとして使用するには、サーバーのパブリックIPを指すドメインまたはサブドメインが必要です。このチュートリアルでは、git.example.comを使用します 。
まず、Nginxをインストールし、以下のガイドを使用して無料のLet’sEncryptSSL証明書を生成します。
- CentOS8にNginxをインストールする方法
- CentOS8でLet'sEncryptを使用してNginxを保護する
完了したら、テキストエディタを開き、ドメインサーバーのブロックファイルを編集します。
sudo nano /etc/nginx/conf.d/git.example.com.conf /etc/nginx/conf.d/git.example.com.conf 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からアクセスできます。
通知メールを送信するには、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サーバー情報を使用していることを確認してください。
app.iniを編集するたびに ファイルの場合、変更を有効にするには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-amd64sudo mv /tmp/gitea /usr/local/bin -
バイナリを実行可能にします:
sudo chmod +x /usr/local/bin/gitea -
Giteaサービスを再起動します:
sudo systemctl restart gitea
それだけです。