もっと詳しく

Giteaは、GitHub、BitBuacket、GitLabなどの無料のオープンソースのセルフホストGitサービスです。 これはGogsgitサービスのコミュニティフォークであり、MITライセンスを使用してGoで記述されています。 Giteaは、バグトラッキング、Wiki、コードレビューなど、共同開発とチーム向けの機能を提供します。 Gitaはクロスプラットフォームアプリケーションであり、Linux、macOS、Windows、ARMなどの複数のオペレーティングシステムにインストールできます。

Giteaの主な目標は、サーバー上でGitサービスを作成およびデプロイするための最も簡単、最速、および最も簡単な方法を提供することです。 さらに、Giteaは、LDAP、PAM、SMTP、FreeIPAなどの複数の認証方法をサポートしています。 Webhookリポジトリイベントに関しては、GiteaはSlack、Discord、Microsoft Team、Telegramなどの複数のWebhookをサポートしています。

このチュートリアルでは、最新のUbuntu22.04サーバーにGiteaという名前のセルフホストGitサーバーをDockerでインストールして構成する方法を学習します。 これには、GiteaコンテナサービスのリバースプロキシとしてのNginxWebサーバーのインストールと構成も含まれます。

前提条件

  • Ubuntuサーバー-このチュートリアルでは、最新のUbuntu22.04サーバーを使用します。
  • root権限を持つ非rootユーザー-またはrootユーザーを使用することもできます。

Dockerのインストールと構成

最初に行うステップは、UbuntuマシンにDockerをインストールして構成することです。 このチュートリアルでは、公式のDockerリポジトリからDockerをインストールするため、DockerGPGキーとリポジトリをシステムに追加する必要があります。

始める前に、以下のaptコマンドを実行して、gnupg2やcurlなどの基本的なパッケージの依存関係をインストールします。

sudo apt install 
    ca-certificates
    curl
    gnupg
    lsb-release

インストールが完了したら、以下のコマンドを実行して、GPGキーをダウンロードしてDockerリポジトリに追加します。 GPGキーはに保存されます / etc / apt / keyrings ディレクトリ。

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

次に、次のコマンドを使用してDockerリポジトリを追加します。

echo 
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

その後、以下のコマンドを使用してUbuntuリポジトリを更新および更新します。

sudo apt update

以下のスクリーンショットでは、Ubuntu22.04のDockerリポジトリが追加されていることがわかります。

最後に、次のコマンドを使用して、DockerエンジンをUbuntuシステムにインストールできます。 パッケージdocker-composeプラグインは、Docker Composeに代わるものであり、Dockerのプラグインとして使用できるようになりました。

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

入力 Y インストールを確認してを押します 入力 続ける。 Dockerのインストールが開始されます。

dockerとdockercomposeをインストールします

次に、以下のdockerコマンドを実行して、Dockerのインストールを確認します。

sudo docker run hello-world

Dockerのインストールが成功すると、DockerからのHelloWorldメッセージが表示されます。

docker runhello-world

Giteaデプロイメント環境のセットアップ

Dockerを正常にインストールしたら、Giteaインストール環境をセットアップします。 この例では、Giteaコンテナサービスはroot以外のユーザーとして実行されるため、システムに新しいユーザーを作成し、そのユーザーをグループ「docker」に追加して、ユーザーがDockerを実行および実行できるようにする必要があります。コンテナ。

以下のコマンドを実行して、という名前の新しいユーザーを追加します ギテア。 オプション -m ここは、ユーザーの新しいホームディレクトリを自動的に作成するために使用されます。ギテア‘そして新しいユーザーのデフォルトシェルは / bin / bash

useradd -m -s /bin/bash gitea

次に、ユーザーを追加します’ギテア‘グループ化’Docker‘次のコマンドを使用します。 そして今、ユーザー’ギテア‘Dockerコンテナを実行できるようになります。

usermod -aG docker gitea

確認するには、次のコマンドを使用してユーザー「gitea」としてログインします。

su - gitea

次に、以下のdockerコマンドを実行して、「こんにちは世界“。

docker run hello-world

