{"id":32596,"date":"2025-10-23T19:41:03","date_gmt":"2025-10-23T16:41:03","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=32596"},"modified":"2025-10-23T19:41:03","modified_gmt":"2025-10-23T16:41:03","slug":"gitlabi-ubuntu-18-04-uzerine-kurulum-ve-yapilandirma-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/gitlabi-ubuntu-18-04-uzerine-kurulum-ve-yapilandirma-rehberi\/","title":{"rendered":"GitLab&#8217;\u0131 Ubuntu 18.04 \u00dczerine Kurulum ve Yap\u0131land\u0131rma Rehberi"},"content":{"rendered":"<p><body><\/p>\n<h2>GitLab&#8217;\u0131 Ubuntu 18.04 \u00dczerine Kurulum ve Yap\u0131land\u0131rma Rehberi<\/h2>\n<h2>Giri\u015f<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde versiyon kontrol sistemleri (VCS) ve i\u015fbirli\u011fi platformlar\u0131 vazge\u00e7ilmez bir rol oynamaktad\u0131r. Git, da\u011f\u0131t\u0131k bir versiyon kontrol sistemi olarak bu alandaki en pop\u00fcler ara\u00e7lardan biridir. Ancak Git&#8217;in tek ba\u015f\u0131na sundu\u011fu \u00f6zellikler, b\u00fcy\u00fck ekiplerin ve karma\u015f\u0131k projelerin ihtiya\u00e7lar\u0131n\u0131 kar\u015f\u0131lamakta yetersiz kalabilir. \u0130\u015fte bu noktada GitLab gibi platformlar devreye girer.<\/p>\n<p>GitLab, Git tabanl\u0131 bir depo y\u00f6neticisi olman\u0131n \u00f6tesinde, tam te\u015fekk\u00fcll\u00fc bir DevOps platformudur. Kaynak kodu y\u00f6netimi, s\u00fcrekli entegrasyon (CI), s\u00fcrekli da\u011f\u0131t\u0131m (CD), proje y\u00f6netimi, g\u00fcvenlik taramalar\u0131 ve izleme gibi bir\u00e7ok \u00f6zelli\u011fi tek bir \u00e7at\u0131 alt\u0131nda sunar. Bu sayede geli\u015ftiriciler, operasyon ekipleri ve proje y\u00f6neticileri ayn\u0131 platform \u00fczerinde i\u015fbirli\u011fi yapabilir, s\u00fcre\u00e7leri otomatikle\u015ftirebilir ve yaz\u0131l\u0131m teslimat\u0131n\u0131 h\u0131zland\u0131rabilirler. GitLab&#8217;\u0131n a\u00e7\u0131k kaynak (Community Edition &#8211; CE) ve \u00fccretli (Enterprise Edition &#8211; EE) s\u00fcr\u00fcmleri bulunmaktad\u0131r. Bu rehberde, kendi sunucunuzda \u00fccretsiz olarak kullanabilece\u011finiz GitLab Community Edition&#8217;\u0131n Ubuntu 18.04 i\u015fletim sistemi \u00fczerine kurulumu ve temel yap\u0131land\u0131rmas\u0131 ad\u0131m ad\u0131m anlat\u0131lacakt\u0131r.<\/p>\n<p>Ubuntu 18.04, uzun s\u00fcreli destek (LTS) sunan stabil bir i\u015fletim sistemi oldu\u011fu i\u00e7in sunucu ortamlar\u0131nda s\u0131k\u00e7a tercih edilmektedir. Bu rehber, GitLab&#8217;\u0131n t\u00fcm potansiyelini kullanmaya ba\u015flaman\u0131z i\u00e7in sa\u011flam bir temel olu\u015fturacakt\u0131r.<\/p>\n<h2>\u00d6n Gereksinimler<\/h2>\n<p>GitLab&#8217;\u0131 ba\u015far\u0131yla kurabilmek ve sorunsuz bir \u015fekilde \u00e7al\u0131\u015ft\u0131rabilmek i\u00e7in baz\u0131 temel \u00f6n gereksinimleri kar\u015f\u0131laman\u0131z gerekmektedir. Bu ad\u0131mlar\u0131 tamamlamak, kurulum s\u00fcrecini kolayla\u015ft\u0131racak ve olas\u0131 hatalar\u0131 minimize edecektir.<\/p>\n<h3>Sistem Gereksinimleri<\/h3>\n<p>GitLab, \u00f6zellikle b\u00fcy\u00fck projeler ve \u00e7ok say\u0131da kullan\u0131c\u0131 i\u00e7in belirli sistem kaynaklar\u0131na ihtiya\u00e7 duyar. Minimum gereksinimler a\u015fa\u011f\u0131daki gibidir, ancak daha iyi performans i\u00e7in \u00f6nerilen de\u011ferler her zaman daha y\u00fcksektir:<\/p>\n<p>*   <strong>\u0130\u015flemci (CPU):<\/strong> En az 2 \u00e7ekirdekli bir i\u015flemci \u00f6nerilir. Yo\u011fun kullan\u0131mlarda 4 veya daha fazla \u00e7ekirdek performans art\u0131\u015f\u0131 sa\u011flayacakt\u0131r.<br \/>\n*   <strong>Bellek (RAM):<\/strong> En az 4 GB RAM \u00f6nerilir. K\u00fc\u00e7\u00fck kurulumlar i\u00e7in 2 GB RAM ile \u00e7al\u0131\u015fabilse de, CI\/CD i\u015fleri, birden fazla kullan\u0131c\u0131 ve di\u011fer servisler i\u00e7in 4 GB veya \u00fczeri kritik \u00f6neme sahiptir. 8 GB veya daha fazlas\u0131 idealdir.<br \/>\n*   <strong>Disk Alan\u0131:<\/strong> En az 50 GB bo\u015f disk alan\u0131 \u00f6nerilir. Projelerinizin boyutuna, CI\/CD \u00f6nbelleklerine ve yedeklemelere ba\u011fl\u0131 olarak bu miktar h\u0131zla artabilir. H\u0131zl\u0131 depolama (SSD) performans\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131racakt\u0131r.<\/p>\n<h3>Ubuntu 18.04 Sunucusu<\/h3>\n<p>Bu rehber, temiz bir Ubuntu 18.04 sunucusu \u00fczerinde kurulumu hedeflemektedir. Sunucunuza SSH ile eri\u015fiminizin olmas\u0131 gerekmektedir.<\/p>\n<h3>Sudo Yetkileri<\/h3>\n<p>Kurulum ve yap\u0131land\u0131rma ad\u0131mlar\u0131 i\u00e7in <code>sudo<\/code> yetkilerine sahip bir kullan\u0131c\u0131 ile oturum a\u00e7m\u0131\u015f olman\u0131z gerekmektedir.<\/p>\n<h3>Domain Ad\u0131 veya Statik IP Adresi<\/h3>\n<p>GitLab aray\u00fcz\u00fcne eri\u015fmek i\u00e7in bir domain ad\u0131 (\u00f6rn: <code>gitlab.example.com<\/code>) veya sunucunuzun statik bir IP adresine ihtiyac\u0131n\u0131z olacakt\u0131r. Domain ad\u0131 kullanmak, \u00f6zellikle HTTPS yap\u0131land\u0131rmas\u0131 i\u00e7in \u015fiddetle tavsiye edilir. DNS kay\u0131tlar\u0131n\u0131z\u0131n (A kayd\u0131) sunucunuzun IP adresini i\u015faret etti\u011finden emin olun.<\/p>\n<h3>G\u00fcvenlik Duvar\u0131 Ayarlar\u0131<\/h3>\n<p>GitLab&#8217;a web \u00fczerinden eri\u015fim sa\u011flamak i\u00e7in g\u00fcvenlik duvar\u0131n\u0131zda HTTP (port 80) ve HTTPS (port 443) portlar\u0131n\u0131n a\u00e7\u0131k olmas\u0131 gerekmektedir. SSH (port 22) portunun da y\u00f6netim eri\u015fimi i\u00e7in a\u00e7\u0131k olmas\u0131 gerekir.<\/p>\n<h2>Sistemin G\u00fcncellenmesi ve Temel Paketlerin Kurulumu<\/h2>\n<p>Kuruluma ba\u015flamadan \u00f6nce, Ubuntu sisteminizin g\u00fcncel oldu\u011fundan emin olmak ve GitLab&#8217;\u0131n ihtiya\u00e7 duydu\u011fu baz\u0131 temel paketleri kurmak iyi bir uygulamad\u0131r. Bu, ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131n\u0131 \u00f6nlemeye yard\u0131mc\u0131 olur.<\/p>\n<p>\u0130lk olarak, paket listesini g\u00fcncelleyin ve y\u00fckl\u00fc paketleri en son s\u00fcr\u00fcmlerine y\u00fckseltin:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt upgrade -y<\/code><\/pre>\n<p>Ard\u0131ndan, GitLab&#8217;\u0131n repository&#8217;sini eklemek ve e-posta g\u00f6nderme yetenekleri i\u00e7in gerekli olan baz\u0131 paketleri kural\u0131m. <code>postfix<\/code>, GitLab&#8217;\u0131n bildirim e-postalar\u0131 g\u00f6ndermesi i\u00e7in bir e-posta sunucusu g\u00f6revi g\u00f6recektir.<\/p>\n<pre><code class=\"language-bash\">sudo apt install -y curl ca-certificates apt-transport-https software-properties-common postfix<\/code><\/pre>\n<p><code>postfix<\/code> kurulumu s\u0131ras\u0131nda size bir yap\u0131land\u0131rma ekran\u0131 sunulabilir. Genellikle &#8220;Internet Site&#8221; se\u00e7ene\u011fini se\u00e7ip, sisteminizin tam nitelikli alan ad\u0131n\u0131 (FQDN) veya GitLab&#8217;\u0131 bar\u0131nd\u0131raca\u011f\u0131n\u0131z domain ad\u0131n\u0131 girmeniz yeterlidir. E\u011fer bu ekran\u0131 ka\u00e7\u0131r\u0131rsan\u0131z veya yanl\u0131\u015f yap\u0131land\u0131r\u0131rsan\u0131z, daha sonra <code>sudo dpkg-reconfigure postfix<\/code> komutu ile tekrar yap\u0131land\u0131rabilirsiniz. Postfix, GitLab&#8217;\u0131n kullan\u0131c\u0131 kay\u0131tlar\u0131, parola s\u0131f\u0131rlamalar\u0131, bildirimler gibi e-posta tabanl\u0131 i\u015flemleri ger\u00e7ekle\u015ftirmesi i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<h2>GitLab Depolar\u0131n\u0131n Eklenmesi<\/h2>\n<p>GitLab&#8217;\u0131 do\u011frudan Ubuntu&#8217;nun varsay\u0131lan depolar\u0131ndan y\u00fckleyemezsiniz. GitLab, kendi paket depolar\u0131n\u0131 sa\u011flar. Bu depoyu sisteminize eklemeniz gerekmektedir.<\/p>\n<p>\u00d6ncelikle, GitLab&#8217;\u0131n resmi GPG anahtar\u0131n\u0131 sisteminize ekleyerek paketlerin orijinalli\u011fini do\u011frulayabiliriz:<\/p>\n<pre><code class=\"language-bash\">curl https:\/\/packages.gitlab.com\/install\/repositories\/gitlab\/gitlab-ce\/script.deb.sh | sudo bash<\/code><\/pre>\n<p>Bu komut, GitLab&#8217;\u0131n paket imzalama anahtar\u0131n\u0131 ekleyecek ve GitLab CE (Community Edition) deposunu <code>\/etc\/apt\/sources.list.d\/gitlab_gitlab-ce.list<\/code> dosyas\u0131na otomatik olarak ekleyecektir. <code>sudo bash<\/code> ile \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131 i\u00e7in ek yetki istemeyecektir.<\/p>\n<p>Depo eklendikten sonra, yeni paketin listesini almak i\u00e7in <code>apt update<\/code> komutunu tekrar \u00e7al\u0131\u015ft\u0131rman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo apt update<\/code><\/pre>\n<p>Art\u0131k sisteminiz GitLab paketini tan\u0131yacakt\u0131r.<\/p>\n<h2>GitLab Kurulumu<\/h2>\n<p>Gerekli t\u00fcm \u00f6n haz\u0131rl\u0131klar tamamland\u0131\u011f\u0131na g\u00f6re, GitLab CE paketini y\u00fcklemeye ge\u00e7ebiliriz.<\/p>\n<pre><code class=\"language-bash\">sudo apt install gitlab-ce -y<\/code><\/pre>\n<p>Bu komut, GitLab Community Edition&#8217;\u0131 ve t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 sisteminize kuracakt\u0131r. Kurulum s\u00fcreci, internet ba\u011flant\u0131n\u0131z\u0131n h\u0131z\u0131na ve sunucunuzun performans\u0131na ba\u011fl\u0131 olarak biraz zaman alabilir (genellikle 5-15 dakika). Kurulum s\u0131ras\u0131nda, GitLab bir\u00e7ok bile\u015feni (Nginx, PostgreSQL, Redis, Unicorn vb.) otomatik olarak kuracak ve temel yap\u0131land\u0131rmalar\u0131 yapacakt\u0131r.<\/p>\n<p>Kurulum tamamland\u0131\u011f\u0131nda, terminalde ba\u015far\u0131l\u0131 bir kurulum mesaj\u0131 g\u00f6rmelisiniz. Ancak bu, GitLab&#8217;\u0131n hen\u00fcz tam olarak yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131 anlam\u0131na gelmez. Sadece paketler y\u00fcklenmi\u015ftir.<\/p>\n<h2>GitLab&#8217;\u0131n Yap\u0131land\u0131r\u0131lmas\u0131 (Initial Configuration)<\/h2>\n<p>GitLab&#8217;\u0131n t\u00fcm servislerini do\u011fru bir \u015fekilde \u00e7al\u0131\u015f\u0131r hale getirmek ve web aray\u00fcz\u00fcne eri\u015febilmek i\u00e7in baz\u0131 temel yap\u0131land\u0131rmalar yapmam\u0131z gerekiyor. T\u00fcm GitLab yap\u0131land\u0131rmalar\u0131 <code>\/etc\/gitlab\/gitlab.rb<\/code> dosyas\u0131nda bulunur. Bu dosya, GitLab&#8217;\u0131n dahili web sunucusu (Nginx), veritaban\u0131 (PostgreSQL), Redis, Unicorn gibi t\u00fcm bile\u015fenlerinin davran\u0131\u015f\u0131n\u0131 kontrol etmenizi sa\u011flar.<\/p>\n<p>Yap\u0131land\u0131rma dosyas\u0131n\u0131 bir metin d\u00fczenleyici ile a\u00e7\u0131n (\u00f6rne\u011fin <code>nano<\/code> veya <code>vim<\/code>):<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/gitlab\/gitlab.rb<\/code><\/pre>\n<h3>Harici URL Ayar\u0131<\/h3>\n<p>Bu dosyadaki en \u00f6nemli ayar, GitLab&#8217;a web taray\u0131c\u0131s\u0131 \u00fczerinden eri\u015fece\u011finiz URL&#8217;dir. <code>external_url<\/code> sat\u0131r\u0131n\u0131 bulun ve yorum sat\u0131r\u0131n\u0131 kald\u0131rarak kendi domain ad\u0131n\u0131z\u0131 veya IP adresinizi girin:<\/p>\n<pre><code class=\"language-ruby\">external_url 'https:\/\/gitlab.example.com' # Kendi domain adresinizi veya IP adresinizi girin<\/code><\/pre>\n<p>E\u011fer domain kullan\u0131yorsan\u0131z, <code>https<\/code> kullanman\u0131z \u015fiddetle tavsiye edilir. Bu, bir sonraki ad\u0131mda Let&#8217;s Encrypt ile otomatik SSL sertifikas\u0131 almay\u0131 kolayla\u015ft\u0131racakt\u0131r.<\/p>\n<h3>HTTPS\/SSL Yap\u0131land\u0131rmas\u0131 (Let&#8217;s Encrypt ile \u00d6rnek)<\/h3>\n<p>G\u00fcvenli bir ba\u011flant\u0131 i\u00e7in HTTPS kullanmak zorunludur. GitLab, Let&#8217;s Encrypt ile otomatik SSL sertifikas\u0131 entegrasyonuna sahiptir, bu da s\u00fcreci olduk\u00e7a basitle\u015ftirir.<\/p>\n<p><code>gitlab.rb<\/code> dosyas\u0131nda a\u015fa\u011f\u0131daki sat\u0131rlar\u0131 bulun ve d\u00fczenleyin:<\/p>\n<pre><code class=\"language-ruby\"># Let's Encrypt'i etkinle\u015ftirin\nletsencrypt['enable'] = true\n\n<h2>Let's Encrypt sertifikas\u0131 i\u00e7in ileti\u015fim e-posta adresinizi girin<\/h2>\nletsencrypt['contact_emails'] = ['admin@example.com'] # Kendi e-posta adresinizi girin\n\n<h2>Sertifikalar\u0131n otomatik yenilenmesini etkinle\u015ftirin (varsay\u0131lan olarak true'dur, emin olmak i\u00e7in kontrol edin)<\/h2>\nletsencrypt['auto_renew'] = true\nletsencrypt['auto_renew_hour'] = 1\nletsencrypt['auto_renew_minute'] = 30\nletsencrypt['auto_renew_second'] = 45<\/code><\/pre>\n<p><code>contact_emails<\/code> k\u0131sm\u0131na ge\u00e7erli bir e-posta adresi girdi\u011finizden emin olun. Let&#8217;s Encrypt, sertifika s\u00fcresi doldu\u011funda veya bir sorun oldu\u011funda bu adrese bildirim g\u00f6nderecektir.<\/p>\n<h3>SMTP Yap\u0131land\u0131rmas\u0131 (E-posta G\u00f6nderimi \u0130\u00e7in)<\/h3>\n<p>GitLab&#8217;\u0131n kullan\u0131c\u0131 bildirimleri, parola s\u0131f\u0131rlamalar\u0131, CI\/CD durum g\u00fcncellemeleri gibi e-postalar\u0131 g\u00f6ndermesi i\u00e7in bir SMTP sunucusu yap\u0131land\u0131rman\u0131z gerekir. E\u011fer sunucunuzda zaten bir SMTP sunucusu (Postfix gibi) y\u00fckl\u00fcyse ve GitLab&#8217;\u0131n yerel olarak e-posta g\u00f6ndermesini istiyorsan\u0131z, bu b\u00f6l\u00fcm\u00fc atlayabilirsiniz. Ancak, daha g\u00fcvenilir ve harici bir SMTP hizmeti (Gmail, SendGrid, Mailgun vb.) kullanmak genellikle daha iyi bir yakla\u015f\u0131md\u0131r.<\/p>\n<p>\u00d6rnek olarak, harici bir SMTP sunucusu yap\u0131land\u0131rmas\u0131:<\/p>\n<pre><code class=\"language-ruby\">gitlab_rails['smtp_enable'] = true\ngitlab_rails['smtp_address'] = \"smtp.example.com\" # SMTP sunucunuzun adresi\ngitlab_rails['smtp_port'] = 587 # Veya 465 (SSL)\ngitlab_rails['smtp_user_name'] = \"smtp_kullanici_adi\" # SMTP kullan\u0131c\u0131 ad\u0131n\u0131z\ngitlab_rails['smtp_password'] = \"smtp_parolaniz\" # SMTP parolan\u0131z\ngitlab_rails['smtp_domain'] = \"example.com\" # E-posta domaininiz\ngitlab_rails['smtp_authentication'] = \"login\" # Veya \"plain\", \"cram_md5\"\ngitlab_rails['smtp_enable_starttls_auto'] = true\ngitlab_rails['smtp_tls'] = false # E\u011fer port 465 kullan\u0131yorsan\u0131z true olabilir, aksi halde false\ngitlab_rails['smtp_pool'] = false\n\ngitlab_rails['gitlab_email_from'] = 'gitlab@example.com' # GitLab'dan g\u00f6nderilen e-postalar\u0131n g\u00f6nderen adresi\ngitlab_rails['gitlab_email_display_name'] = 'GitLab'<\/code><\/pre>\n<p>Kendi SMTP sunucunuzun ayarlar\u0131n\u0131 (adres, port, kullan\u0131c\u0131 ad\u0131, parola, domain) buraya girmeniz gerekmektedir. <code>smtp_tls<\/code> ve <code>smtp_enable_starttls_auto<\/code> ayarlar\u0131, kulland\u0131\u011f\u0131n\u0131z SMTP sunucusunun g\u00fcvenlik gereksinimlerine g\u00f6re de\u011fi\u015febilir.<\/p>\n<h3>Di\u011fer \u00d6nemli Ayarlar (\u0130ste\u011fe Ba\u011fl\u0131)<\/h3>\n<p><code>gitlab.rb<\/code> dosyas\u0131nda yedekleme dizinleri, log seviyeleri, CI\/CD runner ayarlar\u0131 gibi bir\u00e7ok ba\u015fka yap\u0131land\u0131rma se\u00e7ene\u011fi de bulunmaktad\u0131r. \u0130htiya\u00e7lar\u0131n\u0131za g\u00f6re bu ayarlar\u0131 inceleyebilirsiniz. Ancak ilk kurulum i\u00e7in yukar\u0131daki ayarlar yeterlidir.<\/p>\n<p>Yap\u0131land\u0131rma dosyas\u0131nda de\u011fi\u015fiklikleri yapt\u0131ktan sonra kaydedin ve kapat\u0131n (nano i\u00e7in <code>CTRL+O<\/code>, <code>Enter<\/code>, <code>CTRL+X<\/code>).<\/p>\n<h2>GitLab&#8217;\u0131n Yeniden Yap\u0131land\u0131r\u0131lmas\u0131<\/h2>\n<p><code>gitlab.rb<\/code> dosyas\u0131nda yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fikliklerin etkili olmas\u0131 i\u00e7in GitLab&#8217;\u0131 yeniden yap\u0131land\u0131rman\u0131z gerekmektedir. Bu i\u015flem, GitLab&#8217;\u0131n t\u00fcm bile\u015fenlerini (Nginx, PostgreSQL, Redis, Unicorn vb.) g\u00fcncel yap\u0131land\u0131rma ile ba\u015ftan ba\u015flat\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo gitlab-ctl reconfigure<\/code><\/pre>\n<p>Bu komut, GitLab&#8217;\u0131n temelini olu\u015fturan Chef tabanl\u0131 bir arac\u0131 \u00e7al\u0131\u015ft\u0131r\u0131r. Bu ara\u00e7, <code>gitlab.rb<\/code> dosyas\u0131n\u0131 okur, gerekli servisleri durdurur, yap\u0131land\u0131rma dosyalar\u0131n\u0131 g\u00fcnceller, veritaban\u0131 \u015femas\u0131n\u0131 kontrol eder ve t\u00fcm servisleri yeniden ba\u015flat\u0131r. Bu i\u015flem, sisteminizin performans\u0131na ve yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fikliklerin karma\u015f\u0131kl\u0131\u011f\u0131na ba\u011fl\u0131 olarak 5-10 dakika s\u00fcrebilir.<\/p>\n<p>Yeniden yap\u0131land\u0131rma s\u0131ras\u0131nda terminalde bir\u00e7ok \u00e7\u0131kt\u0131 g\u00f6receksiniz. Her \u015fey yolunda giderse, sonunda &#8220;gitlab Reconfigured!&#8221; veya benzeri bir ba\u015far\u0131 mesaj\u0131 almal\u0131s\u0131n\u0131z. E\u011fer bir hata olursa, hata mesaj\u0131n\u0131 dikkatlice okuyarak sorunu gidermeye \u00e7al\u0131\u015f\u0131n. \u00d6zellikle Let&#8217;s Encrypt ile ilgili hatalar genellikle DNS kay\u0131tlar\u0131n\u0131n do\u011fru olmamas\u0131ndan veya g\u00fcvenlik duvar\u0131 ayarlar\u0131ndan kaynaklan\u0131r.<\/p>\n<h2>G\u00fcvenlik Duvar\u0131 Ayarlar\u0131<\/h2>\n<p>GitLab web aray\u00fcz\u00fcne eri\u015febilmek i\u00e7in g\u00fcvenlik duvar\u0131n\u0131zda gerekli portlar\u0131n a\u00e7\u0131k olmas\u0131 gerekmektedir. Ubuntu&#8217;da UFW (Uncomplicated Firewall) yayg\u0131n olarak kullan\u0131l\u0131r.<\/p>\n<p>UFW&#8217;nin durumunu kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo ufw status<\/code><\/pre>\n<p>E\u011fer UFW etkin de\u011filse, etkinle\u015ftirebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo ufw enable<\/code><\/pre>\n<p>Gerekli portlar\u0131 a\u00e7\u0131n:<\/p>\n<p>*   <strong>SSH (22):<\/strong> Sunucuya eri\u015fim i\u00e7in.<br \/>\n*   <strong>HTTP (80):<\/strong> \u0130lk eri\u015fim ve Let&#8217;s Encrypt do\u011frulama i\u00e7in.<br \/>\n*   <strong>HTTPS (443):<\/strong> G\u00fcvenli web eri\u015fimi i\u00e7in.<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow OpenSSH\nsudo ufw allow http\nsudo ufw allow https<\/code><\/pre>\n<p>Portlar\u0131 a\u00e7t\u0131ktan sonra UFW durumunu tekrar kontrol ederek de\u011fi\u015fikliklerin uyguland\u0131\u011f\u0131ndan emin olun:<\/p>\n<pre><code class=\"language-bash\">sudo ufw status<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da 80, 443 ve 22 portlar\u0131n\u0131n izin verilenler listesinde oldu\u011funu g\u00f6rmelisiniz.<\/p>\n<h2>GitLab Aray\u00fcz\u00fcne Eri\u015fim ve \u0130lk Giri\u015f<\/h2>\n<p>T\u00fcm kurulum ve yap\u0131land\u0131rma ad\u0131mlar\u0131 tamamland\u0131ktan sonra, GitLab web aray\u00fcz\u00fcne eri\u015fmeye haz\u0131rs\u0131n\u0131z.<\/p>\n<p>Web taray\u0131c\u0131n\u0131z\u0131 a\u00e7\u0131n ve <code>gitlab.rb<\/code> dosyas\u0131nda <code>external_url<\/code> olarak ayarlad\u0131\u011f\u0131n\u0131z adrese gidin (\u00f6rn: <code>https:\/\/gitlab.example.com<\/code>).<\/p>\n<p>\u0130lk eri\u015fiminizde, GitLab sizden <code>root<\/code> kullan\u0131c\u0131s\u0131 i\u00e7in yeni bir parola olu\u015fturman\u0131z\u0131 isteyecektir. Bu, GitLab&#8217;\u0131n ilk y\u00f6netici hesab\u0131d\u0131r. G\u00fc\u00e7l\u00fc bir parola belirleyin ve bu parolay\u0131 g\u00fcvenli bir yerde saklay\u0131n.<\/p>\n<p>Parolay\u0131 belirledikten sonra, giri\u015f ekran\u0131na y\u00f6nlendirileceksiniz.<br \/>\n*   <strong>Kullan\u0131c\u0131 Ad\u0131:<\/strong> <code>root<\/code><br \/>\n*   <strong>Parola:<\/strong> Az \u00f6nce belirledi\u011finiz parola<\/p>\n<p>Giri\u015f yapt\u0131ktan sonra, GitLab&#8217;\u0131n ana kontrol paneline y\u00f6nlendirileceksiniz. Art\u0131k GitLab&#8217;\u0131 kullanmaya ba\u015flayabilirsiniz!<\/p>\n<h2>GitLab Kullan\u0131m\u0131na Ba\u015flama<\/h2>\n<p>GitLab kontrol paneline eri\u015ftikten sonra, projelerinizi y\u00f6netmeye ve geli\u015ftirme s\u00fcre\u00e7lerinizi optimize etmeye ba\u015flayabilirsiniz.<\/p>\n<h3>Proje Olu\u015fturma<\/h3>\n<p>GitLab&#8217;da bir proje, kod depolar\u0131n\u0131z\u0131, sorun izleyicilerinizi, CI\/CD ard\u0131\u015f\u0131k d\u00fczenlerinizi ve daha fazlas\u0131n\u0131 bar\u0131nd\u0131ran temel bir birimdir.<br \/>\n*   Sol \u00fcst k\u00f6\u015fedeki &#8220;Menu&#8221; d\u00fc\u011fmesine t\u0131klay\u0131n.<br \/>\n*   &#8220;Projects&#8221; -> &#8220;Your projects&#8221; se\u00e7ene\u011fine gidin.<br \/>\n*   &#8220;New project&#8221; d\u00fc\u011fmesine t\u0131klay\u0131n.<br \/>\n*   &#8220;Create blank project&#8221; se\u00e7ene\u011fini se\u00e7in.<br \/>\n*   Projenize bir ad verin, iste\u011fe ba\u011fl\u0131 bir a\u00e7\u0131klama ekleyin ve g\u00f6r\u00fcn\u00fcrl\u00fck seviyesini (Private, Internal, Public) belirleyin.<br \/>\n*   &#8220;Create project&#8221; d\u00fc\u011fmesine t\u0131klay\u0131n.<\/p>\n<h3>Kullan\u0131c\u0131 Ekleme<\/h3>\n<p>Ekibinizdeki di\u011fer \u00fcyelerin GitLab&#8217;\u0131 kullanabilmesi i\u00e7in onlar\u0131 sisteme eklemeniz gerekir.<br \/>\n*   Sol \u00fcst k\u00f6\u015fedeki &#8220;Menu&#8221; d\u00fc\u011fmesine t\u0131klay\u0131n.<br \/>\n*   &#8220;Admin&#8221; -> &#8220;Overview&#8221; -> &#8220;Users&#8221; se\u00e7ene\u011fine gidin.<br \/>\n*   &#8220;New user&#8221; d\u00fc\u011fmesine t\u0131klay\u0131n.<br \/>\n*   Kullan\u0131c\u0131n\u0131n ad\u0131n\u0131, e-posta adresini ve iste\u011fe ba\u011fl\u0131 di\u011fer bilgileri girin.<br \/>\n*   Parola olu\u015fturma se\u00e7ene\u011fini i\u015faretleyebilir veya kullan\u0131c\u0131n\u0131n ilk giri\u015fte parolas\u0131n\u0131 s\u0131f\u0131rlamas\u0131n\u0131 sa\u011flayabilirsiniz.<br \/>\n*   &#8220;Create user&#8221; d\u00fc\u011fmesine t\u0131klay\u0131n.<br \/>\n*   Olu\u015fturulan kullan\u0131c\u0131ya bir projede veya grupta uygun yetkileri (Developer, Maintainer vb.) vermeniz gerekecektir.<\/p>\n<h3>Grup Olu\u015fturma<\/h3>\n<p>Gruplar, birden fazla projeyi bir araya getirerek kullan\u0131c\u0131 yetkilerini ve g\u00f6r\u00fcn\u00fcrl\u00fc\u011f\u00fc daha kolay y\u00f6netmenizi sa\u011flar.<br \/>\n*   Sol \u00fcst k\u00f6\u015fedeki &#8220;Menu&#8221; d\u00fc\u011fmesine t\u0131klay\u0131n.<br \/>\n*   &#8220;Groups&#8221; -> &#8220;Your groups&#8221; se\u00e7ene\u011fine gidin.<br \/>\n*   &#8220;New group&#8221; d\u00fc\u011fmesine t\u0131klay\u0131n.<br \/>\n*   Gruba bir ad verin, iste\u011fe ba\u011fl\u0131 bir a\u00e7\u0131klama ekleyin ve g\u00f6r\u00fcn\u00fcrl\u00fck seviyesini belirleyin.<br \/>\n*   &#8220;Create group&#8221; d\u00fc\u011fmesine t\u0131klay\u0131n.<br \/>\n*   Olu\u015fturulan gruba kullan\u0131c\u0131lar\u0131 davet edebilir ve grup i\u00e7indeki t\u00fcm projelere otomatik olarak eri\u015fimlerini sa\u011flayabilirsiniz.<\/p>\n<h3>SSH Anahtar\u0131 Ekleme<\/h3>\n<p>Git deposuna <code>git clone<\/code>, <code>git push<\/code> gibi komutlarla eri\u015fmek i\u00e7in genellikle SSH anahtarlar\u0131 kullan\u0131l\u0131r. Her kullan\u0131c\u0131n\u0131n kendi SSH genel anahtar\u0131n\u0131 GitLab profiline eklemesi gerekir.<br \/>\n*   Kullan\u0131c\u0131lar kendi GitLab hesaplar\u0131na giri\u015f yapar.<br \/>\n*   Sa\u011f \u00fcst k\u00f6\u015fedeki kullan\u0131c\u0131 avatar\u0131na t\u0131klay\u0131n ve &#8220;Preferences&#8221; se\u00e7ene\u011fini se\u00e7in.<br \/>\n*   Sol men\u00fcden &#8220;SSH Keys&#8221; se\u00e7ene\u011fine t\u0131klay\u0131n.<br \/>\n*   Yerel makinenizde olu\u015fturdu\u011funuz genel SSH anahtar\u0131n\u0131z\u0131 (genellikle <code>~\/.ssh\/id_rsa.pub<\/code> dosyas\u0131n\u0131n i\u00e7eri\u011fi) &#8220;Key&#8221; alan\u0131na yap\u0131\u015ft\u0131r\u0131n ve bir ba\u015fl\u0131k verin.<br \/>\n*   &#8220;Add key&#8221; d\u00fc\u011fmesine t\u0131klay\u0131n.<\/p>\n<h3>CI\/CD Genel Bak\u0131\u015f<\/h3>\n<p>GitLab&#8217;\u0131n en g\u00fc\u00e7l\u00fc \u00f6zelliklerinden biri entegre CI\/CD&#8217;sidir. Projenizin k\u00f6k dizinine <code>.gitlab-ci.yml<\/code> ad\u0131nda bir dosya ekleyerek CI\/CD ard\u0131\u015f\u0131k d\u00fczenlerini tan\u0131mlayabilirsiniz. Bu dosya, kodunuz her push edildi\u011finde otomatik olarak \u00e7al\u0131\u015facak testleri, derlemeleri ve da\u011f\u0131t\u0131mlar\u0131 belirler.<\/p>\n<h2>Yedekleme ve Geri Y\u00fckleme<\/h2>\n<p>GitLab verilerinizin d\u00fczenli olarak yedeklenmesi kritik \u00f6neme sahiptir. GitLab, bu i\u015flem i\u00e7in basit komutlar sunar.<\/p>\n<h3>Yedekleme Olu\u015fturma<\/h3>\n<p>GitLab&#8217;\u0131n t\u00fcm verilerini (veritaban\u0131, depolar, yap\u0131land\u0131rma dosyalar\u0131 vb.) yedeklemek i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo gitlab-rake gitlab:backup:create<\/code><\/pre>\n<p>Bu komut, <code>\/var\/opt\/gitlab\/backups<\/code> dizininde zaman damgal\u0131 bir yedekleme dosyas\u0131 olu\u015fturacakt\u0131r. Bu dosyalar\u0131 g\u00fcvenli bir depolama alan\u0131na (uzak bir sunucu, bulut depolama vb.) ta\u015f\u0131man\u0131z \u015fiddetle tavsiye edilir.<\/p>\n<h3>Yedeklemeyi Geri Y\u00fckleme (Genel Bilgi)<\/h3>\n<p>Bir yedeklemeyi geri y\u00fcklemek, genellikle yeni bir sunucuya GitLab kurduktan sonra yedekleme dosyas\u0131n\u0131 <code>\/var\/opt\/gitlab\/backups<\/code> dizinine kopyalay\u0131p a\u015fa\u011f\u0131daki komutla yap\u0131l\u0131r:<\/p>\n<pre><code class=\"language-bash\">sudo gitlab-ctl stop unicorn\nsudo gitlab-ctl stop sidekiq\n<h2>Yedekleme dosyas\u0131n\u0131n ad\u0131n\u0131 buraya girin (\u00f6rn: 1678886400_2023_03_15_15.0.0_gitlab_backup.tar)<\/h2>\nsudo gitlab-rake gitlab:backup:restore BACKUP=1678886400_2023_03_15_15.0.0\nsudo gitlab-ctl start\nsudo gitlab-ctl reconfigure\nsudo gitlab-rake gitlab:check SANITIZE=true<\/code><\/pre>\n<p>Geri y\u00fckleme i\u015flemi s\u0131ras\u0131nda GitLab servislerinin durdurulmas\u0131 ve yeniden yap\u0131land\u0131r\u0131lmas\u0131 gerekti\u011fini unutmay\u0131n.<\/p>\n<h2>Sorun Giderme (Troubleshooting)<\/h2>\n<p>Kurulum veya \u00e7al\u0131\u015fma s\u0131ras\u0131nda sorunlarla kar\u015f\u0131la\u015fman\u0131z durumunda, GitLab&#8217;\u0131n sundu\u011fu baz\u0131 ara\u00e7lar ve log dosyalar\u0131 size yard\u0131mc\u0131 olabilir.<\/p>\n<h3>GitLab Servis Durumunu Kontrol Etme<\/h3>\n<p>T\u00fcm GitLab servislerinin d\u00fczg\u00fcn \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo gitlab-ctl status<\/code><\/pre>\n<p>Bu komut, Nginx, PostgreSQL, Redis, Unicorn gibi t\u00fcm GitLab bile\u015fenlerinin durumunu listeler. Herhangi bir servisin <code>down<\/code> veya <code>fail<\/code> oldu\u011funu g\u00f6r\u00fcrseniz, ilgili log dosyalar\u0131n\u0131 kontrol etmeniz gerekir.<\/p>\n<h3>Log Dosyalar\u0131n\u0131 G\u00f6r\u00fcnt\u00fcleme<\/h3>\n<p>GitLab&#8217;\u0131n t\u00fcm log dosyalar\u0131 <code>\/var\/log\/gitlab\/<\/code> dizininde bulunur. Belirli bir servisin loglar\u0131n\u0131 g\u00f6r\u00fcnt\u00fclemek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo gitlab-ctl tail<\/code><\/pre>\n<p>Bu komut, t\u00fcm servislerin loglar\u0131n\u0131 ger\u00e7ek zamanl\u0131 olarak g\u00f6sterir. Belirli bir servisin loglar\u0131n\u0131 g\u00f6r\u00fcnt\u00fclemek i\u00e7in (\u00f6rn: Nginx):<\/p>\n<pre><code class=\"language-bash\">sudo gitlab-ctl tail nginx<\/code><\/pre>\n<p>Ayr\u0131ca, ilgili log dosyalar\u0131n\u0131 do\u011frudan inceleyebilirsiniz:<br \/>\n*   <code>\/var\/log\/gitlab\/nginx\/gitlab_access.log<\/code><br \/>\n*   <code>\/var\/log\/gitlab\/nginx\/gitlab_error.log<\/code><br \/>\n*   <code>\/var\/log\/gitlab\/gitlab-rails\/production.log<\/code><br \/>\n*   <code>\/var\/log\/gitlab\/postgresql\/current<\/code><br \/>\n*   <code>\/var\/log\/gitlab\/redis\/current<\/code><\/p>\n<h3>Yap\u0131land\u0131rma Kontrol\u00fc<\/h3>\n<p><code>gitlab.rb<\/code> dosyas\u0131ndaki yap\u0131land\u0131rman\u0131zda bir hata olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo gitlab-ctl check-config<\/code><\/pre>\n<p>Bu komut, yap\u0131land\u0131rma dosyan\u0131zdaki potansiyel sorunlar\u0131 veya uyar\u0131lar\u0131 size bildirecektir.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Bu kapsaml\u0131 rehberde, GitLab Community Edition&#8217;\u0131 Ubuntu 18.04 sunucunuza nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve temel olarak nas\u0131l yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m \u00f6\u011frendiniz. Sistem \u00f6n gereksinimlerinden ba\u015flayarak, temel paketlerin kurulumu, GitLab depolar\u0131n\u0131n eklenmesi, GitLab paketinin y\u00fcklenmesi, <code>gitlab.rb<\/code> dosyas\u0131 \u00fczerinden harici URL, HTTPS (Let&#8217;s Encrypt) ve SMTP gibi kritik ayarlar\u0131n yap\u0131lmas\u0131, g\u00fcvenlik duvar\u0131 konfig\u00fcrasyonu ve son olarak web aray\u00fcz\u00fcne ilk eri\u015fim s\u00fcre\u00e7lerini ba\u015far\u0131yla tamamlad\u0131k. Ayr\u0131ca, GitLab&#8217;\u0131 kullanmaya ba\u015flama, yedekleme ve temel sorun giderme y\u00f6ntemleri hakk\u0131nda da bilgi edindiniz.<\/p>\n<p>Kendi GitLab sunucunuzu kurmak, geli\u015ftirme s\u00fcre\u00e7leriniz \u00fczerinde tam kontrol sahibi olman\u0131z\u0131 sa\u011flar. Kod depolar\u0131n\u0131z\u0131 y\u00f6netebilir, CI\/CD ard\u0131\u015f\u0131k d\u00fczenleri ile otomatik test ve da\u011f\u0131t\u0131m yapabilir, proje y\u00f6netimi ara\u00e7lar\u0131yla i\u015f ak\u0131\u015flar\u0131n\u0131z\u0131 d\u00fczenleyebilir ve t\u00fcm ekibinizin tek bir platformda i\u015fbirli\u011fi yapmas\u0131n\u0131 sa\u011flayabilirsiniz. GitLab&#8217;\u0131n sundu\u011fu geni\u015f \u00f6zellik yelpazesi, yaz\u0131l\u0131m geli\u015ftirme d\u00f6ng\u00fcn\u00fcz\u00fc daha verimli ve g\u00fcvenli hale getirecektir.<\/p>\n<p>Unutmay\u0131n ki GitLab olduk\u00e7a kapsaml\u0131 bir platformdur ve bu rehber sadece ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r. Kurulum sonras\u0131, kullan\u0131c\u0131 y\u00f6netimi, grup ayarlar\u0131, CI\/CD runner&#8217;lar\u0131, entegrasyonlar ve daha bir\u00e7ok geli\u015fmi\u015f \u00f6zelli\u011fi ke\u015ffederek GitLab deneyiminizi zenginle\u015ftirebilirsiniz. D\u00fczenli yedeklemeler almay\u0131, GitLab&#8217;\u0131 g\u00fcncel tutmay\u0131 ve g\u00fcvenlik duvar\u0131 ayarlar\u0131n\u0131z\u0131 g\u00f6zden ge\u00e7irmeyi ihmal etmeyin. Ba\u015far\u0131l\u0131 bir DevOps yolculu\u011fu dileriz!<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"GitLab&#8217;\u0131 Ubuntu 18.04 \u00dczerine Kurulum ve Yap\u0131land\u0131rma Rehberi\nGiri\u015f\nG\u00fcn\u00fcm\u00fcz yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde versiyon kontrol sistemleri","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-32596","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>GitLab&#039;\u0131 Ubuntu 18.04 \u00dczerine Kurulum ve Yap\u0131land\u0131rma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/gitlabi-ubuntu-18-04-uzerine-kurulum-ve-yapilandirma-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"GitLab&#039;\u0131 Ubuntu 18.04 \u00dczerine Kurulum ve Yap\u0131land\u0131rma Rehberi\" \/>\n<meta property=\"og:description\" content=\"GitLab&#039;\u0131 Ubuntu 18.04 \u00dczerine Kurulum ve Yap\u0131land\u0131rma Rehberi Giri\u015f G\u00fcn\u00fcm\u00fcz yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde versiyon kontrol sistemleri\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/gitlabi-ubuntu-18-04-uzerine-kurulum-ve-yapilandirma-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-23T16:41:03+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gitlabi-ubuntu-18-04-uzerine-kurulum-ve-yapilandirma-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gitlabi-ubuntu-18-04-uzerine-kurulum-ve-yapilandirma-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"GitLab&#8217;\u0131 Ubuntu 18.04 \u00dczerine Kurulum ve Yap\u0131land\u0131rma Rehberi\",\"datePublished\":\"2025-10-23T16:41:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gitlabi-ubuntu-18-04-uzerine-kurulum-ve-yapilandirma-rehberi\/\"},\"wordCount\":2858,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/gitlabi-ubuntu-18-04-uzerine-kurulum-ve-yapilandirma-rehberi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gitlabi-ubuntu-18-04-uzerine-kurulum-ve-yapilandirma-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/gitlabi-ubuntu-18-04-uzerine-kurulum-ve-yapilandirma-rehberi\/\",\"name\":\"GitLab'\u0131 Ubuntu 18.04 \u00dczerine Kurulum ve Yap\u0131land\u0131rma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-23T16:41:03+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gitlabi-ubuntu-18-04-uzerine-kurulum-ve-yapilandirma-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/gitlabi-ubuntu-18-04-uzerine-kurulum-ve-yapilandirma-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gitlabi-ubuntu-18-04-uzerine-kurulum-ve-yapilandirma-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"GitLab&#8217;\u0131 Ubuntu 18.04 \u00dczerine Kurulum ve Yap\u0131land\u0131rma Rehberi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"GitLab'\u0131 Ubuntu 18.04 \u00dczerine Kurulum ve Yap\u0131land\u0131rma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/gitlabi-ubuntu-18-04-uzerine-kurulum-ve-yapilandirma-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"GitLab'\u0131 Ubuntu 18.04 \u00dczerine Kurulum ve Yap\u0131land\u0131rma Rehberi","og_description":"GitLab'\u0131 Ubuntu 18.04 \u00dczerine Kurulum ve Yap\u0131land\u0131rma Rehberi Giri\u015f G\u00fcn\u00fcm\u00fcz yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde versiyon kontrol sistemleri","og_url":"https:\/\/fatihsoysal.com\/blog\/gitlabi-ubuntu-18-04-uzerine-kurulum-ve-yapilandirma-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-23T16:41:03+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"16 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/gitlabi-ubuntu-18-04-uzerine-kurulum-ve-yapilandirma-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/gitlabi-ubuntu-18-04-uzerine-kurulum-ve-yapilandirma-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"GitLab&#8217;\u0131 Ubuntu 18.04 \u00dczerine Kurulum ve Yap\u0131land\u0131rma Rehberi","datePublished":"2025-10-23T16:41:03+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/gitlabi-ubuntu-18-04-uzerine-kurulum-ve-yapilandirma-rehberi\/"},"wordCount":2858,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/gitlabi-ubuntu-18-04-uzerine-kurulum-ve-yapilandirma-rehberi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/gitlabi-ubuntu-18-04-uzerine-kurulum-ve-yapilandirma-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/gitlabi-ubuntu-18-04-uzerine-kurulum-ve-yapilandirma-rehberi\/","name":"GitLab'\u0131 Ubuntu 18.04 \u00dczerine Kurulum ve Yap\u0131land\u0131rma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-23T16:41:03+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/gitlabi-ubuntu-18-04-uzerine-kurulum-ve-yapilandirma-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/gitlabi-ubuntu-18-04-uzerine-kurulum-ve-yapilandirma-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/gitlabi-ubuntu-18-04-uzerine-kurulum-ve-yapilandirma-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"GitLab&#8217;\u0131 Ubuntu 18.04 \u00dczerine Kurulum ve Yap\u0131land\u0131rma Rehberi"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32596","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=32596"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32596\/revisions"}],"predecessor-version":[{"id":32597,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32596\/revisions\/32597"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=32596"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=32596"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=32596"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}