{"id":30565,"date":"2025-09-29T09:41:51","date_gmt":"2025-09-29T06:41:51","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=30565"},"modified":"2025-09-29T09:41:51","modified_gmt":"2025-09-29T06:41:51","slug":"gitlab-nedir-ve-neden-kendi-sunucunuzda-kurmalisiniz","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/gitlab-nedir-ve-neden-kendi-sunucunuzda-kurmalisiniz\/","title":{"rendered":"GitLab Nedir ve Neden Kendi Sunucunuzda Kurmal\u0131s\u0131n\u0131z?"},"content":{"rendered":"<p><body><\/p>\n<h2>GitLab Nedir ve Neden Kendi Sunucunuzda Kurmal\u0131s\u0131n\u0131z?<\/h2>\n<p>GitLab, Git tabanl\u0131 bir kod deposu y\u00f6neticisi olman\u0131n \u00f6tesinde, entegre bir yaz\u0131l\u0131m geli\u015ftirme platformudur. GitHub&#8217;a benzer \u015fekilde, kod y\u00f6netimi, s\u00fcr\u00fcm kontrol\u00fc, hata takibi, s\u00fcrekli entegrasyon ve s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD) pipeline&#8217;lar\u0131, proje y\u00f6netimi ve Wiki gibi bir\u00e7ok \u00f6zelli\u011fi tek bir \u00e7at\u0131 alt\u0131nda sunar. A\u00e7\u0131k kaynak kodlu yap\u0131s\u0131 ve zengin \u00f6zellik setleriyle, bireysel geli\u015ftiricilerden b\u00fcy\u00fck kurumsal ekiplere kadar geni\u015f bir kullan\u0131c\u0131 kitlesine hitap eder.<\/p>\n<p>Peki, neden kendi GitLab \u00f6rne\u011finizi kurmal\u0131s\u0131n\u0131z? Haz\u0131r bulut \u00e7\u00f6z\u00fcmleri varken bu zahmete girmeye de\u011fer mi? \u0130\u015fte ba\u015fl\u0131ca nedenler:<\/p>\n<p>*   <strong>Veri Gizlili\u011fi ve Kontrol\u00fc:<\/strong> En \u00f6nemli avantajlardan biridir. T\u00fcm kodunuz, proje verileriniz ve hassas bilgileriniz sizin kontrol\u00fcn\u00fczdeki sunucularda bar\u0131n\u0131r. \u00d6zellikle yasal d\u00fczenlemelere tabi sekt\u00f6rlerde veya gizli projelerde bu vazge\u00e7ilmez bir gerekliliktir.<br \/>\n*   <strong>\u00d6zelle\u015ftirme ve Entegrasyon:<\/strong> Kendi sunucunuzda GitLab&#8217;\u0131 bar\u0131nd\u0131rd\u0131\u011f\u0131n\u0131zda, sistem kaynaklar\u0131n\u0131za g\u00f6re optimizasyon yapabilir, mevcut altyap\u0131n\u0131zla daha derin entegrasyonlar kurabilir ve \u00f6zel ihtiya\u00e7lar\u0131n\u0131za y\u00f6nelik eklemeler geli\u015ftirebilirsiniz.<br \/>\n*   <strong>Maliyet Tasarrufu (B\u00fcy\u00fck \u00d6l\u00e7ekte):<\/strong> K\u00fc\u00e7\u00fck ekipler i\u00e7in bulut \u00e7\u00f6z\u00fcmleri daha uygun olabilirken, b\u00fcy\u00fcyen ekipler ve \u00e7ok say\u0131da kullan\u0131c\u0131 i\u00e7in kendi sunucunuzda bar\u0131nd\u0131rma uzun vadede daha ekonomik hale gelebilir. Lisans maliyetlerinden ba\u011f\u0131ms\u0131z olarak donan\u0131m ve bak\u0131m giderleri sizin kontrol\u00fcn\u00fczde olur.<br \/>\n*   <strong>Ba\u011f\u0131ms\u0131zl\u0131k:<\/strong> \u00dc\u00e7\u00fcnc\u00fc taraf bir hizmet sa\u011flay\u0131c\u0131s\u0131na ba\u011f\u0131ml\u0131 kalmazs\u0131n\u0131z. Hizmet kesintileri, fiyat de\u011fi\u015fiklikleri veya \u00f6zellik k\u0131s\u0131tlamalar\u0131 gibi d\u0131\u015f etkenlerden etkilenmezsiniz.<br \/>\n*   <strong>G\u00fcvenlik Politikalar\u0131:<\/strong> \u015eirketinizin veya projenizin kat\u0131 g\u00fcvenlik politikalar\u0131n\u0131 kendi sunucunuzda daha kolay uygulayabilir, eri\u015fim kontrol\u00fcn\u00fc tamamen kendi elinizde tutabilirsiniz.<\/p>\n<p>K\u0131sacas\u0131, GitLab&#8217;\u0131 kendi sunucunuzda kurmak, kodunuz \u00fczerinde tam kontrol sahibi olman\u0131z\u0131, gizlili\u011fi \u00f6n planda tutman\u0131z\u0131 ve geli\u015fmi\u015f \u00f6zelle\u015ftirme imkanlar\u0131ndan faydalanman\u0131z\u0131 sa\u011flar.<\/p>\n<h2>Sistem Gereksinimleri ve Kurulum \u00d6ncesi Haz\u0131rl\u0131klar<\/h2>\n<p>GitLab kurulumuna ba\u015flamadan \u00f6nce, sunucunuzun belirli gereksinimleri kar\u015f\u0131lad\u0131\u011f\u0131ndan ve baz\u0131 \u00f6n haz\u0131rl\u0131k ad\u0131mlar\u0131n\u0131n tamamland\u0131\u011f\u0131ndan emin olmal\u0131s\u0131n\u0131z. Bu ad\u0131mlar sorunsuz bir kurulum s\u00fcreci i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<h3>Minimum Sistem Gereksinimleri<\/h3>\n<p>GitLab, Omnibus paketleri sayesinde kurulumu kolay olsa da, stabil \u00e7al\u0131\u015fmas\u0131 i\u00e7in belirli donan\u0131m kaynaklar\u0131na ihtiya\u00e7 duyar.<\/p>\n<p>*   <strong>\u0130\u015fletim Sistemi:<\/strong> Ubuntu (22.04 LTS veya \u00fczeri \u00f6nerilir), Debian (11 veya \u00fczeri), CentOS\/RHEL (8 veya \u00fczeri). Bu rehberde Ubuntu 22.04 LTS baz al\u0131nacakt\u0131r.<br \/>\n*   <strong>RAM:<\/strong> Minimum 4 GB (k\u00fc\u00e7\u00fck ekipler ve test ortamlar\u0131 i\u00e7in). Ancak 8 GB veya \u00fczeri, daha iyi performans ve CI\/CD pipeline&#8217;lar\u0131 i\u00e7in \u015fiddetle tavsiye edilir. GitLab \u00e7ok fazla RAM kullanabilir.<br \/>\n*   <strong>CPU:<\/strong> Minimum 2 \u00e7ekirdek. 4 \u00e7ekirdek veya \u00fczeri \u00f6nerilir.<br \/>\n*   <strong>Disk Alan\u0131:<\/strong> Minimum 50 GB bo\u015f disk alan\u0131. SSD diskler performans a\u00e7\u0131s\u0131ndan b\u00fcy\u00fck avantaj sa\u011flar. Projeleriniz ve CI\/CD artifact&#8217;leriniz b\u00fcy\u00fcd\u00fck\u00e7e bu alan\u0131n art\u0131r\u0131lmas\u0131 gerekebilir.<\/p>\n<h3>Kurulum \u00d6ncesi Gerekli Ad\u0131mlar<\/h3>\n<p>Sunucunuz haz\u0131r oldu\u011funda, GitLab&#8217;\u0131 kurmadan \u00f6nce a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 tamamlay\u0131n:<\/p>\n<p>1.  <strong>Sistemi G\u00fcncelleme:<\/strong> Sunucunuzdaki paket listelerini g\u00fcncelleyin ve y\u00fckl\u00fc paketleri en son s\u00fcr\u00fcmlerine y\u00fckseltin.<\/p>\n<pre><code class=\"language-bash\">sudo apt update\n    sudo apt upgrade -y<\/code><\/pre>\n<p>2.  <strong>Gerekli Ba\u011f\u0131ml\u0131l\u0131klar\u0131 Kurma:<\/strong> GitLab&#8217;\u0131n d\u00fczg\u00fcn \u00e7al\u0131\u015fmas\u0131 i\u00e7in baz\u0131 temel paketlere ihtiya\u00e7 vard\u0131r. \u00d6zellikle e-posta bildirimleri i\u00e7in <code>postfix<\/code> kurulmas\u0131 \u00f6nemlidir.<\/p>\n<pre><code class=\"language-bash\">sudo apt install -y curl openssh-server ca-certificates postfix<\/code><\/pre>\n<p>    <code>postfix<\/code> kurulumu s\u0131ras\u0131nda &#8220;Internet Site&#8221; se\u00e7ene\u011fini se\u00e7in ve sunucunuzun alan ad\u0131n\u0131 (\u00f6rne\u011fin, <code>gitlab.example.com<\/code>) girin. E\u011fer alan ad\u0131n\u0131z yoksa veya emin de\u011filseniz, varsay\u0131lan ayarlar\u0131 b\u0131rakabilirsiniz.<\/p>\n<p>3.  <strong>G\u00fcvenlik Duvar\u0131 Yap\u0131land\u0131rmas\u0131 (UFW):<\/strong> Sunucunuzun g\u00fcvenli\u011fi i\u00e7in UFW (Uncomplicated Firewall) kullan\u0131yorsan\u0131z, GitLab&#8217;\u0131n eri\u015febilmesi gereken portlar\u0131 a\u00e7mal\u0131s\u0131n\u0131z.<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow OpenSSH       # SSH eri\u015fimi i\u00e7in\n    sudo ufw allow http          # HTTP (80) portu i\u00e7in\n    sudo ufw allow https         # HTTPS (443) portu i\u00e7in\n    sudo ufw enable              # G\u00fcvenlik duvar\u0131n\u0131 etkinle\u015ftir\n    sudo ufw status              # Durumu kontrol et<\/code><\/pre>\n<p>4.  <strong>Alan Ad\u0131 ve DNS Kayd\u0131 (\u00d6nerilir):<\/strong> GitLab&#8217;\u0131n\u0131za bir alan ad\u0131 (\u00f6rne\u011fin, <code>gitlab.example.com<\/code>) atamak, hem eri\u015fimi kolayla\u015ft\u0131r\u0131r hem de HTTPS (SSL\/TLS) sertifikas\u0131 kurulumu i\u00e7in gereklidir. DNS sa\u011flay\u0131c\u0131n\u0131zdan sunucunuzun IP adresine i\u015faret eden bir A kayd\u0131 olu\u015fturun. E\u011fer alan ad\u0131n\u0131z yoksa, IP adresi \u00fczerinden de eri\u015febilirsiniz ancak HTTPS kurulumu daha karma\u015f\u0131kt\u0131r.<\/p>\n<h2>GitLab Kurulumu: Ad\u0131m Ad\u0131m Rehber<\/h2>\n<p>GitLab&#8217;\u0131 kendi sunucunuza kurman\u0131n en kolay yolu, Omnibus paketini kullanmakt\u0131r. Bu paket, GitLab ve t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 (Nginx, PostgreSQL, Redis vb.) tek bir pakette birle\u015ftirerek kurulumu olduk\u00e7a basitle\u015ftirir.<\/p>\n<h3>GitLab Deposu Ekleme<\/h3>\n<p>\u00d6ncelikle, GitLab paketlerini indirebilmek i\u00e7in sunucunuza GitLab&#8217;\u0131n APT deposunu eklemeniz gerekir.<\/p>\n<pre><code class=\"language-bash\">curl https:\/\/packages.gitlab.com\/install\/repositories\/gitlab\/gitlab-ee\/script.deb.sh | sudo bash<\/code><\/pre>\n<p>Bu komut, GitLab Enterprise Edition (EE) deposunu ekleyecektir. GitLab EE, \u00fccretsiz olarak kendi sunucunuzda kullanabilece\u011finiz bir\u00e7ok geli\u015fmi\u015f \u00f6zellik sunar. E\u011fer sadece temel \u00f6zelliklere ihtiyac\u0131n\u0131z varsa <code>gitlab-ce<\/code> (Community Edition) deposunu da ekleyebilirsiniz, ancak EE genellikle daha fazla avantaj sa\u011flar.<\/p>\n<h3>GitLab Kurulumu<\/h3>\n<p>Depoyu ekledikten sonra GitLab Omnibus paketini kurabilirsiniz. Kurulum s\u0131ras\u0131nda GitLab&#8217;\u0131n hangi URL \u00fczerinden eri\u015filebilir olaca\u011f\u0131n\u0131 belirtmek \u00f6nemlidir.<\/p>\n<pre><code class=\"language-bash\">sudo EXTERNAL_URL=\"http:\/\/gitlab.example.com\" apt install gitlab-ee<\/code><\/pre>\n<p><strong>\u00d6nemli:<\/strong><br \/>\n*   <code>EXTERNAL_URL<\/code> k\u0131sm\u0131n\u0131 kendi alan ad\u0131n\u0131zla veya sunucunuzun IP adresiyle de\u011fi\u015ftirin (\u00f6rne\u011fin, <code>http:\/\/192.168.1.100<\/code>).<br \/>\n*   E\u011fer HTTPS kullanacaksan\u0131z (\u015fiddetle tavsiye edilir), \u015fimdilik <code>http<\/code> olarak b\u0131rak\u0131n ve SSL yap\u0131land\u0131rmas\u0131ndan sonra <code>https<\/code> olarak g\u00fcncelleyin.<br \/>\n*   Bu komut, GitLab&#8217;\u0131 indirip kuracak ve ilk yap\u0131land\u0131rmay\u0131 yapacakt\u0131r. Bu i\u015flem, sunucunuzun h\u0131z\u0131na ve internet ba\u011flant\u0131n\u0131za ba\u011fl\u0131 olarak biraz zaman alabilir.<\/p>\n<h3>SSL\/TLS Yap\u0131land\u0131rmas\u0131 (Opsiyonel ama \u015eiddetle Tavsiye Edilir)<\/h3>\n<p>GitLab&#8217;\u0131n\u0131za g\u00fcvenli bir \u015fekilde eri\u015fmek ve verilerinizin \u015fifrelendi\u011finden emin olmak i\u00e7in HTTPS kullanmal\u0131s\u0131n\u0131z. Let&#8217;s Encrypt ile \u00fccretsiz SSL\/TLS sertifikas\u0131 kurmak GitLab Omnibus paketiyle olduk\u00e7a kolayd\u0131r.<\/p>\n<p>1.  <strong><code>gitlab.rb<\/code> Dosyas\u0131n\u0131 D\u00fczenleme:<\/strong> GitLab&#8217;\u0131n yap\u0131land\u0131rma dosyas\u0131 olan <code>\/etc\/gitlab\/gitlab.rb<\/code> dosyas\u0131n\u0131 bir metin d\u00fczenleyici ile a\u00e7\u0131n.<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/gitlab\/gitlab.rb<\/code><\/pre>\n<p>2.  <strong>URL ve Let&#8217;s Encrypt Ayarlar\u0131n\u0131 Yap\u0131land\u0131rma:<\/strong> Dosya i\u00e7inde a\u015fa\u011f\u0131daki sat\u0131rlar\u0131 bulun veya ekleyin (ba\u015ftaki <code>#<\/code> i\u015faretini kald\u0131rarak yorum sat\u0131r\u0131 olmaktan \u00e7\u0131kar\u0131n):<\/p>\n<pre><code class=\"language-ruby\">external_url 'https:\/\/gitlab.example.com' # Kendi alan ad\u0131n\u0131z\u0131 buraya yaz\u0131n\n    \n    letsencrypt['enable'] = true\n    letsencrypt['contact_emails'] = ['admin@example.com'] # Ge\u00e7erli bir e-posta adresi girin\n    letsencrypt['auto_renew_hour'] = \"1\"\n    letsencrypt['auto_renew_minute'] = \"30\"\n    letsencrypt['auto_renew_day_of_month'] = \"*\/7\" # Her 7 g\u00fcnde bir yenileme denemesi<\/code><\/pre>\n<p>    <code>external_url<\/code> k\u0131sm\u0131n\u0131 mutlaka <code>https<\/code> ile ba\u015flayan kendi alan ad\u0131n\u0131zla g\u00fcncelleyin. <code>contact_emails<\/code> k\u0131sm\u0131na ge\u00e7erli bir e-posta adresi yaz\u0131n, Let&#8217;s Encrypt bu adresi sertifika s\u00fcresi doldu\u011funda bildirim g\u00f6ndermek i\u00e7in kullan\u0131r.<\/p>\n<p>3.  <strong>GitLab&#8217;\u0131 Yeniden Yap\u0131land\u0131rma:<\/strong> De\u011fi\u015fiklikleri kaydettikten sonra GitLab&#8217;\u0131 yeniden yap\u0131land\u0131rarak yeni ayarlar\u0131 uygulay\u0131n. Bu i\u015flem s\u0131ras\u0131nda Let&#8217;s Encrypt sertifikas\u0131 otomatik olarak al\u0131nacak ve y\u00fcklenecektir.<\/p>\n<pre><code class=\"language-bash\">sudo gitlab-ctl reconfigure<\/code><\/pre>\n<p>    Bu komutun tamamlanmas\u0131 birka\u00e7 dakika s\u00fcrebilir. E\u011fer bir hata al\u0131rsan\u0131z, genellikle alan ad\u0131n\u0131z\u0131n DNS kayd\u0131n\u0131n do\u011fru yap\u0131land\u0131r\u0131lmad\u0131\u011f\u0131 veya g\u00fcvenlik duvar\u0131n\u0131z\u0131n 80 ve 443 portlar\u0131n\u0131 kapatm\u0131\u015f oldu\u011fu anlam\u0131na gelebilir.<\/p>\n<p>4.  <strong>G\u00fcvenlik Duvar\u0131 Kontrol\u00fc:<\/strong> E\u011fer SSL yap\u0131land\u0131rd\u0131ysan\u0131z ve hen\u00fcz yapmad\u0131ysan\u0131z, HTTPS portunun g\u00fcvenlik duvar\u0131nda a\u00e7\u0131k oldu\u011fundan emin olun:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow https\n    sudo ufw reload<\/code><\/pre>\n<p>Art\u0131k GitLab&#8217;\u0131n\u0131z HTTPS \u00fczerinden eri\u015filebilir olmal\u0131d\u0131r. Taray\u0131c\u0131n\u0131zdan <code>https:\/\/gitlab.example.com<\/code> adresine giderek kontrol edebilirsiniz.<\/p>\n<h2>GitLab \u0130lk Yap\u0131land\u0131rma ve Kullan\u0131m<\/h2>\n<p>Kurulum ve temel yap\u0131land\u0131rma tamamland\u0131ktan sonra, GitLab&#8217;\u0131n\u0131z\u0131 kullanmaya ba\u015flayabilirsiniz. \u0130lk giri\u015fte baz\u0131 \u00f6nemli ad\u0131mlar\u0131 tamamlaman\u0131z gerekecektir.<\/p>\n<h3>\u0130lk Giri\u015f ve Y\u00f6netici Parolas\u0131 Belirleme<\/h3>\n<p>Taray\u0131c\u0131n\u0131zdan <code>EXTERNAL_URL<\/code> olarak belirledi\u011finiz adrese (\u00f6rne\u011fin, <code>https:\/\/gitlab.example.com<\/code>) gidin. \u0130lk giri\u015fte bir parola s\u0131f\u0131rlama ekran\u0131 ile kar\u015f\u0131la\u015facaks\u0131n\u0131z.<\/p>\n<p>*   <code>root<\/code> kullan\u0131c\u0131s\u0131 i\u00e7in yeni bir g\u00fc\u00e7l\u00fc parola belirleyin. Bu, GitLab&#8217;\u0131n ana y\u00f6neticisidir.<br \/>\n*   Parolan\u0131z\u0131 belirledikten sonra <code>root<\/code> kullan\u0131c\u0131 ad\u0131 ve belirledi\u011finiz parola ile giri\u015f yapabilirsiniz.<\/p>\n<p>Giri\u015f yapt\u0131ktan sonra GitLab&#8217;\u0131n ana panosunu g\u00f6receksiniz. Buradan proje olu\u015fturabilir, kullan\u0131c\u0131lar\u0131 y\u00f6netebilir ve genel ayarlar\u0131 yap\u0131land\u0131rabilirsiniz.<\/p>\n<h3>Yeni Kullan\u0131c\u0131lar ve Gruplar Olu\u015fturma<\/h3>\n<p>Ekibinizdeki di\u011fer \u00fcyelerin GitLab&#8217;\u0131 kullanabilmesi i\u00e7in kullan\u0131c\u0131 hesaplar\u0131 olu\u015fturman\u0131z gerekir.<\/p>\n<p>1.  <strong>Y\u00f6netici Alan\u0131na Eri\u015fim:<\/strong> Sa\u011f \u00fcstteki men\u00fcden &#8220;Admin Area&#8221; (Y\u00f6netici Alan\u0131) se\u00e7ene\u011fine t\u0131klay\u0131n.<br \/>\n2.  <strong>Kullan\u0131c\u0131 Olu\u015fturma:<\/strong> Sol men\u00fcden &#8220;Overview&#8221; -> &#8220;Users&#8221; se\u00e7ene\u011fine gidin. Sa\u011f \u00fcstteki &#8220;New user&#8221; butonuna t\u0131klayarak yeni bir kullan\u0131c\u0131 olu\u015fturun. Kullan\u0131c\u0131n\u0131n ad\u0131n\u0131, e-posta adresini ve ba\u015flang\u0131\u00e7 parolas\u0131n\u0131 belirleyebilirsiniz. \u0130sterseniz kullan\u0131c\u0131n\u0131n ilk giri\u015fte parolas\u0131n\u0131 de\u011fi\u015ftirmesini zorunlu k\u0131labilirsiniz.<br \/>\n3.  <strong>Grup Olu\u015fturma:<\/strong> Ekiplerinizi veya projelerinizi organize etmek i\u00e7in gruplar olu\u015fturmak faydal\u0131d\u0131r. &#8220;Overview&#8221; -> &#8220;Groups&#8221; se\u00e7ene\u011fine gidin ve &#8220;New group&#8221; butonuna t\u0131klay\u0131n. Gruba bir isim verin ve a\u00e7\u0131klamas\u0131n\u0131 yaz\u0131n. Gruplar, projelere eri\u015fim izinlerini toplu olarak y\u00f6netmenizi sa\u011flar.<br \/>\n4.  <strong>Kullan\u0131c\u0131lar\u0131 Gruplara Ekleme:<\/strong> Olu\u015fturdu\u011funuz gruplara kullan\u0131c\u0131lar\u0131 ekleyerek projeler \u00fczerindeki yetkilerini kolayca y\u00f6netebilirsiniz. Bir grubun sayfas\u0131na giderek &#8220;Members&#8221; sekmesinden kullan\u0131c\u0131lar\u0131 ekleyebilirsiniz.<\/p>\n<h3>\u0130lk Projenizi Olu\u015fturma<\/h3>\n<p>GitLab&#8217;da kodlar\u0131n\u0131z\u0131 bar\u0131nd\u0131rmak i\u00e7in bir proje olu\u015fturman\u0131z gerekir.<\/p>\n<p>1.  <strong>Proje Olu\u015fturma:<\/strong> GitLab panosunda sol \u00fcstteki &#8220;New project\/repository&#8221; (Yeni proje\/depo) butonuna t\u0131klay\u0131n veya sa\u011f \u00fcstteki &#8220;+&#8221; ikonuna t\u0131klayarak &#8220;New project\/repository&#8221; se\u00e7ene\u011fini se\u00e7in.<br \/>\n2.  <strong>Proje T\u00fcr\u00fc Se\u00e7imi:<\/strong><br \/>\n    *   <strong>Create blank project:<\/strong> S\u0131f\u0131rdan bo\u015f bir proje olu\u015fturur.<br \/>\n    *   <strong>Create from template:<\/strong> GitLab&#8217;\u0131n sundu\u011fu \u015fablonlardan birini kullanarak proje olu\u015fturur.<br \/>\n    *   <strong>Import project:<\/strong> GitHub, Bitbucket gibi ba\u015fka bir kaynaktan proje i\u00e7e aktar\u0131r.<br \/>\n3.  <strong>Proje Detaylar\u0131:<\/strong><br \/>\n    *   <strong>Project name:<\/strong> Projenizin ad\u0131n\u0131 girin (\u00f6rne\u011fin, <code>my-awesome-app<\/code>).<br \/>\n    *   <strong>Project URL:<\/strong> GitLab otomatik olarak bir URL olu\u015fturacakt\u0131r. \u0130sterseniz grup alt\u0131nda da olu\u015fturabilirsiniz.<br \/>\n    *   <strong>Visibility Level:<\/strong> Projenizin g\u00f6r\u00fcn\u00fcrl\u00fck seviyesini belirleyin:<br \/>\n        *   <strong>Private:<\/strong> Sadece eri\u015fim izni verdi\u011finiz \u00fcyeler g\u00f6rebilir.<br \/>\n        *   <strong>Internal:<\/strong> Oturum a\u00e7m\u0131\u015f t\u00fcm GitLab kullan\u0131c\u0131lar\u0131 g\u00f6rebilir (e\u011fer varsa).<br \/>\n        *   <strong>Public:<\/strong> Herkes g\u00f6rebilir.<br \/>\n    *   <strong>Initialize repository with a README:<\/strong> Depoyu otomatik olarak bir README dosyas\u0131 ile ba\u015flatmak isterseniz bu se\u00e7ene\u011fi i\u015faretleyin.<br \/>\n4.  <strong>Proje Olu\u015fturma:<\/strong> &#8220;Create project&#8221; butonuna t\u0131klay\u0131n.<\/p>\n<p>Projeniz olu\u015fturulduktan sonra, Git komutlar\u0131n\u0131 kullanarak mevcut kodlar\u0131n\u0131z\u0131 push edebilir veya depoyu klonlayabilirsiniz:<\/p>\n<p>*   <strong>Mevcut bir depoyu push etmek i\u00e7in:<\/strong><\/p>\n<pre><code class=\"language-bash\">cd existing_repo\n    git remote add origin https:\/\/gitlab.example.com\/your-username\/your-project.git\n    git branch -M main\n    git push -u origin main<\/code><\/pre>\n<p>*   <strong>Yeni bir depoyu klonlamak i\u00e7in:<\/strong><\/p>\n<pre><code class=\"language-bash\">git clone https:\/\/gitlab.example.com\/your-username\/your-project.git<\/code><\/pre>\n<p>    SSH anahtarlar\u0131n\u0131 yap\u0131land\u0131rd\u0131ysan\u0131z, SSH URL&#8217;lerini de kullanabilirsiniz.<\/p>\n<h3>CI\/CD Pipeline&#8217;lar\u0131 ve Di\u011fer \u00d6zellikler<\/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 otomatik testleri, derlemeleri ve da\u011f\u0131t\u0131mlar\u0131 yap\u0131land\u0131rabilirsiniz.<\/p>\n<p>*   <strong>Merge Request&#8217;ler:<\/strong> Kod de\u011fi\u015fikliklerini g\u00f6zden ge\u00e7irmek ve birle\u015ftirmek i\u00e7in Merge Request&#8217;leri kullan\u0131n.<br \/>\n*   <strong>Issue Tracking:<\/strong> Hata takibi, \u00f6zellik istekleri ve g\u00f6rev y\u00f6netimi i\u00e7in Issue Board&#8217;lar\u0131 ve etiketleri kullan\u0131n.<br \/>\n*   <strong>Wiki:<\/strong> Proje belgelerinizi olu\u015fturun ve y\u00f6netin.<\/p>\n<p>GitLab aray\u00fcz\u00fcn\u00fc ke\u015ffetmek ve bu \u00f6zellikleri kullanmak, geli\u015ftirme s\u00fcre\u00e7lerinizi b\u00fcy\u00fck \u00f6l\u00e7\u00fcde iyile\u015ftirecektir.<\/p>\n<h2>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h2>\n<p>Bu rehberde, GitLab&#8217;\u0131 kendi sunucunuzda nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, temel yap\u0131land\u0131rmalar\u0131 nas\u0131l yapaca\u011f\u0131n\u0131z\u0131 ve ilk projenizi nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m \u00f6\u011frendiniz. Kendi \u00f6zel GitHub klonunuzu kurmak, kodunuz \u00fczerinde tam kontrol sa\u011flaman\u0131n, veri gizlili\u011fini koruman\u0131n ve geli\u015ftirme s\u00fcre\u00e7lerinizi ki\u015fiselle\u015ftirmenin g\u00fc\u00e7l\u00fc bir yoludur.<\/p>\n<p>GitLab&#8217;\u0131n sundu\u011fu zengin \u00f6zellik setini (CI\/CD, proje y\u00f6netimi, g\u00fcvenlik taramalar\u0131 vb.) ke\u015ffetmek, ekibinizin verimlili\u011fini art\u0131racak ve yaz\u0131l\u0131m geli\u015ftirme d\u00f6ng\u00fcn\u00fcz\u00fc daha g\u00fcvenli ve tutarl\u0131 hale getirecektir. Unutmay\u0131n, kendi sunucunuzda bar\u0131nd\u0131rma, s\u00fcrekli bak\u0131m, g\u00fcncellemeler ve yedeklemeler gerektirir; bu sorumluluklar\u0131 g\u00f6z ard\u0131 etmeyin.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<p>*   <strong>GitLab CE mi EE mi kurmal\u0131y\u0131m?<\/strong><br \/>\n    GitLab CE (Community Edition) tamamen \u00fccretsiz ve a\u00e7\u0131k kaynakl\u0131d\u0131r, temel \u00f6zellikler sunar. GitLab EE (Enterprise Edition) ise daha fazla geli\u015fmi\u015f \u00f6zellik (\u00f6rne\u011fin, geli\u015fmi\u015f yetkilendirme, geli\u015fmi\u015f CI\/CD yetenekleri) i\u00e7erir. Kendi sunucunuzda bar\u0131nd\u0131rd\u0131\u011f\u0131n\u0131zda, GitLab EE&#8217;nin \u00e7o\u011fu \u00f6zelli\u011fi \u00fccretsiz olarak kullan\u0131labilir (\u00e7ekirdek \u00f6zellikler). Genellikle EE kurmak, gelecekteki ihtiya\u00e7lar\u0131n\u0131z i\u00e7in daha esnek bir yap\u0131 sunar. Bu rehberde EE kurulumu tavsiye edilmi\u015ftir.<\/p>\n<p>*   <strong>GitLab yedeklemesi nas\u0131l yap\u0131l\u0131r?<\/strong><br \/>\n    GitLab&#8217;\u0131 yedeklemek kritik \u00f6neme sahiptir. A\u015fa\u011f\u0131daki komut ile t\u00fcm GitLab verilerini (depolar, veritaban\u0131, yap\u0131land\u0131rmalar) yedekleyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo gitlab-rake gitlab:backup:create<\/code><\/pre>\n<p>    Bu yedekleri d\u00fczenli olarak \u00e7al\u0131\u015ft\u0131rmak i\u00e7in bir cron job kurman\u0131z ve yedek dosyalar\u0131n\u0131 g\u00fcvenli, farkl\u0131 bir konuma ta\u015f\u0131man\u0131z \u015fiddetle tavsiye edilir.<\/p>\n<p>*   <strong>GitLab&#8217;\u0131 g\u00fcncellemek zor mu?<\/strong><br \/>\n    Hay\u0131r, GitLab Omnibus paketi sayesinde g\u00fcncelleme olduk\u00e7a basittir. Genellikle a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131rman\u0131z yeterlidir:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\n    sudo apt install gitlab-ee # veya gitlab-ce\n    sudo gitlab-ctl reconfigure<\/code><\/pre>\n<p>    G\u00fcncellemelerden \u00f6nce her zaman yedekleme yapman\u0131z \u00f6nerilir.<\/p>\n<p>*   <strong>Kendi alan ad\u0131m yoksa ne yapmal\u0131y\u0131m?<\/strong><br \/>\n    Alan ad\u0131n\u0131z yoksa, GitLab&#8217;a sunucunuzun IP adresi \u00fczerinden eri\u015febilirsiniz (\u00f6rne\u011fin, <code>http:\/\/192.168.1.100<\/code>). Ancak bu durumda Let&#8217;s Encrypt ile \u00fccretsiz HTTPS sertifikas\u0131 alman\u0131z m\u00fcmk\u00fcn olmaz ve ba\u011flant\u0131n\u0131z g\u00fcvenli olarak i\u015faretlenmez. Geli\u015ftirme ve test ortamlar\u0131 i\u00e7in kabul edilebilir olsa da, \u00fcretim ortamlar\u0131 i\u00e7in bir alan ad\u0131 kullanmak ve HTTPS yap\u0131land\u0131rmak en iyisidir.<\/p>\n<p>*   <strong>GitLab performans sorunlar\u0131 ya\u015farsam ne yapmal\u0131y\u0131m?<\/strong><br \/>\n    Performans sorunlar\u0131 genellikle yetersiz RAM veya CPU kaynaklar\u0131ndan kaynaklan\u0131r. \u00d6ncelikle sunucunuzun kaynak kullan\u0131m\u0131n\u0131 (<code>htop<\/code>, <code>free -h<\/code>) kontrol edin. Gerekirse sunucu kaynaklar\u0131n\u0131 art\u0131r\u0131n. Ayr\u0131ca <code>\/etc\/gitlab\/gitlab.rb<\/code> dosyas\u0131ndaki baz\u0131 ayarlar\u0131 (\u00f6rne\u011fin, Unicorn worker say\u0131s\u0131, Redis ve PostgreSQL ayarlar\u0131) optimize edebilirsiniz, ancak bu ileri d\u00fczey bir konudur ve dikkatli yap\u0131lmal\u0131d\u0131r.<\/p>\n<p>Bu rehberin, kendi \u00f6zel GitLab ortam\u0131n\u0131z\u0131 kurma yolculu\u011funuzda size yard\u0131mc\u0131 olmas\u0131n\u0131 umuyoruz. Ba\u015far\u0131lar dileriz!<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"GitLab Nedir ve Neden Kendi Sunucunuzda Kurmal\u0131s\u0131n\u0131z?\nGitLab, Git tabanl\u0131 bir kod deposu y\u00f6neticisi olman\u0131n \u00f6tesinde, entegre bir yaz\u0131l\u0131m","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":[1401],"tags":[],"class_list":{"0":"post-30565","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-git","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 Nedir ve Neden Kendi Sunucunuzda Kurmal\u0131s\u0131n\u0131z? - 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\/gitlab-nedir-ve-neden-kendi-sunucunuzda-kurmalisiniz\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"GitLab Nedir ve Neden Kendi Sunucunuzda Kurmal\u0131s\u0131n\u0131z?\" \/>\n<meta property=\"og:description\" content=\"GitLab Nedir ve Neden Kendi Sunucunuzda Kurmal\u0131s\u0131n\u0131z? GitLab, Git tabanl\u0131 bir kod deposu y\u00f6neticisi olman\u0131n \u00f6tesinde, entegre bir yaz\u0131l\u0131m\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/gitlab-nedir-ve-neden-kendi-sunucunuzda-kurmalisiniz\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-29T06:41:51+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=\"13 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gitlab-nedir-ve-neden-kendi-sunucunuzda-kurmalisiniz\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gitlab-nedir-ve-neden-kendi-sunucunuzda-kurmalisiniz\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"GitLab Nedir ve Neden Kendi Sunucunuzda Kurmal\u0131s\u0131n\u0131z?\",\"datePublished\":\"2025-09-29T06:41:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gitlab-nedir-ve-neden-kendi-sunucunuzda-kurmalisiniz\/\"},\"wordCount\":2331,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Git\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/gitlab-nedir-ve-neden-kendi-sunucunuzda-kurmalisiniz\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gitlab-nedir-ve-neden-kendi-sunucunuzda-kurmalisiniz\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/gitlab-nedir-ve-neden-kendi-sunucunuzda-kurmalisiniz\/\",\"name\":\"GitLab Nedir ve Neden Kendi Sunucunuzda Kurmal\u0131s\u0131n\u0131z? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-09-29T06:41:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gitlab-nedir-ve-neden-kendi-sunucunuzda-kurmalisiniz\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/gitlab-nedir-ve-neden-kendi-sunucunuzda-kurmalisiniz\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gitlab-nedir-ve-neden-kendi-sunucunuzda-kurmalisiniz\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"GitLab Nedir ve Neden Kendi Sunucunuzda Kurmal\u0131s\u0131n\u0131z?\"}]},{\"@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 Nedir ve Neden Kendi Sunucunuzda Kurmal\u0131s\u0131n\u0131z? - 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\/gitlab-nedir-ve-neden-kendi-sunucunuzda-kurmalisiniz\/","og_locale":"tr_TR","og_type":"article","og_title":"GitLab Nedir ve Neden Kendi Sunucunuzda Kurmal\u0131s\u0131n\u0131z?","og_description":"GitLab Nedir ve Neden Kendi Sunucunuzda Kurmal\u0131s\u0131n\u0131z? GitLab, Git tabanl\u0131 bir kod deposu y\u00f6neticisi olman\u0131n \u00f6tesinde, entegre bir yaz\u0131l\u0131m","og_url":"https:\/\/fatihsoysal.com\/blog\/gitlab-nedir-ve-neden-kendi-sunucunuzda-kurmalisiniz\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-09-29T06:41:51+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"13 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/gitlab-nedir-ve-neden-kendi-sunucunuzda-kurmalisiniz\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/gitlab-nedir-ve-neden-kendi-sunucunuzda-kurmalisiniz\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"GitLab Nedir ve Neden Kendi Sunucunuzda Kurmal\u0131s\u0131n\u0131z?","datePublished":"2025-09-29T06:41:51+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/gitlab-nedir-ve-neden-kendi-sunucunuzda-kurmalisiniz\/"},"wordCount":2331,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Git"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/gitlab-nedir-ve-neden-kendi-sunucunuzda-kurmalisiniz\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/gitlab-nedir-ve-neden-kendi-sunucunuzda-kurmalisiniz\/","url":"https:\/\/fatihsoysal.com\/blog\/gitlab-nedir-ve-neden-kendi-sunucunuzda-kurmalisiniz\/","name":"GitLab Nedir ve Neden Kendi Sunucunuzda Kurmal\u0131s\u0131n\u0131z? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-09-29T06:41:51+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/gitlab-nedir-ve-neden-kendi-sunucunuzda-kurmalisiniz\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/gitlab-nedir-ve-neden-kendi-sunucunuzda-kurmalisiniz\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/gitlab-nedir-ve-neden-kendi-sunucunuzda-kurmalisiniz\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"GitLab Nedir ve Neden Kendi Sunucunuzda Kurmal\u0131s\u0131n\u0131z?"}]},{"@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\/30565","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=30565"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30565\/revisions"}],"predecessor-version":[{"id":30566,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30565\/revisions\/30566"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=30565"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=30565"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=30565"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}