DockerからのHello-worldメッセージが表示されます。これは、Giteaインストール用の新しいプロジェクトの構成を開始する準備ができていることを意味します。

root以外のユーザーのDockerをセットアップする

Giteaコンテナサービスの構築

Giteaコンテナサービスを実行するための新しいユーザーを追加した後、Giteaプロジェクトのインストールを設定します。 このセクションのすべてのコマンドは、新しいユーザーの下で実行されています。ギテア‘。

まず、「」という名前の新しいプロジェクトディレクトリを作成します。myapp“そして作業ディレクトリをそれに変更します。

mkdir -p myapp; cd myapp/

nanoエディターを使用して新しいdocker-compose.ymlファイルを作成します。

nano docker-compose.yml

次の構成をに追加します docker-compose.yml ファイル。

version: "2"

volumes:
  gitea-data:
    driver: local
  gitea-config:
    driver: local

services:
  server:
    image: gitea/gitea:1.16.8-rootless
    environment:
      - GITEA__database__DB_TYPE=postgres
      - GITEA__database__HOST=db:5432
      - GITEA__database__NAME=gitea
      - GITEA__database__USER=gitea
      - GITEA__database__PASSWD=gitea
    restart: always
    volumes:
      - ./data:/var/lib/gitea
      - gitea-data:/var/lib/gitea
      - ./config:/etc/gitea
      - gitea-config:/etc/gitea
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "2222:2222"
    depends_on:
      - db

  db:
    image: postgres:14
    restart: always
    environment:
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=gitea
      - POSTGRES_DB=gitea
    volumes:
      - ./postgres:/var/lib/postgresql/data

完了したら、ファイルを保存して閉じます。

これらの構成を使用して、次のリソースを作成します。

  • 2つのDockerボリューム gitea-dat gitea-config Giteaユーザーデータと設定ファイルを保存するため。
  • 「」という名前の2つのサービスサーバ” と “db“。
  • Giteaコンテナサービスは「」という名前で実行されますサーバ“、Dockerイメージに基づく “gitea / gitea:1.16.8-ルートレス“、およびTCPポートをエクスポートします 30002222
  • Giteaコンテナサービスは PostgreSQL 「」という名前のデータベースサービスdb“。
  • db「サービスは、デフォルトのDockerイメージPostgreSQLを使用してGiteaサービスのデータベースとして実行されます。」postgres:14“。関連するすべてのデータ”db“サービスは”という名前のディレクトリにローカルに保存されますpostgres“。

次に、以下のdockerコマンドを実行して、Giteaコンテナサービスの構築と開始を開始します。

docker compose up -d

以下に、Giteaに必要なDockerイメージのダウンロードプロセスを示します。

giteaデプロイメントを開始します

すべてのプロセスが完了すると、次のスクリーンショットのような出力が表示されます。

giteaの展開が完了しました

次に、以下のdockerコマンドを実行して、giteaコンテナサービスを確認します。

docker compose ps

次のスクリーンショットでは、「サーバ” と “db“が実行されています。これは、Giteaコンテナサービスの展開が完了して成功したことを意味します。

Giteaサービスは、ポートを使用してローカルホストで実行されています 3000。 そしてポート 2222 SSH接続に使用できます。

giteaコンテナサービスを確認してください

インストール中にエラーが発生した場合は、常に以下のコマンドを使用してコンテナサービスのログを確認してください。

すべてのコンテナサービスからのログを確認します。

docker compose logs

各コンテナサービスのデータベースとサーバーのログを確認します。

docker compose logs db
docker compose logs server

GiteaのリバースプロキシとしてのNginxの設定

Giteaコンテナサービスのインストールが完了しました。次に、デフォルトのポート3000で実行されているGiteaコンテナサービスのリバースプロキシとしてNginxWebサーバーをインストールおよび構成します。

この例では、Giteaコンテナサービスは、ドメイン名git.hwdomain.ioとSSLLetsencryptを有効にして実行されます。 したがって、nginxリバースプロキシを設定する前に、ドメイン名と、ドメイン名用に生成されたSSLLetsencryptedがあることを確認してください。

