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コマンドを実行して、Dockerのインストールを確認します。
sudo docker run hello-world
Dockerのインストールが成功すると、DockerからのHelloWorldメッセージが表示されます。
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インストール用の新しいプロジェクトの構成を開始する準備ができていることを意味します。
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: localservices:
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:
- dbdb:
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ポートをエクスポートします 3000 と 2222。
- Giteaコンテナサービスは PostgreSQL 「」という名前のデータベースサービスdb“。
- 「db「サービスは、デフォルトのDockerイメージPostgreSQLを使用してGiteaサービスのデータベースとして実行されます。」postgres:14“。関連するすべてのデータ”db“サービスは”という名前のディレクトリにローカルに保存されますpostgres“。
次に、以下のdockerコマンドを実行して、Giteaコンテナサービスの構築と開始を開始します。
docker compose up -d
以下に、Giteaに必要なDockerイメージのダウンロードプロセスを示します。
すべてのプロセスが完了すると、次のスクリーンショットのような出力が表示されます。
次に、以下のdockerコマンドを実行して、giteaコンテナサービスを確認します。
docker compose ps
次のスクリーンショットでは、「サーバ” と “db“が実行されています。これは、Giteaコンテナサービスの展開が完了して成功したことを意味します。
Giteaサービスは、ポートを使用してローカルホストで実行されています 3000。 そしてポート 2222 SSH接続に使用できます。
インストール中にエラーが発生した場合は、常に以下のコマンドを使用してコンテナサービスのログを確認してください。
すべてのコンテナサービスからのログを確認します。
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 インストールを確認してを押します 入力 続ける。
次に、新しい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.htmlssl_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ベースURL“ドメインをインストールします。この例では、ドメイン名はhttps://git.hwdomain.ioです。
[オプション設定]セクションで、[管理者アカウント設定“。次に、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.