format_list_bulletedBu İçerikte Bahsedilen Konular
- arrow_rightGitLab Self-Hosted Kurulumu: Kendi Kod Deponuzu Yönetin
- arrow_rightGitLab Self-Hosted Nedir ve Neden Kullanılmalı?
- arrow_rightGitLab Kurulum Öncesi Gereksinimler
- arrow_rightUbuntu Üzerinde GitLab Kurulumu
- arrow_rightAdım 1: Sistem Güncelleme ve Bağımlılıklar
- arrow_rightAdım 2: GitLab Repository Ekleme
- arrow_rightAdım 3: GitLab Kurulum
- arrow_rightAdmin Şifresi Belirleme
- arrow_rightTLS/SSL Yapılandırması
- arrow_rightBackup ve Restore Yapılandırması
- arrow_rightGitLab Runner Kurulumu
- arrow_rightRunner Kurulum Adımları
- arrow_rightRunner executor türleri
- arrow_rightGitLab Performans Optimizasyonu
- arrow_rightPostgreSQL Tuning
- arrow_rightSidekiq Optimizasyonu
- arrow_rightPuma Workers Ayarları
- arrow_rightGitLab Güvenlik Ayarları
- arrow_rightKimlik Doğrulama Yapılandırması
- arrow_rightTwo-Factor Authentication (2FA)
- arrow_rightIP Whitelist/Blacklist
- arrow_rightGitLab Backup ve Disaster Recovery
- arrow_rightOtomatik Yedekleme Scripti
- arrow_rightYedekten Geri Yükleme
- arrow_rightGitLab alternatifleri ile Karşılaştırma
- arrow_rightSonuç ve Sonraki Adımlar
GitLab Self-Hosted Kurulumu: Kendi Kod Deponuzu Yönetin
GitLab Self-Hosted, ekiplerinin kod depolama, versiyon kontrolü ve CI/CD süreçlerini kendi altyapılarında yönetmelerini sağlayan güçlü bir platformdur. 2024 verilerine göre, kurumsal şirketlerin %67'si self-hosted çözümleri tercih ediyor çünkü veri kontrolü ve özelleştirme olanakları daha yüksek. Bu rehberde, GitLab'ı kendi sunucunuzda nasıl kuracağınızı adım adım anlatacağız.
GitLab Self-Hosted Nedir ve Neden Kullanılmalı?
GitLab Self-Hosted, GitLab'ın açık kaynak kodlu versiyonunu kendi fiziksel veya sanal sunucunuza kurarak kullanmanıza olanak tanır. bulut sunucu veya fiziksel sunucu üzerinde çalıştırabilirsiniz. Bu yaklaşım, verilerinizin üçüncü taraf sunucularında depolanmasını engeller ve tam veri egemenliği sağlar.
Kurumsal kullanımda en yaygın tercih edilen özellikler şunlardır:
- Tam veri kontrolü ve gizlilik
- Özelleştirilebilir eklenti ve entegrasyonlar
- Kesinti durumunda bağımsız çalışma
- Maliyet optimizasyonu (büyük ekipler için)
- İç güvenlik politikalarına uyum
GitLab Kurulum Öncesi Gereksinimler
GitLab'ın sorunsuz çalışması için minimum donanım gereksinimlerini karşılamanız gerekir. Official GitLab documentation'a göre aşağıdaki bileşenler önerilir:
| Kaynak | Minimum | Önerilen |
|---|---|---|
| CPU | 4 çekirdek | 8+ çekirdek |
| RAM | 4 GB | 8+ GB |
| Disk | 25 GB SSD | 100+ GB NVMe SSD |
| İşletim Sistemi | Ubuntu 20.04+, Debian 11+ | Ubuntu 22.04 LTS |
NVMe SSD kullanımı, GitLab'ın performansını önemli ölçüde artırır ve repository okuma/yazma hızlarını 3 kata kadar yükseltir.
Ubuntu Üzerinde GitLab Kurulumu
Adım 1: Sistem Güncelleme ve Bağımlılıklar
Önce sunucunuzun güncel olduğundan emin olun ve gerekli paketleri yükleyin:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl openssh-server ca-certificates tzdata perl
Bu adım, kurulum sırasında oluşabilecek bağımlılık hatalarını önler.
Adım 2: GitLab Repository Ekleme
GitLab'ın resmi reposunu sisteminize ekleyin:
curl -fsSL https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
Bu komut, GitLab'ın resmi paket deposunu otomatik olarak yapılandırır.
Adım 3: GitLab Kurulum
GitLab'ı yüklemek için aşağıdaki komutu kullanın. EXTERNAL_URL kısmına kendi domain adresinizi veya sunucu IP'nizi yazmalısınız:
sudo EXTERNAL_URL="https://gitlab.sizin-domain.com" apt install gitlab-ee
Kurulum süresi sunucu performansına bağlı olarak 10-30 dakika arasında sürebilir. yüksek performanslı sanal sunucu kullanarak bu süreyi minimize edebilirsiniz.
GitLab Yapılandırma ve İlk Ayarlar
Admin Şifresi Belirleme
Kurulum tamamlandıktan sonra, tarayıcınızda belirlediğiniz EXTERNAL_URL adresine gidin. Karşınıza çıkan ekranda yeni admin şifresi belirlemeniz istenecek. Güçlü bir şifre kullanmanızı öneriyoruz:
- En az 12 karakter
- Büyük-küçük harf kombinasyonu
- Özel karakterler (!@#$%^&*)
- Sayılar içermeli
TLS/SSL Yapılandırması
GitLab, Let's Encrypt entegrasyonu ile ücretsiz SSL sertifikası sunar. /etc/gitlab/gitlab.rb dosyasını düzenleyerek yapılandırabilirsiniz:
sudo nano /etc/gitlab/gitlab.rb
# Aşağıdaki satırları ekleyin veya düzenleyin
external_url "https://gitlab.sizin-domain.com"
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['[email protected]']
Yapılandırmayı uygulamak için sudo gitlab-ctl reconfigure komutunu çalıştırın.
Backup ve Restore Yapılandırması
Veri güvenliği için düzenli yedekleme kritik öneme sahiptir. GitLab backup ayarlarını /etc/gitlab/gitlab.rb dosyasında yapılandırabilirsiniz:
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_keep_time'] = 604800 # 7 gün
Yedekleme komutu: sudo gitlab-backup create
GitLab Runner Kurulumu
CI/CD pipeline'ları için GitLab Runner kurulumu gereklidir. Runner, kodunuzun otomatik olarak test edilmesini ve deploy edilmesini sağlar.
Runner Kurulum Adımları
# Runner repository ekleme
curl -fsSL https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
# Runner yükleme
sudo apt-get install gitlab-runner
Runner'ı GitLab'a kaydetmek için:
sudo gitlab-runner register
Bu komut çalıştırıldığında sizden GitLab URL'si, registration token ve executor tipi istenecektir. Token'ı GitLab arayüzünde Settings > CI/CD > Runners bölümünden alabilirsiniz.
Runner executor türleri
| Executor | Kullanım Alanı |
|---|---|
| Docker | Container tabanlı build süreçleri |
| Shell | Basit build scriptleri |
| Virtualbox | VM tabanlı testler |
| SSH | Uzak sunucuya bağlanma |
GitLab Performans Optimizasyonu
PostgreSQL Tuning
GitLab'ın veritabanı performansını artırmak için /etc/gitlab/gitlab.rb dosyasına eklemeler yapabilirsiniz:
postgresql['shared_buffers'] = "256MB"
postgresql['effective_cache_size'] = "1GB"
postgresql['work_mem'] = "16MB"
Sidekiq Optimizasyonu
Arka plan işlemleri için Sidekiq workers sayısını artırabilirsiniz:
sidekiq['queue_concurrency'] = 10
gitlab_rails['max_concurrent'] = 8
Bu ayarlar, büyük ekiplerin parallel çalışması sırasında oluşan tıkanıklıkları önler.
Puma Workers Ayarları
Web istekleri için Puma worker sayısını yapılandırın:
puma['workers'] = 4
puma['min_threads'] = 2
puma['max_threads'] = 8
GitLab Güvenlik Ayarları
Kimlik Doğrulama Yapılandırması
LDAP entegrasyonu ile kurumsal Active Directory'nizi bağlayabilirsiniz:
gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-EOS
main:
label: 'LDAP'
host: 'ldap.yourcompany.com'
port: 389
uid: 'uid'
bind_dn: 'cn=admin,dc=example,dc=com'
password: 'your-password'
encryption: 'plain'
EOS
Two-Factor Authentication (2FA)
Tüm kullanıcılar için 2FA zorunlu kılabilirsiniz. GitLab arayüzünde Admin Area > Settings > General > Sign-up restrictions bölümünden etkinleştirebilirsiniz.
IP Whitelist/Blacklist
Erişim kontrolü için IP kısıtlamaları ekleyebilirsiniz:
gitlab_rails['rack_attack_git_basic_auth'] = {
'enabled' => true,
'ip_whitelist' => ['127.0.0.1', '10.0.0.0/8'],
'maxretry' => 10,
'findtime' => 60,
'bantime' => 3600
}
GitLab Backup ve Disaster Recovery
Otomatik Yedekleme Scripti
Günlük otomatik yedekleme için cron job ekleyin:
sudo crontab -e
# Her gece saat 02:00'de yedekle
0 2 * * * /opt/gitlab/bin/gitlab-backup create CRON=1
Yedekten Geri Yükleme
Felaket durumunda yedekten geri yüklemek için:
sudo gitlab-backup restore BACKUP=timestamp_backup_tarihi
Önemli: Geri yükleme işlemi öncesinde mevcut verilerinizi yedekleyin.
GitLab alternatifleri ile Karşılaştırma
| Özellik | GitLab CE | GitHub Enterprise | Bitbucket Server |
|---|---|---|---|
| Self-Hosted | ✓ | ✓ | ✓ |
| Ücretsiz Kullanım | ✓ | ✗ | ✗ |
| CI/CD Dahil | ✓ | ✓ | ✓ (Pipelines) |
| Kubernetes Entegrasyonu | ✓ | ✓ | ✗ |
| Container Registry | ✓ | ✓ | ✓ |
GitLab, açık kaynak yapısı ve kapsamlı CI/CD özellikleri ile en avantajlı seçenek olarak öne çıkmaktadır.
Sonuç ve Sonraki Adımlar
GitLab Self-Hosted kurulumu, ekiplerinize tam kontrol sağlayan güçlü bir altyapı oluşturur. Doğru yapılandırma ve düzenli bakım ile güvenli, ölçeklenebilir bir geliştirme ortamı elde edebilirsiniz.
Kurulum sonrası önerilen adımlar:
- Kullanıcı hesapları ve izin yapılandırması
- Proje şablonları oluşturma
- CI/CD pipeline'ları tanımlama
- Monitoring ve alerting kurulumu
- Düzenli güvenlik güncellemeleri
GitLab kurulumu hakkında daha fazla bilgi için blog sayfamızı ziyaret edebilir veya iletişim ekibimizden destek alabilirsiniz. Cloud sunucu çözümlerimiz ile GitLab altyapınızı güçlendirebilirsiniz.