Ubuntu 16.04にGitBucketをインストールする方法

このガイドでは、Ubuntu 16.04を実行するVultrインスタンス用のGitBucketの基本的なインストールとセットアップについて説明し、non-rootユーザーとしてコマンドを実行していることを前提としています。

前提条件

  • 少なくとも 1GBのRAMを持つVultrサーバーインスタンス(遅いとはいえ、より小さなインスタンスが機能する場合があります)。
  • openjdk-8-jre 必須、古いバージョンは機能しません。
  • wget GitBucketパッケージのダウンロードに使用されます。
  • nginx オプションで、GitBucketにリバースプロキシを提供します
  • systemd GitBucketプロセスの開始と停止を管理します

前提条件のインストール

GitBucketを使用するには、サーバーにJava 8以降がインストールされている必要があります。Java 8をまだインストールしていない場合は、まずローカルパッケージリストを更新します。

sudo apt update

次に、Java 8ランタイムパッケージをインストールします。

sudo apt install openjdk-8-jre

GitBucketのインストール

非特権ユーザーの作成

先に進む前に、GitBucketを実行するための非特権ユーザーを作成する必要があります。非特権ユーザーでGitBucketを実行すると、インストールが独自のデータディレクトリの外側に書き込むことが制限され、サーバーのセキュリティが強化されます。次のコマンドを実行して、というシステムユーザーを作成しますgitbucket

sudo adduser --system gitbucket

システムユーザーを作成したため、デフォルトのシェルは/bin/falseであり、を実行するときに追加のシェル引数を指定しない限り、現在のシェルに戻されますsu。新しく作成したユーザーにログインします。

sudo su - gitbucket -s /bin/bash

シェルのプロンプトが変更され、新しいシステムユーザーにログインします。

GitBucketのダウンロード/更新

移動GitBucketは、ページを解放し、利用可能な最新バージョンを検索します。gitbucket.warパッケージのURLをコピーし、新しいユーザーのホームディレクトリにいることを確認して、でダウンロードしwgetます。

cd ~/
wget https://github.com/gitbucket/gitbucket/releases/download/4.18.0/gitbucket.war

GitBucketパッケージを更新するたびに、この手順を繰り返す必要があります。

GitBucketの初期構成

パッケージをダウンロードしたら、GitBucketを手動で起動して初期構成を行う必要があります。

java -jar gitbucket.war --port 8080

ポート8080が別のプロセスによってすでに使用されている場合は、GitBucketが今リッスンするポートを変更できます。このガイドでは、GitBucketがポートでリッスンしていることを前提としています8080

これにより、サーバーのパブリックネットワークインターフェースでGitBucketが起動し、指定したポートでリッスンします。しばらくすると、次のメッセージが表示されます。

INFO:oejs.Server:main: Started @15891ms

Vultrのファイアウォールを使用している場合は、GultBucketがリッスンしているポートを開く必要があります。Vultrのファイアウォールはホワイトリストとして機能し、特に指定がない限りポートを許可するトラフィックを拒否します。

