Takip et

GitLab Nedir ve Neden Kendi Sunucunuzda Kurmalısınız?

GitLab Nedir ve Neden Kendi Sunucunuzda Kurmalısınız? GitLab, Git tabanlı bir kod deposu yöneticisi olmanın ötesinde, entegre bir yazılım

GitLab Nedir ve Neden Kendi Sunucunuzda Kurmalısınız?

GitLab, Git tabanlı bir kod deposu yöneticisi olmanın ötesinde, entegre bir yazılım geliştirme platformudur. GitHub’a benzer şekilde, kod yönetimi, sürüm kontrolü, hata takibi, sürekli entegrasyon ve sürekli dağıtım (CI/CD) pipeline’ları, proje yönetimi ve Wiki gibi birçok özelliği tek bir çatı altında sunar. Açık kaynak kodlu yapısı ve zengin özellik setleriyle, bireysel geliştiricilerden büyük kurumsal ekiplere kadar geniş bir kullanıcı kitlesine hitap eder.

Peki, neden kendi GitLab örneğinizi kurmalısınız? Hazır bulut çözümleri varken bu zahmete girmeye değer mi? İşte başlıca nedenler:

* Veri Gizliliği ve Kontrolü: En önemli avantajlardan biridir. Tüm kodunuz, proje verileriniz ve hassas bilgileriniz sizin kontrolünüzdeki sunucularda barınır. Özellikle yasal düzenlemelere tabi sektörlerde veya gizli projelerde bu vazgeçilmez bir gerekliliktir.
* Özelleştirme ve Entegrasyon: Kendi sunucunuzda GitLab’ı barındırdığınızda, sistem kaynaklarınıza göre optimizasyon yapabilir, mevcut altyapınızla daha derin entegrasyonlar kurabilir ve özel ihtiyaçlarınıza yönelik eklemeler geliştirebilirsiniz.
* Maliyet Tasarrufu (Büyük Ölçekte): Küçük ekipler için bulut çözümleri daha uygun olabilirken, büyüyen ekipler ve çok sayıda kullanıcı için kendi sunucunuzda barındırma uzun vadede daha ekonomik hale gelebilir. Lisans maliyetlerinden bağımsız olarak donanım ve bakım giderleri sizin kontrolünüzde olur.
* Bağımsızlık: Üçüncü taraf bir hizmet sağlayıcısına bağımlı kalmazsınız. Hizmet kesintileri, fiyat değişiklikleri veya özellik kısıtlamaları gibi dış etkenlerden etkilenmezsiniz.
* Güvenlik Politikaları: Şirketinizin veya projenizin katı güvenlik politikalarını kendi sunucunuzda daha kolay uygulayabilir, erişim kontrolünü tamamen kendi elinizde tutabilirsiniz.

Kısacası, GitLab’ı kendi sunucunuzda kurmak, kodunuz üzerinde tam kontrol sahibi olmanızı, gizliliği ön planda tutmanızı ve gelişmiş özelleştirme imkanlarından faydalanmanızı sağlar.

Sistem Gereksinimleri ve Kurulum Öncesi Hazırlıklar

GitLab kurulumuna başlamadan önce, sunucunuzun belirli gereksinimleri karşıladığından ve bazı ön hazırlık adımlarının tamamlandığından emin olmalısınız. Bu adımlar sorunsuz bir kurulum süreci için kritik öneme sahiptir.

Minimum Sistem Gereksinimleri

GitLab, Omnibus paketleri sayesinde kurulumu kolay olsa da, stabil çalışması için belirli donanım kaynaklarına ihtiyaç duyar.

* İşletim Sistemi: Ubuntu (22.04 LTS veya üzeri önerilir), Debian (11 veya üzeri), CentOS/RHEL (8 veya üzeri). Bu rehberde Ubuntu 22.04 LTS baz alınacaktır.
* RAM: Minimum 4 GB (küçük ekipler ve test ortamları için). Ancak 8 GB veya üzeri, daha iyi performans ve CI/CD pipeline’ları için şiddetle tavsiye edilir. GitLab çok fazla RAM kullanabilir.
* CPU: Minimum 2 çekirdek. 4 çekirdek veya üzeri önerilir.
* Disk Alanı: Minimum 50 GB boş disk alanı. SSD diskler performans açısından büyük avantaj sağlar. Projeleriniz ve CI/CD artifact’leriniz büyüdükçe bu alanın artırılması gerekebilir.

