İçeriğe atla
VDS Panel
VDS Panel
Sunucu Yönetimi
Deploy 05 Mart 2026 · 10 dk okuma

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 #java deploy #jar #vps #deploy rehberi
VDS Panel
VDS Panel Ekibi
Ürünü geliştiren ekip

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.

Sunucuda gerekli paketleri kuralım:

sudo apt update
sudo apt install -y openjdk-17-jre-headless nginx certbot python3-certbot-nginx

Yöntem 1: JAR + systemd (manuel, klasik)

En temel yöntem. JAR’ı scp ile sunucuya kopyalarsınız:

scp target/myapp-1.0.0.jar root@sunucum.com:/opt/myapp/app.jar

Systemd unit’i yazarsınız (/etc/systemd/system/myapp.service):

[Unit]
Description=My Spring Boot App
After=network.target

[Service]
Type=simple
User=myapp
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/java -jar -Xmx512m /opt/myapp/app.jar
SuccessExitStatus=143
Restart=always

[Install]
WantedBy=multi-user.target

Servisi başlatırsınız:

sudo systemctl daemon-reload
sudo systemctl enable --now myapp

Nginx ters proxy config’i eklersiniz, Let’s Encrypt sertifikası alırsınız, log rotation kurarsınız…

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-alpine
WORKDIR /app
COPY target/myapp-1.0.0.jar app.jar
EXPOSE 8080
ENTRYPOINT ["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.

  1. 01
    Panele proje ekle
    GitHub bağlıysa repo listeden seçilir; değilse URL girilir. JAR upload seçeneği de var.
  2. 02
    Build stratejisini otomatik algıla
    pom.xml varsa Maven, build.gradle varsa Gradle, Dockerfile varsa Docker build kullanılır.
  3. 03
    Otomatik veritabanı ekle (opsiyonel)
    PostgreSQL kutusu işaretlersin; panel DB + user + parola üretir, DATABASE_URL env'e enjekte olur.
  4. 04
    Özel domain bağla
    DNS A kaydını sunucu IP'sine yönlendirin; panel Let's Encrypt sertifikasını otomatik alır.
  5. 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.

JVM parametreleri, health check, log

Panel arayüzünden:

  • JVM parametreleri (-Xmx, -Xms, -XX:+UseG1GC) belirlenir
  • 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.

Kendi sunucunuzda denemek ister misiniz?

İletişim formundan ulaşın, kullanım senaryonuza uygun lisans + kurulum planını birlikte hazırlayalım.

Hazır olduğunuzda buradayız

Kendi sunucunuzda modern deploy deneyimi, bir iletişim mesajı uzakta.

Kullanım senaryonuzu anlayıp size uygun lisans ve kurulum planını hazırlayalım. Ortalama yanıt süremiz 24 saatin altında.