次に、以下のaptコマンドを使用してNginxパッケージをインストールします。

sudo apt install nginx

入力 Y インストールを確認してを押します 入力 続ける。

nginxをインストールします

次に、新しいSSL構成を作成します /etc/nginx/snippets/ssl.conf nanoエディターを使用します。

sudo nano /etc/nginx/snippets/ssl.conf

次の構成をファイルに追加します。 また、SSL証明書のパスを変更する必要があります。

ssl_certificate /etc/letsencrypt/live/git.hwdomain.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/git.hwdomain.io/privkey.pem;

# from https://cipherli.st/
# and https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
#ssl_stapling on;
#ssl_stapling_verify on;
#resolver 8.8.8.8 8.8.4.4 valid=300s;
#resolver_timeout 5s;
# Disable preloading HSTS for now.  You can use the commented out header line that includes
# the "preload" directive if you understand the implications.
#add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;

完了したら、ファイルを保存して閉じます。

次に、Giteaリバースプロキシの新しいNginxサーバーブロック構成を作成します /etc/nginx/sites-available/gitea.conf nanoエディターを使用します。

sudo nano /etc/nginx/sites-available/gitea.conf

次の構成をファイルに追加し、ドメイン名を変更しないようにしてください git.hwdomain.io あなたのドメインで。

server {
    server_name git.hwdomain.io;
    listen 443 ssl http2;
    include snippets/ssl.conf;

    # Log files
    access_log /var/log/nginx/gitea.access.log;
    error_log /var/log/nginx/gitea.error.log;

    location / {
        proxy_pass http://localhost:3000;
        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_set_header X-Forwarded-Proto $scheme;
    }
}

完了したら、ファイルを保存して閉じます。

次のコマンドを実行して、サーバーブロック構成をアクティブ化します gitea.conf Nginxの構成を確認します。

sudo ln -s /etc/nginx/sites-available/gitea.conf /etc/nginx/sites-enabled/
sudo nginx -t

構成が正しい場合は、「構文は大丈夫です-テストは成功しました“。

最後に、nginxサービスを再起動して、新しいNginxサーバーブロック構成gitea.confとSSL構成ssl.confを適用します。

sudo systemctl restart nginx

これで、GiteaコンテナサービスのリバースプロキシとしてのNginx構成が完了しました。このサービスは、ドメイン名https://git.hwdomain.ioで実行され、SSLが有効になっています。

Giteaインストールの設定を開始します

Giteaのインストールと構成を開始するには、Webブラウザーを開き、インストール用のgiteaドメイン名にアクセスします(例: https://git.hwdomain.io)。 そして今、あなたはGiteaのインストールページを見るでしょう。

[初期構成]セクションでは、docker-compose.ymlファイルからPostgreSQLデータベースの資格情報が自動的に入力されるため、デフォルトのままにします。

giteaの初期構成

今Giteaを変更します」サーバードメイン” と “GiteaベースURL“ドメインをインストールします。この例では、ドメイン名はhttps://git.hwdomain.ioです。

ドメイン名giteaを設定する

[オプション設定]セクションで、[管理者アカウント設定“。次に、Giteaサーバーの新しい管理者ユーザー名、パスワード、および電子メールアドレスを入力し、[Giteaをインストールする” ボタン。

管理者ユーザーを作成する

インストールプロセスが完了すると、Giteaホームページにリダイレクトされ、作成したばかりの新しいユーザーとしてログインします。

giteaユーザーダッシュボード

最新のUbuntu22.04でのDockerを使用したGiteaのインストールと構成が完了し、正常に完了しました。

結論

おめでとうございます! これで、最新のUbuntu22.04サーバーにDockerを使用してGiteaという名前の自己ホスト型gitサーバーのインストールが完了しました。 また、コンテナサービスを作成するためのdocker-compose.ymlの基本的な構成についても学びました。 また、Nginxをコンテナアプリケーションのリバースプロキシとして設定する方法を学習しました。この例では、Giteaコンテナサービスです。

The post Ubuntu22.04でDockerを使用してGiteaをインストールする方法 appeared first on Gamingsym Japan.