Spring Boot Projesini VPS'e Deploy Etmek: Adım Adım Rehber
Spring Boot uygulamanızı kendi VPS'nize nasıl deploy edersiniz? JAR upload, Git-based build, systemd, Docker ve Kubernetes ile 5 farklı yolu karşılaştıran kapsamlı rehber.
Spring Boot projelerini canlıya almak, görece basit bir işlem olmasına rağmen sürdürülebilir bir deploy pipeline kurmak çoğu developer’ı yoran bir iştir. JAR dosyasını sunucuya atmak 5 dakika sürer; ama ona systemd servisi, nginx reverse proxy, Let’s Encrypt SSL, otomatik restart, log rotation, health check eklemek 2-3 günü alabilir.
Bu rehberde Spring Boot projesini VPS’e deploy etmenin 5 farklı yolunu karşılaştıracağız; sonunda en hızlı yol için VDS Panel üzerinden nasıl yapıldığını göstereceğiz.
Ön hazırlık: Temiz bir VPS
Herhangi bir yöntem için minimum 2 vCPU + 4 GB RAM + Ubuntu 22.04+ yeterli. Spring Boot uygulamanız büyük bir heap kullanmıyorsa 2 GB RAM’lik bir VPS’te de çalışır.
Artıları: Tam kontrol, bağımlılık yok.
Eksileri: Her deploy için aynı ritüel. İnsan hatası çok. Güncelleme zaman alır.
Yöntem 2: Docker ile containerize
Spring Boot projesine bir Dockerfile eklersiniz:
FROM eclipse-temurin:17-jre-alpineWORKDIR /appCOPY target/myapp-1.0.0.jar app.jarEXPOSE 8080ENTRYPOINT ["java","-jar","app.jar"]
Build edip docker registry’e push eder, sunucuda pull + run edersiniz.
Artıları: Taşınabilirlik, version control, kolay rollback.
Eksileri: Docker registry yönetimi, image size optimizasyonu, hâlâ nginx + SSL manuel.
Yöntem 3: Docker Compose
Birden fazla servis varsa (DB, Redis, vs.) Docker Compose işleri basitleştirir. Ama hâlâ sunucuya SSH ile bağlanıp docker compose pull && docker compose up -d çalıştırmanız gerekir. CI/CD’i kendiniz kurarsınız.
Yöntem 4: Kubernetes (K3s)
Profesyonel seçenek. Deployment, Service, Ingress manifestlerinizi yazıp cluster’a uygularsınız. Ölçeklenebilir, rolling update yapar, health check’ler yerleşik.
Artıları: Endüstri standardı, ölçeklenebilir, resilient.
Eksileri: Öğrenme eğrisi dik. YAML çok. Basit bir app için aşırı kompleks.
Hangisini öğrenmeli?
Bir developer’ın kariyerinde systemd, Docker ve Kubernetes temellerini bilmek değerlidir. Ama bunları her deploy için kullanmak zorunda değilsiniz. İki farklı amaç: öğrenmek ve üretken olmak.
Yöntem 5: VDS Panel ile tek tık deploy
Yukarıdaki 4 yöntem de işe yarar, ama hepsinin iş gücü maliyeti var. Dev ekibinizin zamanı değerliyse, otomasyon bu sürecin büyük kısmını üstlenebilir.
01
Panele proje ekle
GitHub bağlıysa repo listeden seçilir; değilse URL girilir. JAR upload seçeneği de var.
PostgreSQL kutusu işaretlersin; panel DB + user + parola üretir, DATABASE_URL env'e enjekte olur.
04
Özel domain bağla
DNS A kaydını sunucu IP'sine yönlendirin; panel Let's Encrypt sertifikasını otomatik alır.
05
Deploy'a bas
Panel paralel pipeline'ı başlatır: build, DB, SSL, nginx, health check. ~90 saniye sonra canlıda.
~90sn
git push'tan canlıya
Build + DB + SSL + nginx hepsi paralel. İlk deploy sonrası cache ile daha da kısalır.
Sonraki her deploy, git push
İlk deploy’dan sonra GitHub’a her push’ta panel webhook’u yakalar, yukarıdaki adımları tekrar çalıştırır. Rollback da bir tık: önceki başarılı deploy’a “Restore” der.
Health check endpoint (/actuator/health) tanımlanır, interval belirlenir
Log rotation otomatik aktiftir (5 dosya, her biri 100 MB)
Memory/CPU limit proje bazında ayarlanır
Environment variables güvenli şekilde saklanır (dosyaya yazılmaz)
Nexus + SonarQube entegrasyonu
Spring Boot projeleriyle gelen iki yaygın ihtiyaç: artifact repository ve code quality analizi. VDS Panel’in systemServices modülü bu ikisini tıkla-kur ile sağlar:
Nexus Repository Manager, JAR’lar buraya push edilir, Maven settings.xml’iniz otomatik güncellenir
SonarQube, Her build’de kod kalite analizi çalışır, rapor panele entegre gelir
~2 saat
Manuel Nexus + SonarQube
Nexus için Docker image çek, yapılandır
Volume + port + reverse proxy ayarla
Admin şifresini oluştur, repository tanımla
SonarQube için de aynı süreç
Maven settings.xml elle editle
Webhook bağla
~2 dakika
Panel'den tıkla-kur
Servisler sekmesinden Nexus 'Kur'
Servisler sekmesinden SonarQube 'Kur'
settings.xml otomatik güncellenir
Her build SonarQube'a gönderilir
Raporlar panelden erişilebilir
Bu iki aracı manuel kurmak en az 2 saatlik bir iş. Panelden “Servisler” sekmesine gidip + tıklamak ile 1 dakikalık.
Sonuç
Spring Boot’u VPS’e deploy etmenin beş yöntemini gördük. İlk dördü öğrenmek lazım, bir developer’ın kariyerinde systemd, Docker, Kubernetes bilmek hâlâ değerli. Ama her deploy için bu bilgileri kullanmak zorunda değilsiniz.
VDS Panel’in amacı tam da bu: arkadaki teknolojiyi gizlemeden, yüzeyi basit tutarak iş akışınızı hızlandırmak. Spring Boot projelerinizi git push ile canlıya almak için panel kurulumunu 8 dakikada tamamlayabilirsiniz.