Kurulum Öncesi Gerekli Adımlar

Sunucunuz hazır olduğunda, GitLab’ı kurmadan önce aşağıdaki adımları tamamlayın:

1. Sistemi Güncelleme: Sunucunuzdaki paket listelerini güncelleyin ve yüklü paketleri en son sürümlerine yükseltin.

sudo apt update
    sudo apt upgrade -y

2. Gerekli Bağımlılıkları Kurma: GitLab’ın düzgün çalışması için bazı temel paketlere ihtiyaç vardır. Özellikle e-posta bildirimleri için postfix kurulması önemlidir.

sudo apt install -y curl openssh-server ca-certificates postfix

postfix kurulumu sırasında “Internet Site” seçeneğini seçin ve sunucunuzun alan adını (örneğin, gitlab.example.com) girin. Eğer alan adınız yoksa veya emin değilseniz, varsayılan ayarları bırakabilirsiniz.

3. Güvenlik Duvarı Yapılandırması (UFW): Sunucunuzun güvenliği için UFW (Uncomplicated Firewall) kullanıyorsanız, GitLab’ın erişebilmesi gereken portları açmalısınız.

sudo ufw allow OpenSSH       # SSH erişimi için
    sudo ufw allow http          # HTTP (80) portu için
    sudo ufw allow https         # HTTPS (443) portu için
    sudo ufw enable              # Güvenlik duvarını etkinleştir
    sudo ufw status              # Durumu kontrol et

4. Alan Adı ve DNS Kaydı (Önerilir): GitLab’ınıza bir alan adı (örneğin, gitlab.example.com) atamak, hem erişimi kolaylaştırır hem de HTTPS (SSL/TLS) sertifikası kurulumu için gereklidir. DNS sağlayıcınızdan sunucunuzun IP adresine işaret eden bir A kaydı oluşturun. Eğer alan adınız yoksa, IP adresi üzerinden de erişebilirsiniz ancak HTTPS kurulumu daha karmaşıktır.

GitLab Kurulumu: Adım Adım Rehber

GitLab’ı kendi sunucunuza kurmanın en kolay yolu, Omnibus paketini kullanmaktır. Bu paket, GitLab ve tüm bağımlılıklarını (Nginx, PostgreSQL, Redis vb.) tek bir pakette birleştirerek kurulumu oldukça basitleştirir.

GitLab Deposu Ekleme

Öncelikle, GitLab paketlerini indirebilmek için sunucunuza GitLab’ın APT deposunu eklemeniz gerekir.

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash

Bu komut, GitLab Enterprise Edition (EE) deposunu ekleyecektir. GitLab EE, ücretsiz olarak kendi sunucunuzda kullanabileceğiniz birçok gelişmiş özellik sunar. Eğer sadece temel özelliklere ihtiyacınız varsa gitlab-ce (Community Edition) deposunu da ekleyebilirsiniz, ancak EE genellikle daha fazla avantaj sağlar.

GitLab Kurulumu

Depoyu ekledikten sonra GitLab Omnibus paketini kurabilirsiniz. Kurulum sırasında GitLab’ın hangi URL üzerinden erişilebilir olacağını belirtmek önemlidir.

sudo EXTERNAL_URL="http://gitlab.example.com" apt install gitlab-ee

