GitLabインストール 既存ApacheにNginx追加
GitLabインストール&Apache共存設定をまとめます。
GitLab(ギットラブ)は、分散型バージョン管理システム「Git」をベースとした、ソフトウェア開発の全工程を支援するDevSecOpsプラットフォームです。ソースコードの管理だけでなく、計画から開発、セキュリティ、デプロイ、運用までのライフサイクルを一元管理できる点が大きな特徴です。
- 統合されたDevSecOps環境: CI/CD(継続的インテグレーション/継続的デプロイ)、課題管理(イシュー)、セキュリティスキャン、モニタリングなどの機能が、単一のアプリケーションとして統合されています。
- 柔軟な導入形態: GitLab.com で提供されるクラウド版(SaaS)のほか、自社サーバーにインストールして運用するセルフホスト版があり、社内統制やセキュリティを重視する企業に多く選ばれています。
- AIによる支援: 「GitLab Duo」などの生成AI機能を搭載し、コードの自動補完や脆弱性の説明、生産性の向上をサポートしています。
- ライセンス: オープンソースベースの無料版(Community Edition)と、高度なセキュリティ機能やサポートを含む有料のエンタープライズ版(Ultimate/Premium)が用意されています。
GitHubとの主な違い
GitHubがオープンソースコミュニティや外部とのコラボレーションに強いのに対し、GitLabは企業のインフラ内での統合的な開発プロセス管理(CI/CDの高度なカスタマイズなど)に適しているとされます。
| 特徴 | GitHub | GitLab |
|---|---|---|
| 主な利用者 | 個人、オープンソース | 企業、開発チーム |
| 得意分野 | コラボレーション、普及率 | 統合CI/CD、DevOpsの自動化 |
| 設置方法 | クラウド中心(SaaS) | セルフホスト(自前運用)に強い |
1. 依存パッケージとリポジトリ準備
sudo dnf install -y curl policycoreutils openssh-server perl mod_ssl
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
2. GitLabのインストール
sudo EXTERNAL_URL="https://gitlab.aquila.jp" dnf install -y gitlab-ee
3. GitLab内部設定 (/etc/gitlab/gitlab.rb)
編集後、sudo gitlab-ctl reconfigure を実行。
external_url 'https://gitlab.aquila.jp'nginx['listen_port'] = 8081nginx['listen_https'] = falsenginx['proxy_set_headers'] = { "X-Forwarded-Proto" => "https", "X-Forwarded-Ssl" => "on" }
4. Apacheリバースプロキシ設定
<VirtualHost *:80>
ServerName gitlab.aquila.jp
DocumentRoot /var/www/gitlab
# Certbot認証用
ProxyPass /.well-known/acme-challenge !
</VirtualHost>
証明書取得前(ポート80):
<VirtualHost *:443>
ServerName gitlab.aquila.jp
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/gitlab.aquila.jp/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/gitlab.aquila.jp/privkey.pem
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8081/
ProxyPassReverse / http://127.0.0.1:8081/
ProxyTimeout 300
LimitRequestBody 0
</VirtualHost>
証明書取得後(ポート443):
5. OS側の仕上げ(重要)
Apacheが内部ポートに通信できるように許可を出します。
sudo setsebool -P httpd_can_network_connect 1
6.サービスの起動・停止
sudo gitlab-ctl start / stopGitLabアクセス情報
- URL:
https://gitlab.aquila.jp/ - ID:
root - PW:
sudo cat /etc/gitlab/initial_root_passwordで確認
GitLabのメモリ節約
sudo vi /etc/gitlab/gitlab.rb
puma['worker_processes'] = 2
sidekiq['concurrency'] = 5
prometheus_monitoring['enable'] = false監視ツールのPrometheusを止める(もし不要なら)
sudo gitlab-ctl reconfigure