09.01.2026

VPS Kurulumu: Ubuntu ile 20 Dakikada Yayına Çıkın

VPS kurulumu ile Ubuntu sunucunu güvenli hale getir, domain bağla, SSL aç, Docker kur ve ilk uygulamanı hızlıca yayına al.

VPS Kurulumu: Ubuntu ile 20 Dakikada Yayına Çıkın

Meta Description

VPS kurulumu rehberi: Ubuntu sunucunu güvene al, domain bağla, SSL kur, Docker ile deploy et. 20 dakikada yayına çık!

Giriş (Introduction)

VPS kurulumu ilk bakışta göz korkutabilir: SSH, güvenlik duvarı, Nginx, SSL, domain, deploy… Bir yerde takılırsın ve “Ben neyi yanlış yaptım?” diye saatler gider.

Bu yazı, sıfırdan bir VPS’i üretime hazır hale getirmek için gereken adımları kısa ve net şekilde toplar. İster bir SaaS MVP yayınlıyor ol, ister portföy siteni taşıyor ol; sonunda çalışan, güvenli ve yönetilebilir bir sunucunun olacak.

Okumaya değer çünkü: tek tek parça parça kaynak aramak yerine, VPS kurulumu için en kritik adımları sıralı bir kontrol listesiyle uygulayacaksın.


VPS Kurulumu Öncesi: Hazırlık Kontrol Listesi

VPS kurulumu başlamadan şu 3 şeyi hazır et:

  • Ubuntu 22.04/24.04 kurulu VPS (DigitalOcean, Hetzner, Vultr, yerli sağlayıcılar fark etmez)
  • VPS’in IP adresi ve root erişimi (ilk giriş için)
  • Bir domain (ör. ornek.com) ve DNS paneline erişim

Gerçek hayat örneği: Bir girişimci arkadaşım “deploy edemiyorum” dediğinde sorun %80 DNS ve SSL’den çıkıyor. Bu nedenle domain ve DNS’i baştan plana koyuyoruz.


1) Sunucuya İlk Giriş (SSH) ve Güncelleme

Sunucuya bağlan:

ssh root@SUNUCU_IP

Paketleri güncelle:

apt update && apt upgrade -y

Bunu neden yapmalıyım?

  • Güvenlik yamalarını alırsın
  • Eski paketlerden doğan hataları azaltırsın

2) Root’u Bırak: Yeni Kullanıcı + Sudo Oluştur

Yeni kullanıcı oluştur:

adduser deploy
usermod -aG sudo deploy

Artık bu kullanıcıyla bağlan:

ssh deploy@SUNUCU_IP

Bunu neden yapmalıyım?

  • Root ile günlük kullanım risklidir
  • Yanlış komutla sistemi bozma ihtimali artar

3) SSH Güvenliği: Key Kullan, Şifreyi Kapat

3.1 SSH Key ekle

Bilgisayarında key üret (yoksa):

ssh-keygen -t ed25519

Key’i sunucuya kopyala:

ssh-copy-id deploy@SUNUCU_IP

3.2 SSH ayarlarını sıkılaştır

SSH config dosyasını aç:

sudo nano /etc/ssh/sshd_config

Önerilen ayarlar:

  • PermitRootLogin no
  • PasswordAuthentication no

Servisi yeniden başlat:

sudo systemctl restart ssh

Bunu neden yapmalıyım?

  • Brute-force saldırılarının büyük kısmını daha başlamadan kesersin

4) Firewall (UFW) Aç: Sadece Gerekli Portlar

UFW kur ve etkinleştir:

sudo apt install ufw -y
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status

Port Ne için? Açmalı mıyım?
22 SSH Evet (OpenSSH)
80 HTTP Evet
443 HTTPS Evet

Bunu neden yapmalıyım?

  • VPS kurulumu sonrası en sık unutulan konu firewall’dır
  • Açık port = gereksiz saldırı yüzeyi

5) Domain Bağlama: DNS A Kaydı ile Yayına Hazırlık

Domain sağlayıcının DNS panelinde:

  • A kaydı oluştur
    • @SUNUCU_IP
    • wwwSUNUCU_IP (opsiyonel)

DNS yayılımı 5–30 dakika sürebilir.

Doğrulama:

ping ornek.com

LSI anahtar kelimeler: domain yönlendirme, DNS ayarları, A kaydı, nameserver


