VPS, Dokploy ve Cloudflared ile Uygun Maliyetli Private Sunucu Kurulumu
VPS, Dokploy deployment platformu ve Cloudflared tunnel kullanarak güvenli, uygun maliyetli private sunucu kurulumu için pratik bir rehber
Neden Bu Stack?
Private sunucu çalıştırmak için pahalı cloud faturalarına ya da karmaşık infrastructure'lara ihtiyacınız yok. Çeşitli deployment setupları ile çalışırken öğrendiğim şey, en iyi çözümün genellikle kurumsal platformlar yerine basit, odaklanmış araçları birleştirmekte yattığı oldu.
Bu rehber, production-ready bir private sunucu kurulumunu anlatıyor:
- VPS uygun maliyetli compute için (~$5-20/ay)
- Dokploy temiz bir UI ile Docker-tabanlı deployment'lar için
- Cloudflared port açmadan güvenli erişim için
Toplam maliyet? Birden fazla uygulamayı güvenli şekilde çalıştıran temel bir kurulum için ayda yaklaşık $5-10.
Gereksinimler
Başlamadan önce ihtiyacınız olanlar:
- Bir domain name (Cloudflare tunnel için)
- Temel terminal/SSH bilgisi
- Cloudflare hesabı (ücretsiz tier yeterli)
- ~30 dakika kurulum süresi
Mimari Genel Bakış
İşte kuracağımız yapı:
Bu kurulumun güzelliği: sunucunuz asla doğrudan port açmıyor. Tüm trafik Cloudflare'in şifreli tunnel'ından akıyor.
Adım 1: VPS Seçimi ve İlk Kurulum
Provider Seçimi
Birkaç VPS provider ile çalıştım. İşte bütçe dostu seçenekler hakkında öğrendiklerim:
Hetzner ($5-10/ay):
- Mükemmel fiyat/performans oranı
- Avrupa data center'ları (GDPR uyumluluğu için iyi)
- Güvenilir network
- Production workload'ları için harika
Contabo ($4-8/ay):
- Çok uygun fiyatlı
- Fiyatına göre daha fazla kaynak
- Peak saatlerde network tutarsız olabiliyor
DigitalOcean ($6-12/ay):
- Mükemmel dokümantasyon
- Öngörülebilir performans
- Harika community desteği
Bu rehberde Hetzner kullanacağım, ama komutlar tüm provider'larda çalışıyor.
Minimum Özellikler
Dokploy ve birkaç küçük uygulama için:
- RAM: Minimum 2GB (4GB önerilir)
- CPU: 1-2 core
- Storage: Minimum 20GB SSD
- OS: Ubuntu 22.04 LTS
İlk Sunucu Kurulumu
VPS'iniz hazır olduktan sonra SSH ile bağlanın:
İlk olarak sistemi güncelleyin:
Adım 2: Güvenlik Sağlamlaştırma
İşte öğrendiğim şey: şimdi güvenliğe 15 dakika ayırın, sonra saatlerce baş ağrısından kurtulun.
Root Olmayan Kullanıcı Oluşturma
SSH Key Authentication Kurulumu
Local makinenizde:
SSH Konfigürasyonunu Sağlamlaştırma
Sunucuya geri dönün:
Bu ayarları güncelleyin:
SSH'ı yeniden başlatın:
Warning: Mevcut SSH oturumunuzu kapatmadan önce, yeni konfigürasyonu ayrı bir terminalde test edin. Bir sorun varsa, düzeltmek için hâlâ erişiminiz var.
Firewall Konfigürasyonu (UFW)
fail2ban Kurulumu
Brute force saldırılara karşı korur:
SSH bölümünü güncelleyin:
fail2ban'i başlatın:
Adım 3: Dokploy Kurulumu
Dokploy, Docker ile Heroku benzeri bir deployment deneyimi sağlıyor. İşte faydalı olmasının nedenleri: basit web UI, built-in database desteği ve kolay uygulama deployment'ı.
Docker Kurulumu
Tip: Docker grup değişikliğinin etkili olması için çıkış yapıp tekrar giriş yapın.
Dokploy Kurulumu
Bu script:
- Docker'ı kurmuyor ise kuruyor
- Dokploy servislerini kuruyor
- Web interface'i konfigüre ediyor
- Dokploy dashboard'unu başlatıyor
Kurulumdan sonra Dokploy 3000 portunda çalışıyor. Ama şöyle bir şey var: bu portu doğrudan açmayacağız. İşte Cloudflared burada devreye giriyor.
Adım 4: Cloudflared Tunnel Kurulumu
Port açmak yerine, Cloudflare üzerinden güvenli bir tunnel oluşturacağız. Bu yaklaşımın öğrenmeye değer birkaç avantajı var:
- Port forwarding gerekmez
- Built-in DDoS koruması
- Ücretsiz SSL sertifikaları
- Trafik analytics
Cloudflared Kurulumu
Cloudflare ile Authentication
Bu tunnel'ı authorize etmek için bir browser açıyor. Domain'inizi seçin.
Tunnel Oluşturma ve Konfigürasyon
Konfigürasyon dosyası oluşturun:
Bu konfigürasyonu ekleyin:
DNS Setup
Tunnel'ı Servis Olarak Çalıştırma
Şimdi https://dokploy.yourdomain.com adresini ziyaret edin - Cloudflare tunnel üzerinden güvenli şekilde erişilen Dokploy dashboard'unu görmelisiniz.
Adım 5: İlk Uygulamanızı Deploy Etme
Her şeyin çalıştığını doğrulamak için basit bir Node.js uygulaması deploy edelim.
Dokploy'da Uygulama Oluşturma
- Dokploy dashboard'unu açın (
https://dokploy.yourdomain.com) - İlk setup'ı tamamlayın (admin hesabı oluşturun)
- "Create Project" tıklayın
- "Application" seçin
Örnek: Node.js App Deploy
İşte temel bir deployment konfigürasyonu:
Proje Yapısı:
Dockerfile:
package.json:
src/index.js:
Deployment Konfigürasyonu
Dokploy'da:
- Git repository'nizi bağlayın (GitHub, GitLab, vb.)
- Build ayarlarını yapın (Dockerfile-tabanlı)
- Port'u ayarlayın: 3000
- Deploy edin!
Uygulamanız İçin Tunnel Route Ekleme
/etc/cloudflared/config.yml dosyasını güncelleyin:
DNS oluşturun ve yeniden başlatın:
İzleme ve Bakım
Kaynak İzleme
İşte işleri sorunsuz çalışır halde tutan basit kontroller:
Log Yönetimi
Backup Stratejisi
Backup'lar hakkında öğrendiğim şey: erken otomatize edin.
Executable yapın ve zamanla:
Güncelleme Prosedürü
Yaygın Sorunların Çözümü
Tunnel Bağlantı Sorunları
Cloudflared tunnel'ınız bağlanmıyorsa:
Dokploy'a Erişilemiyor
Port Zaten Kullanımda
"Port already in use" hatası alıyorsanız:
Docker Storage Sorunları
Maliyet Dökümü
İşte bu kurulumun gerçek maliyeti:
Managed platformlarla karşılaştırın:
- Heroku: Benzer kaynaklar için $25-50/ay
- AWS Lightsail: $10-20/ay (tunnel/UI olmadan)
- Managed Kubernetes: Minimum $50-100/ay
Öğrenilenler
Bu stack ile birkaç deployment üzerinde çalışırken, işte öne çıkanlar:
İyi Çalışanlar:
- Güvenlik öncelikli yaklaşım: Cloudflared tüm bir güvenlik endişesi sınıfını ortadan kaldırıyor. Açık port yok, port tarama saldırıları yok demek.
- Basit güncellemeler: Dokploy, Kubernetes karmaşıklığı olmadan container orchestration'ı halediyor.
- Maliyet kontrolü: Sabit aylık maliyet, trafik artışlarından sürpriz fatura yok.
- Developer experience: Git push ile deploy, vendor lock-in olmadan modern hissettiriyor.
Göz Önünde Bulundurulması Gereken Trade-off'lar:
- Single point of failure: Bir VPS, donanım arızalanırsa downtime demek. Kritik uygulamalar için multiple region düşünün.
- Manuel scaling: Managed platformların aksine, scaling ek VPS instance'ları oluşturmak ve load balancing demek.
- Backup sorumluluğu: Backup stratejisinin sahibi sizsiniz. Otomatize edin ya da veri kaybı riski alın.
- Sınırlı kaynaklar: $5'lık bir VPS binlerce concurrent kullanıcı kaldırmaz. Limitinizi bilin.
Farklı Yapacağım Şeyler:
- Monitoring'i daha erken kurardım (Uptime Robot gibi)
- İlk setup adımlarını hemen dokümante ederdim
- İlk günden staging environment oluştururdum
- Güvenlik güncellemelerini unattended-upgrades ile otomatize ederdim
Sonraki Adımlar
Temel kurulumunuz çalıştıktan sonra, düşünün:
- Monitoring ekleyin: Availability kontrolleri için Uptime Robot veya benzeri kurun
- Otomatik güncellemeleri etkinleştirin: Güvenlik patch'leri için unattended-upgrades konfigüre edin
- Database'leri kurun: Dokploy out-of-the-box PostgreSQL, MySQL, MongoDB destekliyor
- Staging environment oluşturun: Test için ikinci bir ucuz VPS'e kurulumunuzu klonlayın
- CI/CD implement edin: Dokploy deployment'larını tetiklemek için GitHub Actions'ı bağlayın
Sonuç
Bu VPS + Dokploy + Cloudflared stack'i, pahalı managed platformlar ile karmaşık self-hosted setup'lar arasında pratik bir orta yol sağlıyor. Toplam setup süresi yaklaşık 30-45 dakika, devam eden bakım minimal - güncellemeler ve monitoring için ayda belki bir saat.
Bu yaklaşım özellikle şunlar için iyi çalışıyor:
- Yan projeler ve küçük uygulamalar
- Cloud platform karmaşıklığı olmadan DevOps öğrenmek
- Vendor lock-in olmadan deployment basitliği isteyen takımlar
- Orta düzey trafiğe sahip maliyet bilincine sahip production workload'ları
Mükemmel mi? Hayır. Managed platform kolaylığını maliyet tasarrufu ve kontrol için takas ediyorsunuz. Ama birçok kullanım durumu için, bu tam olarak doğru trade-off.
Burada kullanılan infrastructure pattern'leri - containerization, reverse proxying, secure tunneling - ölçekte kullanılan aynı pattern'ler. Bütçe dostu bir platform üzerinde production-grade konseptler öğreniyorsunuz.
Basit başlayın, kaynaklarınızı izleyin ve gerçekten ihtiyacınız olduğunda ölçeklendirin. Bu genellikle ilk günden aşırı mühendislik yapmaktan daha pratik.