Dedicated Sunucuya GitLab Nasıl Kurulur
GitLab, kendi sunucunuzda çalıştırabileceğiniz; Git depoları, kod incelemesi, sorun takibi ve CI/CD için bir platformdur. Kendi sunucunuzda barındırılan bir örnek kaynak kodunuzu kontrolünüz altında tutar ve kapasitesi yalnızca sunucu kaynaklarına ve kullandığınız GitLab özelliklerine bağlıdır.
Dedicated sunucu GitLab için uygundur. Depo depolaması diskleri yoğun kullanır; veritabanı ve arka plan hizmetleri ise sabit miktarda RAM gerektirir. Ayrılmış donanımda bu kaynaklar kimseyle paylaşılmaz, bu nedenle GitLab büyük push işlemleri ve CI çalıştırmaları sırasında da hızlı yanıt verir.
Neden kendi GitLab'ınızı çalıştırmalısınız
GitLab.com başlangıç için kullanışlıdır, ancak ekip büyüdükçe kendi sunucunuzda barındırılan bir örnek çoğu zaman daha iyi bir seçim olur:
- Kod sunucunuzda kalır. Kaynak kodu, sorunlar ve CI/CD sırları, kontrol ettiğiniz donanımda, seçtiğiniz veri merkezi konumunda saklanır. Bu, NDA veya veri yerleşimi gereksinimleri olan projeler için önemlidir.
- Kullanıcı, depolama ve CI/CD dakikalarında plan sınırı yok. GitLab.com'un ücretsiz katmanı bunları sınırlar; kendi sunucunuzda ise sınırları yalnızca sunucunun kaynakları belirler.
- Kendi CI/CD runner'larınız. Derlemeler işlem dakikası ücreti ödemeden sunucularınızda çalışır ve internete kapalı iç hizmetlere erişebilir.
- Güncellemeler ve ayarlar üzerinde tam kontrol. Ne zaman yükselteceğinize, hangi entegrasyonları açacağınıza ve verileri nasıl yedekleyeceğinize siz karar verirsiniz.
Zaten GitLab.com kullanıyorsanız önce kendi örneğinizi kurun, ardından grupları ve projeleri ona taşıyın.
Bu kılavuz, GitLab'ı Ubuntu veya Debian üzerinde resmi paketten kurmayı, ücretsiz bir Let's Encrypt sertifikası almayı ve örneği ekibiniz için hazırlamayı gösterir.
Kurulumdan önce neye ihtiyacınız var
En az 8 vCPU (CPU iş parçacığı) ve 16 GB RAM'e sahip bir dedicated sunucu. Hyper-Threading veya SMT destekli 4 çekirdekli bir işlemci zaten 8 iş parçacığı sağlar. GitLab 8 GB RAM ile başlayabilir, ancak neredeyse tamamını kullanır ve yük altında yavaş çalışır. Sistem ve GitLab için en az 40 GB boş alanı olan SSD veya NVMe diskler ile tüm depolar ve yedekler için yeterli alan kullanın.
Sunucuda kurulu Ubuntu 26.04 LTS, Ubuntu 24.04 LTS veya Debian 13. Bu kılavuzdaki komutlar üç sistem için de aynıdır; Debian'ın farklı olduğu yerler belirtilmiştir.
GitLab için bir alan adı veya alt alan adı, örneğin gitlab.example.com.
Bu alan adını sunucunun genel IPv4 adresine yönlendiren bir DNS A kaydı.
Ayrıca bir AAAA kaydı eklerseniz IPv6'nın sunucuda zaten çalışıyor olması gerekir. AAAA kaydı varsa Let's Encrypt IPv6'yı tercih eder ve sunucuya IPv6 üzerinden erişilemiyorsa sertifika verilmez. Emin değilseniz yalnızca A kaydını ekleyin.
Root erişimi veya sudo yetkisi olan bir kullanıcı. Bu kılavuzdaki komutlar root olarak çalıştırılır; sudo yetkili bir kullanıcı kullanıyorsanız komutların başına sudo ekleyin. GitLab deposunu ekleyen komutta sudo ifadesini bash'ten önce yazın: curl ... | sudo bash.
İnternete açık 22 (SSH), 80 (HTTP) ve 443 (HTTPS) portları. Yalnızca HTTPS kullanmayı planlasanız bile 80 portu gereklidir, çünkü Let's Encrypt alan adını HTTP üzerinden doğrular.
Bu kılavuz boyunca gitlab.example.com ifadesini kendi alan adınızla, 203.0.113.10 ifadesini ise sunucunuzun IP adresiyle değiştirin.
Sunucuya bağlanma
Bilgisayarınızdan sunucuya SSH ile bağlanın:
İşletim sistemi sürümünü kontrol edin:
cat /etc/os-release
Örnek çıktı:
PRETTY_NAME="Ubuntu 26.04 LTS" NAME="Ubuntu" VERSION_ID="26.04" ...
Çıktıda Ubuntu 26.04, Ubuntu 24.04 veya Debian 13 görünmelidir. Ardından CPU çekirdek sayısını, RAM miktarını ve boş disk alanını kontrol edin:
nproc free -h df -h /
Alan adının zaten sunucuyu gösterdiğinden emin olun. Bu komutu yerel bilgisayarınızda çalıştırın (Windows, macOS ve Linux'ta çalışır):
nslookup gitlab.example.com
A kaydı sunucunun genel IPv4 adresini döndürmelidir. AAAA kaydı da kullanıyorsanız sunucuya IPv6 üzerinden erişilebildiğinden emin olun. Adresler eşleşmiyorsa DNS kayıtlarını düzeltin ve değişikliğin yayılmasını bekleyin. Alan adı doğru çözümlenene kadar devam etmeyin, çünkü GitLab Let's Encrypt sertifikasını ilk yapılandırma sırasında ister.
Sunucuyu güncelleme ve bağımlılıkları kurma
Paket listelerini ve kurulu paketleri güncelleyin:
apt update && apt upgrade -y
Sunucunun ana makine adını GitLab alan adına ayarlayın. GitLab bunu zorunlu kılmaz, ancak böylece sistem adı günlüklerde ve giden e-postalarda GitLab adresiyle tutarlı olur:
hostnamectl set-hostname gitlab.example.com
GitLab'ın ihtiyaç duyduğu paketleri kurun:
apt install -y curl openssh-server ca-certificates perl tzdata locales
GitLab ayrıca UTF-8 yerel ayarına ihtiyaç duyar: bu olmadan, birlikte gelen PostgreSQL veritabanı kurulum sırasında başlatılamayabilir. Yerel ayar listesinde en_US.UTF-8 seçeneğini etkinleştirin ve oluşturun (Ubuntu 26.04'te zaten etkindir ve ilk komut hiçbir şeyi değiştirmez):
sed -i 's/^# *en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen locale-gen
Güvenlik duvarını yapılandırma
Bu kılavuz UFW güvenlik duvarını kullanır. Ubuntu ile birlikte gelir ancak varsayılan olarak kapalıdır; Debian'da önce kurun:
apt install -y ufw
UFW sunucunuzda zaten etkinse önce geçerli kurallarını ufw status ile kontrol edin. SSH, HTTP ve HTTPS'e izin verin ve güvenlik duvarını ancak ondan sonra açın, böylece SSH oturumunuz kesilmez:
ufw allow ssh ufw allow http ufw allow https ufw enable
Onay istendiğinde y yanıtını verin. Kuralları kontrol edin:
ufw status
Örnek çıktı:
Status: active To Action From -- ------ ---- 22/tcp ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 443/tcp (v6) ALLOW Anywhere (v6)
SSH sunucunuz 22 dışında bir port kullanıyorsa, ufw enable komutundan önce o porta izin verin, örneğin ufw allow 2222/tcp. Aksi halde bağlantı kopar.
GitLab deposunu ekleme
GitLab iki sürüm halinde dağıtılır:
- GitLab Enterprise Edition (
gitlab-ee). Tüm ücretsiz özellikleri içerir ve ücretli özellikleri daha sonra yeniden kurulum yapmadan etkinleştirmenize olanak tanır. - GitLab Community Edition (
gitlab-ce). Ücretsiz GitLab özelliklerini içeren, tamamen açık kaynaklı bir sürüm.
Bu kılavuz gitlab-ee kullanır. Community Edition'ı tercih ediyorsanız tüm komutlarda gitlab-ee ifadesini gitlab-ce ile değiştirin.
Resmi GitLab deposunu ekleyin:
curl -fsSL https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | bash
Betik depoyu ve imza anahtarını ekler ve paket listesini yeniler.
GitLab'ı kurma
Paketi kurun ve örneğinizin adresini EXTERNAL_URL içinde verin. Adreste https:// kullanın: bu durumda GitLab bir Let's Encrypt sertifikası ister ve HTTP'den HTTPS'e yönlendirmeyi otomatik olarak ayarlar.
EXTERNAL_URL='https://gitlab.example.com' apt install -y gitlab-ee
Kurulum sırasında GitLab bileşenlerini (web sunucusu, PostgreSQL veritabanı, Redis, Git depolaması ve arka plan hizmetleri) açar, yapılandırmayı /etc/gitlab/gitlab.rb dosyasına yazar, sertifikayı ister ve tüm hizmetleri başlatır. Bu 5 ila 10 dakika sürer. Tamamlandığında çıktı "Thank you for installing GitLab!" mesajıyla biter.
Örnek çıktı:
Thank you for installing GitLab! GitLab should be available at https://gitlab.example.com
GitLab, root hesabı için rastgele bir parola oluşturur ve bir dosyaya kaydeder. Görüntüleyin:
cat /etc/gitlab/initial_root_password
Parolayı kopyalayın. Dosya kurulumdan 24 saat sonra otomatik olarak silinir, bu nedenle bundan önce oturum açıp kendi parolanızı belirleyin.
Kurulum komutunda EXTERNAL_URL öncesine GITLAB_ROOT_PASSWORD='your-password' ekleyerek root parolasını kurulum sırasında kendiniz belirleyebilirsiniz. Kabuğun $ veya ! gibi karakterleri değiştirmemesi için tek tırnak kullanın. Parola 8 karakterden kısaysa GitLab onu kullanmaz ve rastgele bir parola oluşturur.
GitLab'ı açma ve HTTPS'i kontrol etme
Tarayıcınızda https://gitlab.example.com adresini açın. Sayfa güvenlik uyarısı olmadan açılmalı ve tarayıcı Let's Encrypt tarafından verilmiş geçerli bir sertifika göstermelidir.
Sayfada 502 hatası görünüyorsa GitLab hâlâ hizmetlerini başlatıyordur. Bir iki dakika bekleyin ve sayfayı yeniden yükleyin.
root kullanıcı adı ve initial_root_password dosyasındaki parola ile oturum açın.
Parolayı hemen değiştirin. Avatarınızı, ardından Edit profile seçeneğini seçin. Soldaki menüde Access bölümünü genişletin, Password and authentication seçeneğini, ardından Change password seçeneğini seçin. Mevcut parolayı ve yeni bir parolayı girin ve Save password seçeneğini seçin. GitLab, "gitlab" sözcüğünü veya kullanıcı adınızı içerenler dahil zayıf parolaları reddeder.
Sayfa HTTPS üzerinden açılmıyorsa büyük olasılıkla sertifika verilmemiştir. Bu durumda kurulum çıktısında bir Let's Encrypt hatası bulunur. Alan adının sunucu IP adresine çözümlendiğini, 80 portunun açık olduğunu ve çalışan IPv6 olmadan bir AAAA kaydı bulunmadığını kontrol edin. Nedeni düzelttikten sonra sertifikayı yeniden isteyin:
gitlab-ctl reconfigure
Let's Encrypt saat başına başarısız deneme sayısını sınırlar, bu nedenle yeniden denemeden önce nedeni düzeltin.
Temel GitLab yapılandırması
Herkese açık kaydı kapatma. Örnek yalnızca ekibiniz içinse kayıt sayfasından hesap oluşturmayı kapatın. Varsayılan olarak GitLab sayfanızı açan herkes kaydolabilir ve yeni hesap yönetici onayını bekler. En hızlı yol, GitLab ana sayfasındaki bannerda bulunan Deactivate düğmesidir. Ayrıca sağ üst köşeden Admin seçeneğini seçip Settings > General bölümüne gidebilir ve New user account restrictions alanını genişletebilirsiniz. Allow new user accounts onay kutusunu temizleyin ve Save changes seçeneğini seçin. Yeni hesapları bundan sonra yalnızca yöneticiler oluşturur.

Kullanıcı hesapları oluşturma. Admin > Instance overview > Users bölümüne gidin ve New user seçeneğini seçin, adı, kullanıcı adını ve e-posta adresini girin, ardından Create user seçeneğini seçin. Günlük iş için yönetici haklarına sahip kişisel bir hesap, root hesabını ise yalnızca gerektiğinde kullanın.
Grup oluşturma. Gruplar projeleri ve ekip üyelerini bir araya getirir. Üst çubukta Create new (artı simgesi) seçeneğini, ardından New group > Create group seçeneğini seçin, bir ad girin ve Create group seçeneğini seçin. Meslektaşlarınızı Manage > Members bölümünden gruba ekleyin.



SSH anahtarı ekleme. Depolarla SSH üzerinden çalışmak için her kullanıcı genel anahtarını Edit profile > Access > SSH keys bölümüne ekler: Add new key seçeneğini seçin, anahtarı yapıştırın ve Add key seçeneğini seçin.
GitLab, parola sıfırlama, hesap onaylama ve başarısız oturum açma denemelerinden sonra hesap kilidini açma için e-posta gönderir. Giden e-posta yapılandırılana kadar ("Sonra neler yapılandırılmalı" bölümüne bakın) bu işlevler çalışmaz ve yöneticilerin parolaları elle sıfırlaması gerekir.
Kurulumu doğrulama
Tüm GitLab hizmetlerinin çalıştığını kontrol edin:
gitlab-ctl status
Örnek çıktı:
run: gitaly: (pid 2981) 512s; run: log: (pid 2975) 512s run: gitlab-workhorse: (pid 3412) 498s; run: log: (pid 3401) 498s run: nginx: (pid 3530) 495s; run: log: (pid 3522) 495s run: postgresql: (pid 3105) 507s; run: log: (pid 3098) 507s run: puma: (pid 3288) 501s; run: log: (pid 3280) 501s run: redis: (pid 2950) 514s; run: log: (pid 2944) 514s run: sidekiq: (pid 3350) 499s; run: log: (pid 3342) 499s ...
Her satır run: ile başlamalıdır.
Yapılandırma ve hizmetlerin yerleşik kontrolünü çalıştırın:
gitlab-rake gitlab:check SANITIZE=true
Bir test deposu oluşturun. Web arayüzünde Create new > New project/repository > Create blank project seçeneğini seçin, test adını girin, grubunuzu seçin ve Initialize repository with a README seçeneğini işaretli bırakın. Create project seçeneğini seçin.


Bilgisayarınızdan SSH erişimini kontrol edin:
ssh -T [email protected]
Örnek çıktı:
Welcome to GitLab, @username!
Çalışan bir kurulum, kullanıcı adınızı içeren bir karşılama mesajıyla yanıt verir. Ardından test deposunu klonlayın:
git clone [email protected]:group/test.git
group ifadesini grubunuzun yoluyla değiştirin. Depo klonlanır ve README.md içeriyorsa GitLab kurulmuş ve çalışıyor demektir.
Sonra neler yapılandırılmalı
Yedekler. gitlab-backup create komutu, GitLab veritabanını, depoları ve diğer uygulama verilerini içeren bir uygulama yedeğini /var/opt/gitlab/backups dizininde oluşturur. /etc/gitlab/gitlab.rb ve /etc/gitlab/gitlab-secrets.json yapılandırma dosyaları dahil değildir ve ayrıca yedeklenmelidir, örneğin gitlab-ctl backup-etc ile. gitlab-secrets.json olmadan geri yüklenen bir örnek 2FA ayarlarının ve CI/CD değişkenlerinin şifresini çözemez. Uygulama ve yapılandırma yedeklerini düzenli olarak alın ve GitLab sunucusunun dışındaki bir depolamaya, örneğin INTROSERV Cloud Storage'a kopyalayın: bkz. INTROSERV Cloud Storage'ı sunucuya bağlama.
Giden e-posta. GitLab'ın bildirim, parola sıfırlama ve hesap onayı gönderebilmesi için /etc/gitlab/gitlab.rb dosyasında bir SMTP sunucusu yapılandırın. GitLab belgelerindeki SMTP ayarlarına bakın.
GitLab Runner. Runner, CI/CD işlem hatlarını çalıştırır. Derlemeler çok fazla CPU ve RAM kullanır, bu nedenle Runner'ı GitLab sunucusunun kendisine değil ayrı bir VPS'e veya dedicated sunucuya kurmak daha iyidir.
Güncellemeler. GitLab her ay yeni bir sürüm, güvenlik düzeltmelerini ise daha sık yayımlar. Birkaç sürüm atlayarak yükseltmeden önce resmi yükseltme yolunu kontrol edin: GitLab belirli ara sürümlerden geçmelidir. Bir yedek oluşturun, ardından apt update && apt install -y gitlab-ee ile güncelleyin.
İzleme. GitLab, Prometheus'u içerir ve kendi metriklerini dışa aktarır. Örneğin sağlığı Admin > Monitoring > Health check bölümünden kontrol edilebilir ve orada listelenen uç noktalar harici izleme sisteminize bağlanabilir.

GitLab örneğiniz için sunucu seçmek üzere Dedicated Sunucular sayfasına bakın.