6) Nginx Kurulumu ve İlk Reverse Proxy

Nginx kur:

sudo apt install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx

Tarayıcıdan http://ornek.com aç; Nginx karşılama sayfasını görmelisin.

6.1 Basit bir site konfigürasyonu

Yeni config:

sudo nano /etc/nginx/sites-available/ornek

Örnek reverse proxy (uygulaman 3000 portunda çalışıyorsa):

server {
  listen 80;
  server_name ornek.com www.ornek.com;

  location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
  }
}

Aktif et ve test et:

sudo ln -s /etc/nginx/sites-available/ornek /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Bunu neden yapmalıyım?

  • Uygulamanı portla açmak yerine domain üzerinden servis edersin
  • SSL kurulumuna zemin hazırlar

7) Ücretsiz SSL: Let’s Encrypt ile HTTPS

Certbot kur:

sudo apt install certbot python3-certbot-nginx -y

SSL al ve Nginx’e uygula:

sudo certbot --nginx -d ornek.com -d www.ornek.com

Otomatik yenilemeyi kontrol et:

sudo certbot renew --dry-run

Bunu neden yapmalıyım?

  • SEO ve güven için HTTPS artık standart
  • Tarayıcı “Güvenli değil” uyarısını engellersin

8) Docker ile Deploy: Tek Komutla Taşınabilir Kurulum

VPS kurulumu sonrası deploy’un en pratik yolu çoğu ekip için Docker’dır.

Docker kur:

curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER
newgrp docker

8.1 Örnek: Basit bir Node.js uygulamasını çalıştır

Proje dizininde Dockerfile:

FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]

Build ve run:

docker build -t ornek-app .
docker run -d --name ornek-app -p 3000:3000 --restart unless-stopped ornek-app

Bunu neden yapmalıyım?

  • “Benim bilgisayarda çalışıyordu” problemini azaltır
  • Güncelleme/rollback daha kolay olur

9) Operasyonel Minimumlar: Log, İzleme ve Yedek

Küçük ama etkili 3 öneri:

  1. Nginx loglarını kontrol et
sudo tail -n 100 /var/log/nginx/access.log
   sudo tail -n 100 /var/log/nginx/error.log

  1. Uygulama restart politikası (--restart unless-stopped) kullan
  2. Yedek planı: En azından haftalık snapshot veya otomatik backup aç

Gerçek hayat örneği: Bir VPS’te disk dolduğunda ilk sinyal error.log ve 502 hatalarıdır. Basit log takibi bile krizleri erkenden yakalar.


Sık Sorulan Sorular (FAQ)

1) VPS kurulumu ne kadar sürer?

Temel kurulum (güvenlik + Nginx + SSL) ortalama 20–40 dakika sürer. DNS yayılımı ek süre yaratabilir.

2) Nginx mi Apache mi seçmeliyim?

Çoğu modern projede Nginx daha sık tercih edilir: reverse proxy, performans ve SSL yönetimi pratik.

3) SSL ücretsiz ve güvenli mi?

Evet. Let’s Encrypt yaygın ve güvenilir bir sertifika otoritesidir. Yenileme otomasyonu kurmak önemlidir.

4) Docker kullanmak şart mı?

Şart değil. Ama ekip büyüdükçe ve deploy sıklığı arttıkça Docker, bakım maliyetini ciddi azaltır.

5) Sunucum saldırı alırsa ilk ne yapmalıyım?

Önce SSH şifre girişini kapat, firewall’ı kontrol et, erişim loglarını incele ve gerekiyorsa IP blokla. Şüphedeysen snapshot’tan geri dön.


Sonuç

Bu rehberde VPS kurulumu için üretime giden en kısa yolu uyguladın: kullanıcı oluşturma, SSH güvenliği, firewall, DNS/domain bağlama, Nginx reverse proxy, Let’s Encrypt SSL ve Docker ile deploy.

Şimdi sıradaki adım: kendi uygulamanı bu akışa göre yayına al. Takıldığın yerde kullandığın sağlayıcıyı (Hetzner/DigitalOcean vb.), Ubuntu sürümünü ve aldığın hatayı yorum olarak yaz; birlikte netleştirelim. Yazıyı ekip arkadaşınla paylaşıp aynı standardı oturtman da iyi olur.