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

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

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 14.10へのMcMyAdminのインストール

Ubuntu 14.10へのMcMyAdminのインストール

McMyAdminは、サーバーの管理に使用されるMinecraftサーバーコントロールパネルです。McMyAdminは無料ですが、複数のエディションがあり、一部はパイです

LinuxでTeamTalk Serverをセットアップする

LinuxでTeamTalk Serverをセットアップする

TeamTalkは、ユーザーが高品質のオーディオ/ビデオ会話、テキストチャット、ファイルの転送、および画面の共有を可能にする会議システムです。それは

CentOS 7サーバーにCyber​​Panelをインストールして構成する方法

CentOS 7サーバーにCyber​​Panelをインストールして構成する方法

別のシステムを使用していますか?はじめにCyber​​Panelは、オープンソースでありOpenLiteSpeedを使用する市場で最初のコントロールパネルの1つです。なんてこった

Ubuntu 17.04でRbenv、Rails、MariaDB、Nginx、SSL、およびPassengerを使用してRubyをインストールおよび構成する方法

Ubuntu 17.04でRbenv、Rails、MariaDB、Nginx、SSL、およびPassengerを使用してRubyをインストールおよび構成する方法

Ruby on Railsは、プログラマーの生産性を向上させるために開発されたRubyの人気のあるWebフレームワークです。ただし、さまざまな宝石と依存関係を取得する

Vultr VPSにアクセスする方法

Vultr VPSにアクセスする方法

Vultrは、VPSにアクセスして構成、インストール、および使用するためのいくつかの異なる方法を提供します。アクセス認証情報VPS arのデフォルトのアクセス認証情報

CentOS 7、Ubuntu 16.04、Debian 9にGolang 1.8.3をインストールする方法

CentOS 7、Ubuntu 16.04、Debian 9にGolang 1.8.3をインストールする方法

GolangはGoogleが開発したプログラミング言語です。汎用性、シンプルさ、信頼性のおかげで、Golangは最も人気のあるものの1つになりました

Debian、CentOS、およびFreeBSDでSudoを使用する方法

Debian、CentOS、およびFreeBSDでSudoを使用する方法

LinuxおよびUnixのシステム管理者の間では、sudoユーザーを使用してサーバーにアクセスし、コマンドをルートレベルで実行することは非常に一般的です。sudの使用

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

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

別のシステムを使用していますか?DokuWikiは、データベースを必要としないPHPで記述されたオープンソースのWikiプログラムです。データをテキストファイルに保存します。ドクウィク

DebianでのChrootのセットアップ

DebianでのChrootのセットアップ

この記事では、Debianでchroot jailをセットアップする方法を説明します。私はあなたがDebian 7.xを使っていると思います。Debian 6または8を実行している場合、これは機能する可能性があります、bu

DebianにPiVPNをインストールする方法

DebianにPiVPNをインストールする方法

はじめにDebianでVPNサーバーを設定する簡単な方法は、PiVPNを使用することです。PiVPNは、OpenVPNのインストーラーおよびラッパーです。それはあなたのための簡単なコマンドを作成します

Ubuntu 18.04 LTSにCyber​​Panelをインストールして構成する方法

Ubuntu 18.04 LTSにCyber​​Panelをインストールして構成する方法

別のシステムを使用していますか?はじめにCyber​​Panelは、オープンソースでありOpenLiteSpeedを使用する市場で最初のコントロールパネルの1つです。なんてこった

Ubuntu 16.04 LAMP VPSにBigTree CMSをインストールする方法

Ubuntu 16.04 LAMP VPSにBigTree CMSをインストールする方法

別のシステムを使用していますか?BigTree CMS 4.2は、高速で軽量な無料のオープンソースのエンタープライズグレードのコンテンツ管理システム(CMS)であり、

Debian 9でソースからBrotliをビルドする方法

Debian 9でソースからBrotliをビルドする方法

別のシステムを使用していますか?Brotliは、Gzipよりも圧縮率が高い新しい圧縮方法です。そのソースコードはGithubで公開されています。ティ

PleskサーバーでHTTP / 2を有効にする方法

PleskサーバーでHTTP / 2を有効にする方法

PleskはネイティブのHTTP / 2サポートを備えています。PleskでのHTTP / 2のロールアウトは、他のコンポーネントに比べてはるかに簡単ですが、その導入プロセスには慎重な計画が必要です

FreeBSD 12にosTicketをインストールする方法

FreeBSD 12にosTicketをインストールする方法

別のシステムを使用していますか?osTicketは、オープンソースのカスタマーサポートチケットシステムです。osTicketのソースコードはGithubで公開されています。このチュートリアルでは

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

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

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

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