giriiş
GitLab, sorun takibi gibi ek geliştirme özellikleriyle birlikte Git depolarını barındırmak için kullanılan açık kaynaklı bir uygulamadır. Kendi altyapısı kullanılarak barındırılmak üzere tasarlanmıştır ve bu sayede geliştirme ekibiniz için dahili bir depo olarak, kullanıcılarla iletişim kurmanın genel bir yolu olarak veya katkıda bulunanların kendi projelerini barındırmaları için bir araç olarak dağıtım esnekliği sunar.
GitLab projesi, donanımınızda bir kurulum mekanizmasıyla en az bir GitLab örneği oluşturmanıza olanak tanır. Bu kılavuz, GitLab Community Edition'ı bir Ubuntu sunucusuna nasıl kurup yapılandıracağınızı öğretecektir.
Ön koşullar
- Ayrıcalıklara sahip kök olmayan bir kullanıcıya sahip Ubuntu çalıştıran bir sunucu
sudoVe aktif güvenlik duvarı. - CPU'nuz için 4 çekirdek
- Bellek için 4 GB RAM
- Sunucunuza işaret eden bir alan adı
Adım 1 – Bağımlılıkları Kurun
GitLab'ı kurmadan önce, kurulum sırasında ve sürekli olarak kullanılacak yazılımları kurmak önemlidir. Gerekli yazılımlar, varsayılan Ubuntu paket depolarından yüklenebilir.
Öncelikle yerel paket listesini yenileyelim:
sudo apt updateDaha sonra şu komutu girerek bağımlılıkları kurun:
sudo apt install ca-certificates curl openssh-server postfix tzdata perlMuhtemelen bu yazılımların bir kısmı zaten yüklüdür. Postfix'i yüklemek için, istendiğinde İnternet Sitesi'ni seçin. Sonraki sayfada, sistemin posta gönderme şeklini yapılandırmak için sunucunuzun alan adını girin.
Bağımlılıkları yüklediğinize göre artık GitLab'ı yüklemeye hazırsınız.
Adım 2 – GitLab'ı yükleyin
Bağımlılıklara rağmen GitLab'ı kurabilirsiniz. Bu işlem, sisteminizi GitLab depolarıyla yapılandırmak için bir kurulum betiği kullanır.
Öncelikle /tmp klasörüne girelim:
cd /tmpDaha sonra kurulum betiğini indirin:
curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.shİndirdiğiniz betiği inceleyerek ne işe yaradığından emin olabilirsiniz. Ayrıca, GitLab kurulum talimatlarında betiğin barındırılan bir sürümünü de bulabilirsiniz:
less /tmp/script.deb.shBetiğin güvenli olduğundan emin olduktan sonra yükleyiciyi çalıştırın:
sudo bash /tmp/script.deb.shBetik, sunucunuzu GitLab tarafından yönetilen depoları kullanacak şekilde yapılandıracaktır. Bu, GitLab'ı sisteminizdeki diğer paketler için kullandığınız paket yönetim araçlarıyla yönetmenize olanak tanır. İşlem tamamlandığında, gerçek GitLab uygulamasını apt ile yükleyebilirsiniz:
sudo apt install gitlab-ceBu, sisteminize gerekli bileşenleri yükleyecektir ve tamamlanması biraz zaman alabilir.
Adım 3 – Güvenlik duvarı kurallarını ayarlayın
GitLab'ı yapılandırmadan önce, güvenlik duvarı kurallarınızın web trafiğine izin verecek kadar izin verici olduğundan emin olmanız gerekir. Önkoşullar bölümünde bağlantısı verilen kılavuzu izlediyseniz, UFW güvenlik duvarını zaten etkinleştirmiş olursunuz.
Aşağıdakileri çalıştırarak etkin güvenlik duvarınızın geçerli durumunu görüntüleyin:
sudo ufw statusOutput
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)Mevcut kurallar SSH trafiğinin geçmesine izin veriyor, ancak diğer hizmetlere erişim kısıtlı. GitLab bir web uygulaması olduğundan, HTTP erişimine izin vermelisiniz. GitLab'ın Let's Encrypt'tan ücretsiz bir TLS/SSL sertifikası isteme ve etkinleştirme özelliğini kullanacağınız için, HTTPS erişimine de izin verin.
HTTP ve HTTPS için port eşleme protokolü /etc/services dosyasında mevcuttur, böylece bu trafiğe adına göre izin verebilirsiniz. OpenSSH trafiğini henüz etkinleştirmediyseniz, bu trafiğe izin vermeniz gerekir:
sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSHEn azından şu iki hizmete erişiminiz olduğundan emin olmak için ufw durumunuzu tekrar kontrol edebilirsiniz:
sudo ufw statusOutput
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
Bu çıktı, uygulama yapılandırıldıktan sonra GitLab web arayüzünün artık erişilebilir olduğunu göstermektedir.
Adım 4 – GitLab yapılandırma dosyasını düzenleyin
Uygulamayı kullanabilmeniz için yapılandırma dosyasını güncellemeniz ve bir yeniden yapılandırma komutu çalıştırmanız gerekir. İlk olarak, GitLab yapılandırma dosyasını favori metin düzenleyicinizle açın. Bu örnekte nano kullanılmıştır:
sudo nano /etc/gitlab/gitlab.rbexternal_url yapılandırma satırını arayın. Alan adınızla eşleşecek şekilde güncelleyin ve kullanıcıları otomatik olarak Let's Encrypt sertifikasıyla korunan siteye yönlendirmek için http'yi https olarak değiştirdiğinizden emin olun:
...
## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
##!
##! Note: During installation/upgrades, the value of the environment variable
##! EXTERNAL_URL will be used to populate/replace this value.
##! On AWS EC2 instances, we also attempt to fetch the public hostname/IP
##! address from AWS. For more details, see:
##! https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
external_url 'https://your_domain'
...Ardından, letsencrypt['contact_emails'] ayarını bulun. Nano kullanıyorsanız, CTRL+W tuşlarına basarak arama sorgusunu etkinleştirebilirsiniz. Komut satırına letsencrypt['contact_emails'] yazın ve ENTER tuşuna basın. Bu ayar, Let's Encrypt projesinin alan adınızla ilgili bir sorun olması durumunda sizinle iletişime geçmek için kullanabileceği e-posta adreslerinin bir listesini tanımlar. Oluşabilecek herhangi bir sorundan haberdar olmak için bu açıklamayı kaldırmanız ve doldurmanız önerilir:
letsencrypt['contact_emails'] = ['[email protected]']
Değişikliklerinizi yaptıktan sonra dosyayı kaydedip kapatın. Nano kullanıyorsanız, bunu şu şekilde yapabilirsiniz: CTRL+X, Daha sonra Y Ve daha sonra GİRMEK Yap bunu.
GitLab'ı yeniden yapılandırmak için aşağıdaki komutu çalıştırın:
sudo gitlab-ctl reconfigureBu, GitLab'ın sunucunuz hakkında bulabildiği bilgileri kullanarak başlatılmasını sağlayacaktır. Bu tamamen otomatik bir işlemdir, bu nedenle herhangi bir isteğe yanıt vermenize gerek kalmayacaktır. Bu işlem aynı zamanda alan adınız için bir Let's Encrypt sertifikası da yapılandıracaktır.
Adım 5 – Web arayüzü üzerinden ilk yapılandırmayı gerçekleştirin
GitLab çalışırken, web arayüzü üzerinden uygulamanın ilk yapılandırmasını gerçekleştirebilirsiniz.
İlk kez giriş yapın
Web tarayıcınızda GitLab sunucunuzun alan adını ziyaret edin:
https://your_domainİlk ziyaretinizde karşınıza bir giriş sayfası çıkacak:
GitLab sizin için güvenli bir başlangıç parolası oluşturacaktır. Bu parola, yönetici sudo kullanıcısı olarak erişebileceğiniz bir klasörde saklanacaktır:
sudo nano /etc/gitlab/initial_root_password# WARNING: This value is valid only in the following conditions
# 1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the firs$
# 2. Password hasn't been changed manually, either via UI or via command line.
#
# If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
Password: YOUR_PASSWORD
# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.Giriş sayfasında aşağıdakini girin:
- Kullanıcı adı: root
- Şifre: [/etc/gitlab/initial_root_password'de listelenen şifre]
Aşağıdaki değerleri alanlara girin ve Giriş Yap butonuna tıklayın. Uygulamaya giriş yapacak ve proje eklemeye başlamanızı isteyen bir açılış sayfasına yönlendirileceksiniz:
Artık GitLab örneğinizi ince ayarlayabilirsiniz.
Şifrenizi güncelleyin
Giriş yaptıktan sonra yapmanız gereken ilk şeylerden biri şifrenizi değiştirmektir. Bunun için gezinme çubuğunun sağ üst köşesindeki simgeye tıklayın ve "Profili Düzenle"yi seçin:
Ardından Kullanıcı Ayarları sayfasına yönlendirileceksiniz. Sol gezinme çubuğunda, oluşturduğunuz GitLab parolanızı güvenli bir parolayla değiştirmek için Parola'yı seçin ve güncelleme tamamlandıktan sonra Parolayı Kaydet düğmesine tıklayın:
Şifrenizin değiştirildiğine dair bir bildirimle giriş sayfasına yönlendirileceksiniz. GitLab örneğinize tekrar giriş yapmak için yeni şifrenizi girin:

Profil ayarlarınızı düzenleyin
GitLab bazı makul varsayılan ayarlar seçse de, bunlar genellikle yazılımı kullanmaya başladığınızda uygun olmayacaktır. Gerekli değişiklikleri yapmak için, gezinme çubuğunun sağ üst köşesindeki kullanıcı simgesine tıklayın ve Profili Düzenle'yi seçin.
"Yönetici" ve "[email protected]" ad ve e-posta adresini daha spesifik bir değere ayarlayabilirsiniz. Seçtiğiniz ad diğer kullanıcılara gösterilirken, e-posta adresi varsayılan avatarı, bildirimleri, arayüz üzerinden Git işlemlerini ve daha fazlasını tanımlamak için kullanılacaktır:
Güncellemeler tamamlandıktan sonra, alttaki Profil Ayarlarını Güncelle düğmesine tıklayın. Değişiklikleri onaylamak için parolanızı girmeniz istenecektir. Verdiğiniz adrese bir onay e-postası gönderilecektir. Hesabınızı doğrulamak ve GitLab ile kullanabilmek için e-postadaki talimatları izleyin.
Hesap adını değiştir
Ardından sol gezinme çubuğunda Hesap'ı seçin:
Burada iki faktörlü kimlik doğrulamayı etkinleştirebilir ve kullanıcı adınızı değiştirebilirsiniz. Varsayılan olarak, ilk yönetici hesabının adı root'tur. Bu bilinen bir hesap adı olduğundan, başka bir adla değiştirmek daha güvenlidir. Yönetici ayrıcalıklarına sahip olmaya devam edeceksiniz. Değişen tek şey addır. root yerine istediğiniz kullanıcı adını yazın:
Değişikliği yapmak için "Kullanıcı adını güncelle" düğmesine tıklayın. Ardından değişikliği onaylamanız istenecektir. GitLab'a bir sonraki girişinizde yeni kullanıcı adınızı kullanmayı unutmayın.
Hesabınıza bir SSH anahtarı ekleme
GitLab projeleriyle etkileşim kurmak için Git üzerinden SSH anahtarlarını etkinleştirebilirsiniz. Bunun için SSH genel anahtarınızı GitLab hesabınıza eklemeniz gerekir.
Sol gezinme çubuğunda SSH anahtarlarını seçin:
Yerel bilgisayarınızda zaten bir SSH anahtar çifti oluşturduysanız, aşağıdakileri yazarak genel anahtarı görüntüleyebilirsiniz:
cat ~/.ssh/id_rsa.pubOutput
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktopBu metni kopyalayın ve GitLab örneğinizdeki Anahtar metin kutusuna girin. Bunun yerine başka bir mesaj alırsanız, makinenizde henüz bir SSH anahtar çifti yapılandırmamışsınız demektir:
Output
cat: /home/sammy/.ssh/id_rsa.pub: No such file or directoryEğer öyleyse, aşağıdaki komutu girerek bir SSH anahtar çifti oluşturabilirsiniz:
[environment local]
ssh-keygenVarsayılanları kabul edin ve isteğe bağlı olarak anahtarı yerel olarak güvence altına almak için bir parola sağlayın:
Output
[environment local]
Generating public/private rsa key pair.
Enter file in which to save the key (/home/sammy/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/sammy/.ssh/id_rsa.
Your public key has been saved in /home/sammy/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:I8v5/M5xOicZRZq/XRcSBNxTQV2BZszjlWaIHi5chc0 [email protected]
The key's randomart image is:
+---[RSA 2048]----+
| ..%o==B|
| *.E =.|
| . ++= B |
| ooo.o . |
| . S .o . .|
| . + .. . o|
| + .o.o ..|
| o .++o . |
| oo=+ |
+----[SHA256]-----+Bunu yaptıktan sonra, önceki örnekte olduğu gibi şu komutu girerek genel anahtarınızı görüntüleyebilirsiniz:
cat ~/.ssh/id_rsa.pubOutput
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktopBu metin bloğunu alıp GitLab örneğinizdeki Anahtar metin kutusuna yapıştırın. Açıklayıcı bir başlık verin ve Anahtar Ekle düğmesine tıklayın.
Artık GitLab hesap bilgilerinizi vermenize gerek kalmadan GitLab projelerinizi ve depolarınızı yerel makinenizden yönetebilirsiniz.
Adım 6 – Kamu Kayıtlarını Kısıtlayın veya Devre Dışı Bırakın
Mevcut kurulumunuzla, GitLab örnek açılış sayfanızı ziyaret eden herkes bir hesap oluşturabilir. Herkese açık bir projeyi barındırmak istiyorsanız, aradığınız bu olabilir. Ancak çoğu zaman daha sınırlı bir kurulum tercih edilir.
Başlamak için üst gezinme çubuğundaki hamburger menüsüne tıklayarak yönetici bölümüne gidin ve açılır menüden Yönetici'yi seçin:
Sol gezinme çubuğundan Ayarlar'ı seçin:
GitLab örneği için genel ayarlara yönlendirileceksiniz. Burada, yeni kullanıcıların nasıl kaydolacağını ve erişim düzeylerini etkileyen bir dizi ayarı yapılandırabilirsiniz.
Kayıtları devre dışı bırak
Kayıtları tamamen devre dışı bırakmak istiyorsanız Kayıt Kısıtlamaları bölümüne gidin ve seçenekleri görüntülemek için Genişlet'e basın.
Daha sonra Kayıt etkinleştirildi seçeneğinin işaretini kaldırın:
Değişikliklerinizi yaptıktan sonra "Değişiklikleri Kaydet" butonuna tıklamayı unutmayın. Kayıt bölümü artık GitLab açılış sayfasından kaldırıldı.
Alan adına göre kaydı kısıtla
GitLab'ı, bir alan adıyla ilişkili e-posta adresleri sağlayan bir kuruluşun parçası olarak kullanıyorsanız, tamamen devre dışı bırakmak yerine alan adına göre kayıtları kısıtlayabilirsiniz. Kayıt Kısıtlamaları bölümünde, kullanıcıların yalnızca e-postalarını doğruladıktan sonra oturum açmalarına izin veren Kayıt sırasında onay e-postası gönder onay kutusunu seçin.
Ardından, alan adınızı veya alan adlarınızı, her satıra bir alan adı gelecek şekilde kayıt için beyaz listeye ekleyin. Joker alan adlarını belirtmek için yıldız işaretini "*" kullanabilirsiniz:
İşiniz bittiğinde Değişiklikleri Kaydet düğmesine tıklayın. Kayıt bölümü artık GitLab açılış sayfasından kaldırıldı.
Proje oluşturmayı kısıtla
Varsayılan olarak, yeni kullanıcılar en fazla 10 proje oluşturabilir. Dışarıdan yeni kullanıcıların projeyi görüntülemesine ve katkıda bulunmasına izin vermek, ancak yeni proje oluşturma erişimlerini sınırlamak istiyorsanız, bunu Hesap Ayarları ve Kısıtlamalar bölümünden yapabilirsiniz.
İçeride, yeni kullanıcıların proje oluşturmasını tamamen devre dışı bırakmak için varsayılan proje sınırını 0 olarak değiştirebilirsiniz:
Yeni kullanıcılar projelere manuel olarak eklenebilir ve diğer kullanıcılar tarafından oluşturulan dahili veya genel projelere erişebilir. Güncellemeden sonra "Değişiklikleri Kaydet" düğmesine tıklamayı unutmayın. Yeni kullanıcılar artık hesap oluşturabilir, ancak proje oluşturamazlar.
Let's Encrypt sertifikalarının yenilenmesi
GitLab, varsayılan olarak, her dördüncü günde bir gece yarısından sonra, external_url'nize bağlı olarak tam dakikada Let's Encrypt sertifikalarını yenilemek üzere ayarlanmış zamanlanmış bir göreve sahiptir. Bu ayarı /etc/gitlab/gitlab.rb dosyasında değiştirebilirsiniz.
Örneğin, her yedinci günde bir saat 12:30'da yenilemek istiyorsanız, bunu yapacak şekilde yapılandırabilirsiniz. Öncelikle yapılandırma dosyasına gidin:
sudo nano /etc/gitlab/gitlab.rbDaha sonra dosyada aşağıdaki satırları bulup # satırını silin ve aşağıdaki satırlarla güncelleyin:
...
################################################################################
# Let's Encrypt integration
################################################################################
# letsencrypt['enable'] = nil
letsencrypt['contact_emails'] = ['sammy@digitalocean'] # This should be an array of email addresses to add as contacts
# letsencrypt['group'] = 'root'
# letsencrypt['key_size'] = 2048
# letsencrypt['owner'] = 'root'
# letsencrypt['wwwroot'] = '/var/opt/gitlab/nginx/www'
# See http://docs.gitlab.com/omnibus/settings/ssl.html#automatic-renewal for more on these settings
letsencrypt['auto_renew'] = true
letsencrypt['auto_renew_hour'] = "12"
letsencrypt['auto_renew_minute'] = "30"
letsencrypt['auto_renew_day_of_month'] = "*/7"
...Ayrıca letsencrypt['auto_renew'] değerini false olarak ayarlayarak otomatik yenilemeyi devre dışı bırakabilirsiniz:
...
letsencrypt['auto_renew'] = false
...Otomatik yenileme ile hizmet kesintisi endişesi yaşamazsınız.
Sonuç
Artık sunucunuzda barındırılan bir GitLab örneğiniz var. Yeni projeler içe aktarmaya veya oluşturmaya ve bir ekip için uygun erişim düzeylerini yapılandırmaya başlayabilirsiniz. GitLab, platformuna sürekli olarak özellikler ve güncellemeler eklemektedir, bu nedenle önemli gelişmelerden veya duyurulardan haberdar olmak için proje ana sayfasını kontrol ettiğinizden emin olun.























