ServBay'de Docker Kapsayıcısı Tabanlı Web Sitesi Ekleme ve Yapılandırma
ServBay, macOS için özel olarak tasarlanmış çok dilli ve teknolojik yığınlara sahip bir yerel web geliştirme ortamıdır. ServBay'in paketlenmiş uygulamalarını (PHP, Node.js, Python, Go, Java, veritabanları vb.) doğrudan çalıştırıp sitenizi barındırabileceğiniz gibi, Docker kapsayıcılarını da kullanarak web sitenizi veya servislerinizi çalıştırabilir ve yönetebilirsiniz. Bu yöntem; yüksek esneklik, ortam izolasyonu ve tutarlılık sağlar; özellikle özel bir ortam ya da bağımlılık gerektiren projeler için idealdir.
Bu dokümanda, ServBay'de Docker kapsayıcısı tarafından barındırılan bir web sitesinin nasıl ekleneceği ve ServBay'in ters proxy işleviyle nasıl kolayca entegre edileceği adım adım anlatılacaktır.
Genel Bakış
ServBay'i ters proxy olarak yapılandırarak, belirli bir alan adıyla yapılan istekleri Docker kapsayıcısı içinde çalışan servise yönlendirebilirsiniz. ServBay; tüm trafiği (ör. HTTPS sertifikaları, alan adı çözümleri vs.) yönetirken, Docker kapsayıcısı sadece uygulamanızı çalıştırmaya odaklanır. Bu yaklaşım, ServBay'in kolay yönetim arayüzünü Docker'ın güçlü konteynerleşme avantajlarıyla birleştirir.
Aşağıdaki adımlar, ServBay'de Docker servisinin barındırdığı bir site ekleme ve yapılandırma sürecini baştan sona rehberleyecektir.
Ön Koşullar
Başlamadan önce aşağıdaki koşulları sağladığınızdan emin olun:
- ServBay kurulu ve çalışıyor: macOS üzerinde ServBay’i başarılı şekilde kurup başlattınız.
- Docker kurulu ve çalışıyor: macOS üzerinde Docker Desktop veya diğer bir Docker ortamını yüklediniz ve Docker servisi çalışıyor.
- Docker imajı ve kapsayıcısı hazır: Web sitenizi veya uygulamanızı kapsayan Docker imajını hazırladınız veya çektiniz ve bu imaj ile bir kapsayıcı başlatabiliyorsunuz.
Site Ekleme İçin Adım Adım Rehber
Adım 1: Docker Kapsayıcınızı Hazırlayın ve Çalıştırın
Öncelikle Docker kapsayıcınızın etkin olarak çalıştığından ve içindeki sunucu servisinin (ör: web sunucusu) dinlediği portun Docker’ın port eşlemesi ile ana makinede (macOS) erişilebilir bir porta yönlendirildiğinden emin olun.
Örneğin, örnek bir Nginx kapsayıcınız varsa ve Nginx içeride 80 portunu dinliyorsa, aşağıdaki komut ile ana makinenizin 8080 portunu kapsayıcının 80 portuna eşleyebilirsiniz:
docker run -d --name my-nginx-servbay -p 8080:80 nginx
Bu örnekte, Docker kapsayıcısı my-nginx-servbay
içindeki Nginx servisi 80
portunda dinliyor. Ancak -p 8080:80
parametresi sayesinde, kapsayıcının 80
portu ana makinede 8080
portuna yönlendirildi. ServBay, ana makinenizdeki 8080
portu üzerinden kapsayıcıya ulaşacaktır.
Kendi uygulamanıza ve Dockerfile yapılandırmanıza bağlı olarak, kapsayıcıdaki servisin doğru porta dinlediğinden ve bu portun ana makinede bir port ile eşlendiğinden emin olun.
Adım 2: ServBay Yönetim Arayüzünü Açın
macOS “Uygulamalar” klasörünüzde ServBay
simgesini bulun ve çift tıklayarak yönetim arayüzünü başlatın.
Adım 3: Site Yönetim Sayfasına Gidin
ServBay açıldığında ana arayüzü göreceksiniz. Sol taraftaki navigasyon menüsünden Siteler
seçeneğine tıklayın. Bu alan, ServBay'de eklenmiş tüm yerel siteleri görebileceğiniz ve yönetebileceğiniz alandır.
Görsel: Sol menüde “Siteler” seçilerek yönetim sayfasına girilir.
Adım 4: Yeni Site Ekleyin
Site yönetimi sayfasının alt kısmında bir +
butonu göreceksiniz. Bu butona tıkladığınızda, sağ tarafta yeni bir form açılır ve yeni bir site için yapılandırma bilgilerinizi girmeniz istenir.
Görsel: Sayfanın altında “+” butonuna tıklayarak yeni site ekleyin.
Adım 5: Site Ayarlarını Yapılandırın
Açılan formda aşağıdaki temel bilgileri doldurmanız gerekmektedir:
- Adı (Name): Siteniz için kolayca tanıyabileceğiniz bir isim verin; örneğin
Docker Nginx Demo
. Bu ad yalnızca ServBay yönetimi içindir. - Alan Adı (Domain): Docker kapsayıcı sitenize tarayıcıdan erişmek istediğiniz yerel alan adını girin. Çakışmaları önlemek için
.servbay.demo
uzantısı önerilir, ör.docker.servbay.demo
. ServBay, bu alan adını otomatik olarak hosts dosyanıza (127.0.0.1
) atayacaktır. - Protokol (Protocol): Desteklenen protokolü seçin. Varsayılan olarak
HTTP/HTTPS
yeterlidir. ServBay hem HTTP (80) hem HTTPS (443) portlarını dinler ve SSL ayarlarınıza uygun şekilde yönetir. - SSL Sertifika Talep Yöntemi (SSL Certificate Request Method):
ServBay CA
seçilmesi önerilir. ServBay, kendi kullanıcı sertifika otoritesiyle otomatik ve güvenli yerel SSL sertifikası oluşturup yönetir. ServBay Public CA'yı sistem anahtar zincirinize kurarsanız, tarayıcılarınız bu sertifikaları güvenli olarak tanır ve yerelde HTTPS geliştirme/test işini kolayca yapabilirsiniz. Gelişmiş ihtiyaçlar içinACME
(ör. Let's Encrypt), ya daCustom
(kendi sertifikanız) seçeneklerini de kullanabilirsiniz. - Site Türü (Website Type): 【Kritik】
Ters Proxy (Reverse Proxy)
seçin. Bu yapılandırmayla ServBay, seçtiğiniz alan adı için bir giriş noktası olup gelen istekleri belirttiğiniz arka plan servis adresine (Docker kapsayıcınıza) iletecektir. - IP Adresi (IP Address): Docker kapsayıcınızın servisinin, ana makinede dinlediği IP adresini girin. Yerel Docker kurulumlarında genellikle bu adres
127.0.0.1
yani yereldir. - Port (Port): Docker kapsayıcı servisin ana makinede erişilir olduğu port numarasını yazın. Bu,
docker run -p <hostport>:<containerport>
komutunda belirttiğiniz<hostport>
'dur. Örneğin,-p 8080:80
yazdıysanız buraya8080
girin.
Görsel: Docker ters proxy sitesinin yapılandırma formu.
Adım 6: Yapılandırmayı Tamamlayıp Kaydedin
Gerekli tüm bilgileri girip formun altındaki Ekle (Add)
butonuna tıklayın.
ServBay başvurunuzu işleyerek kendi web sunucusu yapılandırma dosyalarına (örn: Caddy veya Nginx’de ters proxy kuralı olarak) ilgili yönergeleri ekleyecek ve hosts dosyanızı güncelleyerek seçtiğiniz alan adının doğru yere yönlendirilmesini sağlayacaktır.
Başarılı kayıttan sonra küçük bir konfigürasyon uygulama süresi olabilir. Sonrasında eklediğiniz alan adını tarayıcınızda deneyebilirsiniz.
Adım 7: Siteye Erişim ve Kısayol Fonksiyonlarını Kullanma
Yapılandırma başarıyla kaydedildiğinde, site yönetim panelinde yeni girişinizi göreceksiniz. Sitenin durumu “Çalışıyor” olmalıdır.
Tarayıcınızda tanımladığınız alan adına (ör. http://docker.servbay.demo
veya https://docker.servbay.demo
) giderek sitenize ulaşabilirsiniz. Her şey doğru yapılandıysa, ServBay isteğinizi Docker kapsayıcısındaki servise iletir ve bu servisin sunduğu içeriği tarayıcıda gösterir.
Site listesindeki her girişte, aşağıdaki gibi pratik kısa yol butonları vardır:
- Site kök dizinini IDE ile aç: (Ters proxy tipi sitelerde bu buton kullanılmaz veya ServBay’in yapılandırma dizinini açar. Davranış ServBay versiyonuna ve ayarlarına bağlıdır.)
- Siteyi tarayıcıda aç: Sitenin URL’sini yeni bir sekmede çabucak açar.
- Site günlüklerini görüntüle: Bu sitedeki erişim ve hata loglarını inceler, hata ayıklama için kullanışlıdır.
- Siteyi duraklat, başlat: Ters proxy yapılandırmasını geçici olarak devre dışı bırakabilir veya tekrar etkinleştirebilirsiniz.
- Siteyi sil: Sitenin konfigürasyonunu ServBay’den kaldırır.
Görsel: ServBay site liste elemanında bulunan kısa yol butonları.
Dikkat Edilmesi Gerekenler ve En İyi Uygulamalar
- Docker kapsayıcı durumu: Hedef Docker kapsayıcınızın her zaman çalışır olduğundan emin olun, aksi hâlde ServBay istekleri iletemez.
- Port eşleme: Docker’daki port eşlemesi (
-p
parametresi) ile ServBay’de girdiğiniz portun birebir aynı olduğundan ve ana makinede o portun başka bir uygulama tarafından kullanılmadığından emin olun. - Güvenlik duvarı: macOS güvenlik duvarı ayarlarınızı kontrol edin; ServBay’in kullandığı portlar (çoğunlukla 80, 443) ve Docker kapsayıcınızın erişilir olduğu portun bloke edilmediğinden emin olun.
- Docker ağ modu: Çoğu zaman, varsayılan
bridge
modunda kalıp-p
parametresiyle port eşlemesi yapmak en kolay yoldur. Eğerhost
ağ modunu kullanırsanız, ServBay doğrudan kapsayıcı içindeki portu dinler (örneğin kapsayıcıda 80 portu ise ServBay’de de 80 yazılır). Ancakhost
modunda port çakışması yaşanabilir. - ServBay CA: Yerel ortamda HTTPS geliştirme kolaylığı için ServBay Public CA’yı kurmanız şiddetle önerilir. Böylece ServBay’in oluşturduğu yerel sertifikalara tarayıcınız güvenle erişir ve güvenlik uyarıları göstermeden HTTPS testleri yapılabilir.
Sıkça Sorulan Sorular ve Sorun Giderme (SSS)
S: Siteyi ekledim ama ulaşamıyorum; tarayıcıda bağlantı hatası veya zaman aşımı oluyor?
C: Şunları sırayla kontrol edin:
- ServBay site durumu: ServBay'de ilgili sitenin “Çalışıyor” olarak göründüğünden emin olun.
- Docker kapsayıcı durumu: Terminalde
docker ps
komutu ile ilgili kapsayıcının çalıştığını doğrulayın. - Docker port eşlemesi: Yeniden
docker ps
ile kapsayıcının port eşleşmelerine bakın (PORTS
sütunu). Ana makinenizde ulaşılan port (ör.0.0.0.0:8080->80/tcp
veya127.0.0.1:8080->80/tcp
içindeki8080
), ServBay’de ayarladığınız port ile aynı mı kontrol edin. - Kapsayıcı içi servis: Docker kapsayıcıda çalışan web servisini (ör. Nginx, Apache, Node.js uygulaması) doğru portta dinlediğinden ve hata vermediğinden emin olun.
docker logs <kapsayıcı ID veya adı>
ile kapsayıcı loglarını inceleyin. - ServBay logları: ServBay arayüzünde, ilgili sitenin log ikonuna tıklayıp hata ve erişim kayıtlarını gözden geçirin. Proxy yönlendirme sorununun detayı burada olabilir.
- Hosts dosyası: ServBay çoğunlukla bunu otomatik yapar ama isterseniz
/etc/hosts
dosyasına bakıp alan adının gerçekten127.0.0.1
’e yönlendiğine emin olun. - Güvenlik duvarı: ServBay’in ve Docker kapsayıcınızın kullandığı portlara erişimi engelleyen herhangi bir güvenlik duvarı olup olmadığını kontrol edin.
S: ServBay ile Docker kapsayıcılarını doğrudan yönetebilir miyim?
C: ServBay’in görevi, yerel web servislerini, veritabanlarını, programlama ortamlarını yönetmek ve trafik ile alan adını arka plan servislerine (Docker kapsayıcılar dahil) yönlendirmektir. Docker kapsayıcılarının ömrünü (başlatma, durdurma, imaj oluşturma, vs.) yönetmek için ayrı olarak Docker komut satırı araçlarını veya Docker Desktop arayüzünü kullanmalısınız.
S: ServBay CA nedir? Neden bunu kurmam gerekiyor?
C: ServBay CA (Certificate Authority), yerel HTTPS geliştirme işlemlerini kolaylaştıran bir sertifika yönetim mekanizmasıdır. ServBay User CA, yerel web sitelerinize SSL sertifikası üretirken, ServBay Public CA bu sertifikaların kök otoritesidir. ServBay Public CA’yı sistem anahtar zincirine kurduğunuzda, işletim sistemi ve tarayıcılarınız ServBay User CA ile imzalanan tüm sertifikaları güvenli olarak tanır; böylece yerel ServBay sitelerine HTTPS ile bağlanırken "güvensiz bağlantı" uyarısı almazsınız. Bu, canlıya benzer bir HTTPS ortamında yerel geliştirme ve test yapmak için çok önemlidir.
Sonuç
ServBay’de Docker kapsayıcıları tarafından sunulan web sitelerini eklemek, trafiği ve alan adlarını merkezi şekilde yönetmek için ServBay’i, uygulama ortamınızın izole ve taşınabilir çalışabilmesi için de Docker’ı birleştiren etkili ve esnek bir yöntemdir. Basit bir ters proxy konfigürasyonuyla, istediğiniz nedenle Docker tabanlı projelerinizi kolayca ServBay iş akışınıza entegre edebilirsiniz. Buradaki adımları ve ipuçlarını takip ederek, Docker ile çalışan yerel web sitelerinizi sorunsuzca kurabilir ve kullanabilirsiniz.