ServBay’de Docker Konteyneri Tabanlı Web Sitesi Ekleme ve Yapılandırma
ServBay, macOS ve Windows’u destekleyen, birçok programlama dili ve teknoloji yığınını kapsayan yerel bir web geliştirme ortamıdır. ServBay’in bünyesindeki paketlerle (PHP, Node.js, Python, Go, Java, veritabanı vb.) doğrudan web sitesi barındırmanın dışında, Docker konteynerlerini kullanarak sitenizi veya servislerinizi çalıştırabilir ve yönetebilirsiniz. Bu yöntem, ihtiyaç duyduğunuz spesifik ortam veya bağımlılıklar için yüksek derecede esneklik, ortam izolasyonu ve tutarlılık sağlar.
Bu makalede, ServBay’de Docker konteyneriyle çalışan bir web sitesinin nasıl ekleneceği ve ServBay’in ters proxy özelliğiyle yerel geliştirme akışınıza nasıl entegre edileceği ayrıntılı olarak anlatılacaktır.
Genel Bakış
ServBay’i ters proxy olarak yapılandırdığınızda, belirli alan adı isteğini Docker konteynerinde çalışan hizmetin portuna yönlendirebilirsiniz. ServBay giriş trafiğini (HTTPS sertifikası, alan adı çözümleme vb.) işlerken, Docker konteyneri sadece uygulamanızı çalıştırır. Bu model, ServBay’in kullanışlı yönetim arayüzü ile Docker’ın güçlü konteynerizasyonunu birleştirir.
Aşağıdaki adımlar, ServBay’de Docker hizmetiyle çalışan bir web sitesinin eklenip yapılandırılması sürecini ayrıntılı olarak göstermektedir.
Ön Koşullar
Başlamadan önce aşağıdaki gereksinimlerin karşılandığından emin olun:
- ServBay kurulu ve çalışıyor: ServBay’i macOS üzerinde kurup başlattınız.
- Docker kurulu ve çalışıyor: macOS üzerinde Docker Desktop veya farklı bir Docker ortamı kurulu, Docker hizmeti çalışıyor.
- Docker imajı ve konteyneri hazır: Sitenizi veya uygulamanızı içeren bir Docker imajı oluşturuldu/yüklendi ve bu imajla bir konteyner çalıştırılabiliyor.
Web Sitesi Ekleme Adımları
Adım 1: Docker Konteynerini Hazırlama ve Çalıştırma
Öncelikle, Docker konteynerinizin çalıştığından ve konteynerdeki servisinizin (ör. web sunucusu) Docker port yönlendirmesiyle ana makinenize (macOS) uygun bir portta erişilebilir olduğundan emin olun.
Örneğin, Nginx içeren basit bir konteyneriniz varsa ve Nginx içeride 80 portunu dinliyorsa, aşağıdaki komut ile ana makinenizin 8080 portunu konteynerdeki 80 portuna eşleyebilirsiniz:
bash
docker run -d --name my-nginx-servbay -p 8080:80 nginx
1
Bu örnekte, my-nginx-servbay
Docker konteynerindeki Nginx servisi 80 portu üzerinden dinliyor; -p 8080:80
parametresiyle konteynerin 80 portunu ana makinenin 8080 portuna aktarıyoruz. ServBay, ana makinedeki 8080 portuna bağlanacaktır.
Uygulamanıza ve Dockerfile yapılandırmanıza göre, konteynerin içindeki servisin doğru portu dinlediğinden ve bu portun ana makinede uygun bir porta eşlendiğinden emin olun.
Adım 2: ServBay Yönetim Arayüzünü Açın
macOS uygulama klasöründe ServBay
simgesini bulun ve çift tıklayarak ServBay yönetim arayüzünü başlatın.
Adım 3: Site Yönetimi Sayfasına Geçiş
ServBay’i açtığınızda ana ekranı göreceksiniz. Sol taraftaki menüde Web Sitesi
seçeneğini bulup tıklayın. Buradan ServBay’de ekli olan tüm yerel siteleri görüntüleyip yapılandırabilirsiniz.
Görsel: Sol menüden “Web Sitesi”ne tıklayarak yönetim paneline geçiş.
Adım 4: Yeni Web Sitesi Ekleme
Web sitesi yönetim sayfasının alt kısmında bir +
butonu göreceksiniz. Bu butona tıklayarak, ServBay sağ alanda yeni bir form açacak ve yeni site yapılandırma bilgilerinizi girmenize olanak tanıyacak.
Görsel: Sayfanın altındaki “+” butonuna tıklayarak yeni site ekleyin.
Adım 5: Website Ayarlarını Yapılandırma
Yeni açılan web sitesi formunda aşağıdaki bilgileri girmeniz gerekmektedir:
- Ad (Name): Web siteniz için kolay tanınacak bir isim belirleyin; örneğin
Docker Nginx Demo
. Bu isim ServBay’de dahili bir yönetim amaçlıdır. - Alan Adı (Domain): Docker konteyner tabanlı web sitesine tarayıcıdan ulaşmak için kullanacağınız yerel alan adını girin. Kamuya açık alan adlarıyla çakışmayı önlemek için
.servbay.demo
uzantısı önerilir; ör:docker.servbay.demo
. ServBay, bu alan adını otomatik olarak hosts dosyanıza ekler ve127.0.0.1
adresine yönlendirir. - Protokol (Protocol): Sitenizin destekleyeceği protokolü seçin; genellikle
HTTP/HTTPS
varsayılan olarak yeterli olacaktır. ServBay, hem HTTP (80) hem de HTTPS (443) portunu dinler; SSL ayarlarınıza göre işlemleri otomatik yürütür. - SSL Sertifika Başvuru Yöntemi (SSL Certificate Request Method): Tavsiye edilen seçim
ServBay CA
’dir. ServBay, kendi User CA ile sistemde yerel olarak güvenilen bir SSL sertifikasını sizin için oluşturup yönetir. ServBay Public CA’yı sistem anahtar zincirine yükleyerek, bu yerel sertifikalara tarayıcılarınızın güvenmesini sağlarsınız; böylece HTTPS geliştirme ve test daha kolay olur. Taleplerinize göreACME
(ör. Let’s Encrypt) veyaCustom
(kendi sertifikanız) seçebilirsiniz. - Site Türü (Website Type): 【Önemli】
Ters Proxy (Reverse Proxy)
seçeneğini işaretleyin. Bu, ServBay’in söz konusu alan adının trafik giriş noktası olarak çalışıp, tüm istekleri belirttiğiniz arka uç adresine aktaracağı anlamına gelir. - IP Adresi (IP Address): Docker konteyner servisinizin ana makinedeki dinlediği IP adresini girin. Çoğu yerel Docker kurulumunda bu adres genellikle
127.0.0.1
’dir. - Port (Port): Docker konteyner servisinin ana makinede kullandığı port numarasını belirtin. Bu,
docker run -p <host port>:<container port>
komutunda belirttiğiniz<host port>
’a karşılık gelir. Örneğin,-p 8080:80
kullandıysanız buraya8080
yazmalısınız.
Görsel: Docker ters proxy sitesi için yapılandırma bilgilerini doldurma.
Adım 6: Ayarları Tamamlayıp Kaydetme
Gerekli tüm bilgileri girdikten sonra formun altındaki Ekle (Add)
butonuna tıklayın.
ServBay, bu işlemi otomatik olarak yürütüp, kendi web sunucusunda (ör: Caddy veya Nginx) uygun ters proxy kurallarını ekleyecek ve sistemde hosts dosyasını da belirlediğiniz alan adına göre güncelleyecek.
Başarıyla kaydettikten sonra kısa bir konfigürasyon uygulama süreci gerçekleşir; hemen ardından eklediğiniz alan adını tarayıcıda açmayı deneyebilirsiniz.
Adım 7: Siteye Erişim ve Kısayol İşlemleri
Yapılandırmayı kaydettikten sonra site yönetim sayfasına geri döndüğünüzde, eklenen sitenin listede göründüğünü ve “Çalışıyor” olarak belirtildiğini göreceksiniz.
Tarayıcıda belirlediğiniz alan adını (ör. http://docker.servbay.demo
veya https://docker.servbay.demo
) ziyaret edebilirsiniz. Tüm ayarlar doğruysa, ServBay isteğinizi Docker konteynerindeki servise iletecek ve tarayıcıda ilgili web içeriğini gösterecek.
ServBay, site listesinde şu pratik kısayol butonlarını sunar:
- IDE ile site kök dizinini aç: (Ters proxy tipindeki sitelerde, bu buton geçersiz olabilir veya ServBay’in ayar dizinine yönlendirir; kesin davranış ServBay sürümüne ve konfigürasyona göre değişir.)
- Sitede tarayıcı ile aç: URL’yi yeni sekmede hızla açar.
- Site günlüklerini görüntüle: Siteye ait erişim ve hata günlüklerini inceleyebilir, hata tespitlerinde yardımcı olur.
- Siteyi duraklat/aktif hale getir: Ters proxy konfigürasyonunu geçici olarak devre dışı bırakır veya yeniden etkinleştirir.
- Siteyi sil: Sitenin yapılandırmasını ServBay’den kaldırır.
Görsel: ServBay site listesinde yer alan pratik işlem butonları.
Dikkat Edilecek Noktalar ve İyi Uygulamalar
- Docker konteyner durumu: Hedef Docker konteynerinizin her zaman çalışır olduğundan emin olun, aksi takdirde ServBay istekleri iletemez.
- Port yönlendirmesi: Docker’daki port ayarlarının (
-p
parametresi) ServBay’deki port numarasıyla uyumlu olup olmadığını ve ana makinede o portun başka bir uygulama tarafından kullanılmadığını kontrol edin. - Güvenlik duvarı: macOS güvenlik duvarı ayarlarını gözden geçirin; ServBay’in kullandığı varsayılan portlar (80, 443) ve Docker’ın ana makinede yönlendirdiği portlar engellenmemeli.
- Docker ağ modu: Genellikle
bridge
ağ modu ve-p
ile port yönlendirme en pratik yöntemdir. Eğerhost
ağ modunu kullanırsanız, ServBay doğrudan konteynerin dinlediği porta erişir (örneğin içeride 80 portuna), fakathost
modunda port çakışması yaşanabilir. - ServBay CA: HTTPS geliştirmeyi kolaylaştırmak için ServBay Public CA’yı kurmanız önerilir. Böylece ServBay tarafından oluşturulan yerel sertifikalara tarayıcılarınız güvenir ve güvenlik uyarısı görmezsiniz.
Sık Sorulan Sorular ve Sorun Giderme (SSS)
S: Site ekledikten sonra erişim sağlanamıyor, tarayıcıda bağlantı hatası veya zaman aşımı mı oluyor?
C: Şu adımları izleyin:
- ServBay site durumunu kontrol edin: ServBay’de yönetim sayfasında sitenin “Çalışıyor” olarak görünüp görünmediğini doğrulayın.
- Docker konteyner durumunu kontrol edin: Terminalde
docker ps
komutuyla ilgili konteynerin aktif olduğunu doğrulayın. - Docker port yönlendirmesini kontrol edin: Terminalde
docker ps
komutu ile konteynerin port eşleme bilgisini (PORTS
sütunu) kontrol edin. Host portu (örneğin0.0.0.0:8080->80/tcp
veya127.0.0.1:8080->80/tcp
içindeki8080
), ServBay’de ayarladığınız port ile uyumlu olmalı. - Docker konteyner içindeki servise bakın: Web servisi (ör. Nginx, Apache, Node) doğru portu dinliyor mu ve hata var mı?
docker logs <containerID veya isim>
ile konteyner günlüklerine bakabilirsiniz. - ServBay günlüklerini kontrol edin: Site listesinde günlük ikonuna tıklayarak, ServBay’in erişim ve hata günlüklerini inceleyin. İletim hatalarıyla ilgili ayrıntı bulabilirsiniz.
- Sistem hosts dosyasını kontrol edin: ServBay bu işlemi otomatik yürütse de,
/etc/hosts
dosyasında alan adının127.0.0.1
’e yönlendiğine manuel olarak da bakabilirsiniz. - Güvenlik duvarını kontrol edin: ServBay veya Docker’ın kullandığı host portlarına engel olmadığından emin olun.
S: ServBay ile Docker konteynerinin kendisini de yönetebilir miyim?
C: ServBay esas olarak yerel web servisleri, veritabanları, programlama ortamları ve arka uç servislerine trafik yönlendirmek için tasarlanmıştır (Docker konteynerleri dahil). Fakat yeni bir konteyner başlatma/durdurma, imaj oluşturma gibi Docker yaşam döngüsü işlevleri ServBay’de yoktur. Konteyner yönetimi için Docker CLI’yı veya Docker Desktop arayüzünü kullanmaya devam etmeniz gerekir.
S: ServBay CA nedir? Neden kurmam gerekiyor?
C: ServBay CA (Sertifika Yetkilisi), yerelde HTTPS geliştirmelerini kolaylaştırmak için sunduğu bir sertifika yönetim sistemidir. ServBay User CA yerel web siteleriniz için SSL sertifikası oluştururken; ServBay Public CA ise bunun kök sertifikasıdır. ServBay Public CA’yı sistem anahtar zincirinize yüklediğinizde, işletim sistemi ve tarayıcılar User CA’nın oluşturduğu tüm sertifikalara güveniyor olacaktır. Böylece ServBay’de barındırdığınız HTTPS web sitelerine girerken “güvensiz bağlantı” uyarısı ortadan kalkar. Üretim ortamını taklit etmek ve HTTPS ile yerel geliştirme/test yapmak için elzemdir.
Sonuç
ServBay’de Docker konteyneriyle bir web sitesi barındırmak, verimli ve esnek bir yöntemdir. ServBay, yerel geliştirme merkeziniz olarak hem trafik hem de alan adı yönetimini üstlenirken, Docker uygulamanızın çalışma ortamını güçlü bir şekilde izole eder. Basit bir ters proxy ayarıyla, Docker tabanlı projelerinizi ServBay iş akışınıza kolayca entegre edebilirsiniz. Makaledeki adımları ve önerileri takip ederek Docker üzerinde çalışan yerel web sitenizi hızlıca kurup kullanabilirsiniz.