Gogsは、Go言語で記述された自己ホスト型のオープンソースgitサーバーです。これには、ウェアハウスファイルエディタ、プロジェクトの問題の追跡、および組み込みのWikiが含まれています。
Gogsは軽量のアプリケーションであり、低電力システムにインストールできます。 Gitlabよりもメモリを消費せず、Gitlabの優れた機能を必要としない代替手段を探している場合は、Gogsを試す必要があります。
このガイドでは、Ubuntu18.04にGogsをインストールして構成するためのいくつかの手順について説明します。同じ手順がUbuntu16.04およびその他のUbuntuベースのディストリビューションにも適用されます。
Gogsは、SQLite、PostgreSQL、および[MySQL](https://cloud.tencent.com/product/cdb?from=10680)/ [MariaDB](https://cloud.tencent.com/product/tdsql?from=10680)データベースを使用してデータを保存できます。
このガイドでは、SQLiteをデータベースとして使用します。 SQLiteがシステムにインストールされていない場合は、次のコマンドを入力してインストールする必要があります。
sudo apt install sqlite3
セキュリティを強化するために、基本的なファイアウォールを設定することをお勧めします。
バイナリからGogsをインストールします。インストールプロセスは非常にシンプルで簡単です。
最初のステップは、サーバーに[Gitをインストール](https://www.itcoder.tech/posts/how-to-install-git-on-ubuntu-18-04/)することです。これを行うには、sudoユーザーとしてシステムにログインし、ローカルパッケージインデックスを更新して、次のコマンドを使用してgitパッケージをインストールします。
sudo apt update
sudo apt install git
Gitバージョンを表示して、インストールプロセスを確認します。
git --version
git version 2.17.1
[ 新しいシステムユーザーを作成する](https://www.itcoder.tech/posts/how-to-add-and-delete-users-on-ubuntu-18-04/)、Gogsサービスを実行し、次のように入力します。
sudo adduser --system --group --disabled-password --shell /bin/bash --home /home/git --gecos 'Git Version Control' git
このコマンドはユーザーを作成し、ユーザーフォルダーを / home / git
に設定します。出力は次のようになります。
Adding system user `git' (UID 111) ...
Adding new group `git' (GID 116)...
Adding newuser`git' (UID 111) with group `git' ...
Creating home directory `/home/git' ...
[Gogsダウンロードページ](https://gogs.io/docs/installation/install_from_binary)を参照し、システムアーキテクチャに応じて最新のバイナリパッケージをダウンロードします。この記事の執筆時点では、最新バージョンは0.11.86です。新しいバージョンが利用可能な場合は、次のコマンドで「VERSION」フィールドの値を変更する必要があります。
wget
コマンドを使用して、Gogs圧縮ファイルを / tmp
ディレクトリにダウンロードします。
VERSION=0.11.86
wget https://dl.gogs.io/${VERSION}/gogs_${VERSION}_linux_amd64.tar.gz -P /tmp
ダウンロードが完了したら、Gogs tar.gzファイルを解凍し、それを / home / git
ディレクトリに移動します。
sudo tar xf /tmp/gogs_*_linux_amd64.tar.gz -C /home/git
次のコマンドを実行して、Gogsインストールディレクトリのアトリビューションユーザーとアトリビューションユーザーグループをgitに変更します。
sudo chown -R git:/home/git/gogs
Gogsには、インストールと構成を容易にするSystemdユニットファイルが付属しています。
このファイルを / etc / systemd / system /
ディレクトリにコピーし、次のように入力します。
sudo cp /home/git/gogs/scripts/systemd/gogs.service /etc/systemd/system/
完了したら、Gogsサービスを開始して有効にします。
sudo systemctl start gogs
sudo systemctl enable gogs
サービスが正常に開始されたことを確認します。
* gogs.service - Gogs
Loaded:loaded(/etc/systemd/system/gogs.service; enabled; vendor preset: enabled)
Active:active(running) since Thu 2019-04-2504:13:44 PDT; 9s ago
Main PID:14376(gogs)
Tasks:8(limit:2319)
CGroup:/system.slice/gogs.service
`- 14376 /home/git/gogs/gogs web
ダウンロードGogsiがダウンロードされて実行されました。次は、Webインターフェイスを介してインストールプロセス全体を完了します。
ブラウザを開いて「http:// YOUR_DOMAIN_IR_IP:3000」と入力すると、次の画面が表示されます。
データベース設定:
一般設定を適用します。
アプリケーション名:組織名を入力します
リポジトリルートパス:デフォルト値/ home / git / gogs-repositoriesのままにします
Run User: git
ドメイン:ドメイン名またはサーバーのIPアドレスを入力します。
SSHポート:22、SSHが他のポートを監視している場合は、変更してください。
HTTP Port: 3000
アプリケーションURL:httpとドメイン名またはサーバーIPアドレスを使用します。
ログパス:デフォルト値/ home / git / gogs / logのままにします
Gogs構成ファイルを編集して、後で設定を変更することもできます。
完了したら、[Gogsのインストール]ボタンをクリックします。インストールはすぐに続行され、インストールが完了すると、ログインページにリダイレクトされます。
[今すぐサインアップ]をクリックします。
最初に生成されたユーザーは、管理者ユーザーグループに自動的に追加されます。
それでおしまい。 GogsがUbuntuマシンにインストールされています。
この手順はオプションですが、強くお勧めします。 Nginxをリバースプロキシサーバーとして使用するには、サーバーのパブリックIPを指すドメイン名またはサブドメイン名が必要です。このガイドでは、 gogs.example.com
を使用します。
まず、Nginxをインストールし、以下のガイドに従って、無料のLet's Encrypt [SSL証明書](https://cloud.tencent.com/product/symantecssl?from=10680)を生成します。
完了したら、テキストエディタを開き、ドメインネームサーバーブロックを編集します。
sudo nano /etc/nginx/sites-enabled/gogs.example.com
server {
listen 80;
server_name gogs.example.com;
include snippets/letsencrypt.conf;return301 https://gogs.example.com$request_uri;}
server {
listen 443 ssl http2;
server_name gogs.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/gogs.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/gogs.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/gogs.example.com/chain.pem;
include snippets/letsencrypt.conf;
include snippets/ssl.conf;
# log files
access_log /var/log/nginx/gogs.example.com.access.log;
error_log /var/log/nginx/gogs.example.com.error.log;
# Handle / requests
location /{
proxy_redirect off;
proxy_pass http://127.0.0.1:3000;}}
ゴグすることを忘れないでください.example.comをドメイン名に置き換え、正しいSSL証明書ファイルの場所を設定します。すべてのHTTPリクエストはHTTPSにリダイレクトされます。
[ Nginxサービスを再起動します](https://www.itcoder.tech/posts/nginx-commands-you-should-know/)変更を有効にします。
sudo systemctl restart nginx
次に、Gogsのドメイン名とルートアドレスを変更します。これを行うには、構成ファイルを開き、次の行を編集します。
sudo nano /home/git/gogs/custom/conf/app.ini
[ server]
DOMAIN = gogs.example.com
ROOT_URL = https://gogs.example.com/
Gogsサービスを再起動するには、次のように入力します。
sudo systemctl restart gogs
この時点で、Gogsが構成され、アクセスできます: https:// gogs.example.com
。
Gogsが通知メールを送信できるようにするには、Postfixをインストールするか、SendGrid、MailChimp、MailGun、SESなどの他のビジネスメールサービスを使用する必要があります。
電子メール通知を有効にするには、構成ファイルを開き、次の行を編集します。
sudo nano /home/git/gogs/custom/conf/app.ini
[ mailer]
ENABLED =true
HOST = SMTP_SERVER:SMTP_PORT
FROM = SENDER_EMAIL
USER = SMTP_USER
PASSWD = YOUR_SMTP_PASSWORD
正しいSMTPサーバー情報を入力してください。
Gogsサービスを再起動して、アプリケーションを有効にします。
sudo systemctl restart gogs
Gogsでは、[Webフック](https://gogs.io/docs/features/webhook)を作成してSlackに接続し、[Slackチャネル](https://www.itcoder.tech/posts/how-to-install-slack-on-ubuntu-18-04/)に通知を送信することもできます。
Gogsをアップグレードするには、いくつかの手動の手順が必要です。
sudo systemctl stop gogs
sudo mv /home/git/gogs{,_old}
/ home / git
ディレクトリに移動します。VERSION=
wget https://dl.gogs.io/${VERSION}/gogs_${VERSION}_linux_amd64.tar.gz -P /tmp
sudo tar xf /tmp/gogs_*_linux_amd64.tar.gz -C /home/git
必ず VERSION
を実際のGogsリリースバージョンに変更してください。
custom
、 data
、および log
ディレクトリを解凍したディレクトリにコピーします。sudo rsync -a /home/git/gogs_old/{custom,data,log}/home/git/gogs/
sudo systemctl restart gogs
それでおしまい。
このチュートリアルでは、Ubuntu18.04でのGogsのインストールと構成について説明します。
最初のプロジェクトを作成して、新しいGogsサーバーの使用を開始できます。
Recommended Posts