Önemli:
* EXTERNAL_URL kısmını kendi alan adınızla veya sunucunuzun IP adresiyle değiştirin (örneğin, http://192.168.1.100).
* Eğer HTTPS kullanacaksanız (şiddetle tavsiye edilir), şimdilik http olarak bırakın ve SSL yapılandırmasından sonra https olarak güncelleyin.
* Bu komut, GitLab’ı indirip kuracak ve ilk yapılandırmayı yapacaktır. Bu işlem, sunucunuzun hızına ve internet bağlantınıza bağlı olarak biraz zaman alabilir.

SSL/TLS Yapılandırması (Opsiyonel ama Şiddetle Tavsiye Edilir)

GitLab’ınıza güvenli bir şekilde erişmek ve verilerinizin şifrelendiğinden emin olmak için HTTPS kullanmalısınız. Let’s Encrypt ile ücretsiz SSL/TLS sertifikası kurmak GitLab Omnibus paketiyle oldukça kolaydır.

1. gitlab.rb Dosyasını Düzenleme: GitLab’ın yapılandırma dosyası olan /etc/gitlab/gitlab.rb dosyasını bir metin düzenleyici ile açın.

sudo nano /etc/gitlab/gitlab.rb

2. URL ve Let’s Encrypt Ayarlarını Yapılandırma: Dosya içinde aşağıdaki satırları bulun veya ekleyin (baştaki # işaretini kaldırarak yorum satırı olmaktan çıkarın):

external_url 'https://gitlab.example.com' # Kendi alan adınızı buraya yazın
    
    letsencrypt['enable'] = true
    letsencrypt['contact_emails'] = ['admin@example.com'] # Geçerli bir e-posta adresi girin
    letsencrypt['auto_renew_hour'] = "1"
    letsencrypt['auto_renew_minute'] = "30"
    letsencrypt['auto_renew_day_of_month'] = "*/7" # Her 7 günde bir yenileme denemesi

external_url kısmını mutlaka https ile başlayan kendi alan adınızla güncelleyin. contact_emails kısmına geçerli bir e-posta adresi yazın, Let’s Encrypt bu adresi sertifika süresi dolduğunda bildirim göndermek için kullanır.

3. GitLab’ı Yeniden Yapılandırma: Değişiklikleri kaydettikten sonra GitLab’ı yeniden yapılandırarak yeni ayarları uygulayın. Bu işlem sırasında Let’s Encrypt sertifikası otomatik olarak alınacak ve yüklenecektir.

sudo gitlab-ctl reconfigure

Bu komutun tamamlanması birkaç dakika sürebilir. Eğer bir hata alırsanız, genellikle alan adınızın DNS kaydının doğru yapılandırılmadığı veya güvenlik duvarınızın 80 ve 443 portlarını kapatmış olduğu anlamına gelebilir.

4. Güvenlik Duvarı Kontrolü: Eğer SSL yapılandırdıysanız ve henüz yapmadıysanız, HTTPS portunun güvenlik duvarında açık olduğundan emin olun:

sudo ufw allow https
    sudo ufw reload

Artık GitLab’ınız HTTPS üzerinden erişilebilir olmalıdır. Tarayıcınızdan https://gitlab.example.com adresine giderek kontrol edebilirsiniz.

GitLab İlk Yapılandırma ve Kullanım

Kurulum ve temel yapılandırma tamamlandıktan sonra, GitLab’ınızı kullanmaya başlayabilirsiniz. İlk girişte bazı önemli adımları tamamlamanız gerekecektir.

İlk Giriş ve Yönetici Parolası Belirleme

Tarayıcınızdan EXTERNAL_URL olarak belirlediğiniz adrese (örneğin, https://gitlab.example.com) gidin. İlk girişte bir parola sıfırlama ekranı ile karşılaşacaksınız.

* root kullanıcısı için yeni bir güçlü parola belirleyin. Bu, GitLab’ın ana yöneticisidir.
* Parolanızı belirledikten sonra root kullanıcı adı ve belirlediğiniz parola ile giriş yapabilirsiniz.

Giriş yaptıktan sonra GitLab’ın ana panosunu göreceksiniz. Buradan proje oluşturabilir, kullanıcıları yönetebilir ve genel ayarları yapılandırabilirsiniz.

Yeni Kullanıcılar ve Gruplar Oluşturma

Ekibinizdeki diğer üyelerin GitLab’ı kullanabilmesi için kullanıcı hesapları oluşturmanız gerekir.

1. Yönetici Alanına Erişim: Sağ üstteki menüden “Admin Area” (Yönetici Alanı) seçeneğine tıklayın.
2. Kullanıcı Oluşturma: Sol menüden “Overview” -> “Users” seçeneğine gidin. Sağ üstteki “New user” butonuna tıklayarak yeni bir kullanıcı oluşturun. Kullanıcının adını, e-posta adresini ve başlangıç parolasını belirleyebilirsiniz. İsterseniz kullanıcının ilk girişte parolasını değiştirmesini zorunlu kılabilirsiniz.
3. Grup Oluşturma: Ekiplerinizi veya projelerinizi organize etmek için gruplar oluşturmak faydalıdır. “Overview” -> “Groups” seçeneğine gidin ve “New group” butonuna tıklayın. Gruba bir isim verin ve açıklamasını yazın. Gruplar, projelere erişim izinlerini toplu olarak yönetmenizi sağlar.
4. Kullanıcıları Gruplara Ekleme: Oluşturduğunuz gruplara kullanıcıları ekleyerek projeler üzerindeki yetkilerini kolayca yönetebilirsiniz. Bir grubun sayfasına giderek “Members” sekmesinden kullanıcıları ekleyebilirsiniz.

İlk Projenizi Oluşturma

GitLab’da kodlarınızı barındırmak için bir proje oluşturmanız gerekir.

1. Proje Oluşturma: GitLab panosunda sol üstteki “New project/repository” (Yeni proje/depo) butonuna tıklayın veya sağ üstteki “+” ikonuna tıklayarak “New project/repository” seçeneğini seçin.
2. Proje Türü Seçimi:
* Create blank project: Sıfırdan boş bir proje oluşturur.
* Create from template: GitLab’ın sunduğu şablonlardan birini kullanarak proje oluşturur.
* Import project: GitHub, Bitbucket gibi başka bir kaynaktan proje içe aktarır.
3. Proje Detayları:
* Project name: Projenizin adını girin (örneğin, my-awesome-app).
* Project URL: GitLab otomatik olarak bir URL oluşturacaktır. İsterseniz grup altında da oluşturabilirsiniz.
* Visibility Level: Projenizin görünürlük seviyesini belirleyin:
* Private: Sadece erişim izni verdiğiniz üyeler görebilir.
* Internal: Oturum açmış tüm GitLab kullanıcıları görebilir (eğer varsa).
* Public: Herkes görebilir.
* Initialize repository with a README: Depoyu otomatik olarak bir README dosyası ile başlatmak isterseniz bu seçeneği işaretleyin.
4. Proje Oluşturma: “Create project” butonuna tıklayın.

Projeniz oluşturulduktan sonra, Git komutlarını kullanarak mevcut kodlarınızı push edebilir veya depoyu klonlayabilirsiniz:

* Mevcut bir depoyu push etmek için:

cd existing_repo
    git remote add origin https://gitlab.example.com/your-username/your-project.git
    git branch -M main
    git push -u origin main

* Yeni bir depoyu klonlamak için:

git clone https://gitlab.example.com/your-username/your-project.git

SSH anahtarlarını yapılandırdıysanız, SSH URL’lerini de kullanabilirsiniz.

CI/CD Pipeline’ları ve Diğer Özellikler

GitLab’ın en güçlü özelliklerinden biri entegre CI/CD’sidir. Projenizin kök dizinine .gitlab-ci.yml adında bir dosya ekleyerek otomatik testleri, derlemeleri ve dağıtımları yapılandırabilirsiniz.

* Merge Request’ler: Kod değişikliklerini gözden geçirmek ve birleştirmek için Merge Request’leri kullanın.
* Issue Tracking: Hata takibi, özellik istekleri ve görev yönetimi için Issue Board’ları ve etiketleri kullanın.
* Wiki: Proje belgelerinizi oluşturun ve yönetin.

GitLab arayüzünü keşfetmek ve bu özellikleri kullanmak, geliştirme süreçlerinizi büyük ölçüde iyileştirecektir.

Sonuç ve Sıkça Sorulan Sorular (SSS)

Bu rehberde, GitLab’ı kendi sunucunuzda nasıl kuracağınızı, temel yapılandırmaları nasıl yapacağınızı ve ilk projenizi nasıl oluşturacağınızı adım adım öğrendiniz. Kendi özel GitHub klonunuzu kurmak, kodunuz üzerinde tam kontrol sağlamanın, veri gizliliğini korumanın ve geliştirme süreçlerinizi kişiselleştirmenin güçlü bir yoludur.

GitLab’ın sunduğu zengin özellik setini (CI/CD, proje yönetimi, güvenlik taramaları vb.) keşfetmek, ekibinizin verimliliğini artıracak ve yazılım geliştirme döngünüzü daha güvenli ve tutarlı hale getirecektir. Unutmayın, kendi sunucunuzda barındırma, sürekli bakım, güncellemeler ve yedeklemeler gerektirir; bu sorumlulukları göz ardı etmeyin.

Sıkça Sorulan Sorular (SSS)

* GitLab CE mi EE mi kurmalıyım?
GitLab CE (Community Edition) tamamen ücretsiz ve açık kaynaklıdır, temel özellikler sunar. GitLab EE (Enterprise Edition) ise daha fazla gelişmiş özellik (örneğin, gelişmiş yetkilendirme, gelişmiş CI/CD yetenekleri) içerir. Kendi sunucunuzda barındırdığınızda, GitLab EE’nin çoğu özelliği ücretsiz olarak kullanılabilir (çekirdek özellikler). Genellikle EE kurmak, gelecekteki ihtiyaçlarınız için daha esnek bir yapı sunar. Bu rehberde EE kurulumu tavsiye edilmiştir.

* GitLab yedeklemesi nasıl yapılır?
GitLab’ı yedeklemek kritik öneme sahiptir. Aşağıdaki komut ile tüm GitLab verilerini (depolar, veritabanı, yapılandırmalar) yedekleyebilirsiniz:

sudo gitlab-rake gitlab:backup:create

Bu yedekleri düzenli olarak çalıştırmak için bir cron job kurmanız ve yedek dosyalarını güvenli, farklı bir konuma taşımanız şiddetle tavsiye edilir.

* GitLab’ı güncellemek zor mu?
Hayır, GitLab Omnibus paketi sayesinde güncelleme oldukça basittir. Genellikle aşağıdaki komutları çalıştırmanız yeterlidir:

sudo apt update
    sudo apt install gitlab-ee # veya gitlab-ce
    sudo gitlab-ctl reconfigure

Güncellemelerden önce her zaman yedekleme yapmanız önerilir.

* Kendi alan adım yoksa ne yapmalıyım?
Alan adınız yoksa, GitLab’a sunucunuzun IP adresi üzerinden erişebilirsiniz (örneğin, http://192.168.1.100). Ancak bu durumda Let’s Encrypt ile ücretsiz HTTPS sertifikası almanız mümkün olmaz ve bağlantınız güvenli olarak işaretlenmez. Geliştirme ve test ortamları için kabul edilebilir olsa da, üretim ortamları için bir alan adı kullanmak ve HTTPS yapılandırmak en iyisidir.

* GitLab performans sorunları yaşarsam ne yapmalıyım?
Performans sorunları genellikle yetersiz RAM veya CPU kaynaklarından kaynaklanır. Öncelikle sunucunuzun kaynak kullanımını (htop, free -h) kontrol edin. Gerekirse sunucu kaynaklarını artırın. Ayrıca /etc/gitlab/gitlab.rb dosyasındaki bazı ayarları (örneğin, Unicorn worker sayısı, Redis ve PostgreSQL ayarları) optimize edebilirsiniz, ancak bu ileri düzey bir konudur ve dikkatli yapılmalıdır.

Bu rehberin, kendi özel GitLab ortamınızı kurma yolculuğunuzda size yardımcı olmasını umuyoruz. Başarılar dileriz!

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.