これで、GitBucketインストールがオンラインになり、インターネットからアクセスできるようになります。Webブラウザーを使用して、サーバーのパブリックアドレスに接続します(GitBucketが実行されているポートを必ず指定してください(つまりhttp://203.0.113.0:8080またはhttp://example.com:8080))。GitBucketのホームページにアクセスします。

ただし、デフォルトの管理者アカウントのパスワードは変更する必要があります。これを行うにSign inは、Webインターフェースの右上にあるボタンから管理者アカウントにログインします。管理者アカウントのデフォルトのログインはroot、ユーザー名用であり、次にrootパスワード用です。ログインすると、ボタンはプロファイルアイコンとドロップダウンに置き換わります。ドロップダウンを展開してを選択Account Settingsし、アカウント設定ウィザードで新しいより安全なパスワードを設定します。

デフォルトの管理者アカウントの認証情報を更新し、GitBucketがこの最小限の構成で起動することを確認したら、「CTRL+C」でJavaプロセスを終了し、で現在のシェルを閉じexitます。

Systemdサービスの作成

現在、GitBucketを実行するには、SSH経由でサーバーにアクセスし、シェルから手動でプロセスを開始する必要があります。幸い、Ubuntuにはがあらかじめパッケージ化されSystemdているため、GitBucketを自動起動してシステムが保守するサービスを作成できます。

を使用nanoして、/etc/systemd/systemディレクトリに新しいユニットファイルを作成します。

sudo nano /etc/systemd/system/gitbucket.service

次に、以下の内容をファイルにコピーします。

[Unit]
Description=GitBucket
After=network.target
[Service]
ExecStart=/usr/bin/java -jar /home/gitbucket/gitbucket.war --port 8080
ExecStop=/bin/kill -SIGINT $MAINPID
Type=simple
User=gitbucket
[Install]
WantedBy=multi-user.target

このユニットファイルは、GitBucketの基本的な起動とシャットダウンの動作を定義し、ローカルのみのネットワークインターフェースで、権限のないシステムユーザーの下でサービスを実行します。

GitBucketがリッスンするポート番号を変更した--port場合は、ExecStartコマンドの引数を変更します。

CTRL+O新しいユニットファイルを保存( " ")してから、エディターを終了( " CTRL+X")します。新しいユニットファイルを検出するには、Systemdをリロードする必要があります。

sudo systemctl daemon-reload

Systemdがリロードされたら、新しいユニットが検出されてロードされたことを確認します。

sudo systemctl status gitbucket

次の出力が表示されます。

gitbucket.service - GitBucket
   Loaded: loaded (/etc/systemd/system/gitbucket.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

最後に、サーバーの起動時に新しいユニットが自動的に開始するようにして、初めてサービスを開始します。

sudo systemctl enable gitbucket
sudo systemctl start gitbucket

サービスが開始されると、IPアドレスとポート番号を使用してブラウザーからGitBucketに再びアクセスできるようになります。

Nginxリバースプロキシの構成

ポートを介してGitBucketを直接公開でき8080ますが、Nginxを介してGitBucketを公開することで、パフォーマンスを向上させ、HTTP / 2、TLS暗号化、キャッシングルールなどの機能を構成できます。

Nginxの初期セットアップ

Nginxをまだインストールしていない場合は、パッケージリストを更新してください。

sudo apt update

次に、Nginxパッケージをインストールします。

sudo apt install nginx

Nginxがインストールされたら、ポート番号(またはまたは)なしでサーバーのIPアドレス介してWebサーバーにアクセスできることを確認します。成功すると、UbuntuのデフォルトのNginxランディングページが表示されます。http://203.0.113.0http://example.com

リバースプロキシの作成

/etc/nginx/sites-availableリバースプロキシの開始点として、既定のサイト構成をコピーします。

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/gitbucket

新しく作成した構成ファイルをで開きますnano

sudo nano /etc/nginx/sites-available/gitbucket

location /43行目で既存のブロックを見つけます。

location / {
  # First attempt to serve request as file, then
  # as directory, then fall back to displaying a 404.
  try_files $uri $uri/ =404;
}

現在、Nginxは/var/www/html着信HTTPリクエストと一致する場所にあるファイルを返そうとします。このブロックでリバースプロキシを構成することにより、この動作を変更する必要があります。これにより、Nginxサーバーに対して行われたすべてのHTTPリクエストが代わりにGitBucketインスタンスに送信されます。location /次のようにブロックを更新します。

location / {
    proxy_pass              http://localhost:8080; # The address GitBucket is listening on
    proxy_set_header        Host $host;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_connect_timeout   150;
    proxy_send_timeout      100;
    proxy_read_timeout      100;
    proxy_buffers           4 32k;

    client_max_body_size    512m; # Needed for large Git operations over HTTP
    client_body_buffer_size 128k;
}

GitBucketがリッスンするポート番号を変更した場合は、proxy_passこれを反映するようにオプションを更新します。

新しい構成を有効にするには、で既存のデフォルト構成を無効にし/etc/nginx/sites-enabled/etc/nginx/sites-enabledから、次の手順で新しい構成にシンボリックリンクする必要があります。

sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/gitbucket /etc/nginx/sites-enabled/gitbucket

設定ファイルを有効にしたら、構文エラーがないか確認してください。

sudo nginx -t

次に、Nginxサーバーを再起動して、新しいサイト構成を有効にします。

sudo systemctl restart nginx

これで、ポート番号なしでサーバーのパブリックアドレスあるGitBucketインストールにアクセスできるようになります。

公衆インターネットからのGitBucketプロセスの保護

現在、GitBucketインスタンスはサーバーのパブリックネットワークインターフェイスでリッスンしています。これにより、ユーザーはGitBucketが現在リッスンしているアドレスに接続することにより、Nginxプロキシをバイパスできます。これを解決するには、前に作成したユニットファイルを変更する必要があります。でユニットファイルを開きますnano

sudo nano /etc/systemd/system/gitbucket.service

--host 127.0.0.1そのExecStartようにコマンドに追加します。

...
ExecStart=/usr/bin/java -jar /home/gitbucket/gitbucket.war --port 8080 --host 127.0.0.1
...

これにより、GitBucketはサーバーのローカルネットワークインターフェイス上の接続のみを受け入れます。もう一度、CTRL+Oファイルを保存( " ")しCTRL+X、エディターを閉じ( " ")、Systemdをリロードして、GitBucketユニットを再起動します。

sudo systemctl daemon-reload
sudo systemctl restart gitbucket

Vultrのファイアウォールを使用している場合は、初期セットアップ中にGitBucketサーバーにアクセスするために追加したポート規則も削除する必要があります。



Leave a Comment

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

最近、Appleは問題を修正するための補足アップデートであるmacOS Catalina 10.15.4をリリースしましたが、このアップデートにより、Macマシンのブリックにつながる問題がさらに発生しているようです。詳細については、この記事をお読みください

原子力が必ずしも悪ではないことを証明する5つの例

原子力が必ずしも悪ではないことを証明する5つの例

原子力は、過去の出来事のために私たちが決して尊重しないことを常に軽蔑していますが、それは必ずしも悪ではありません。詳細については、投稿をお読みください。

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

これを読んで、人工知能が小規模企業の間でどのように人気を博しているか、そして人工知能がどのように成長し、競合他社に優位に立つ可能性を高めているかを理解してください。

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

私たちのコンピューターは、ジャーナリングファイルシステムと呼ばれる組織化された方法ですべてのデータを保存します。これは、検索を押すとすぐにコンピューターがファイルを検索して表示できるようにする効率的な方法です。https://wethegeek.com/?p = 94116&preview = true

ビッグデータは人工知能をどのように変えていますか?

ビッグデータは人工知能をどのように変えていますか?

ビッグデータと人工知能は流行語ですが、それらがどのように相互に関連しているか知っていますか?さて、この記事を最後まで読んで、同じことを知ってください。

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartは、PHP、jQuery、およびHTML 5で記述された無料のオープンソースのショッピングカートプラットフォームです。シンプルで軽量、使いやすいeコマースソフトウォー

DebianでNFS共有をセットアップする

DebianでNFS共有をセットアップする

NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します

Fedora 28にMatomo Analyticsをインストールする方法

Fedora 28にMatomo Analyticsをインストールする方法

別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

HTTPライブストリーミング(HLS)は、Apple Inc.によって実装された非常に堅牢なストリーミングビデオプロトコルです。HLSは、ファイアウォール、プロキシ、