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 noPasswordAuthentication 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:
Akaydı oluştur@→SUNUCU_IPwww→SUNUCU_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:
- Nginx loglarını kontrol et
sudo tail -n 100 /var/log/nginx/access.log
sudo tail -n 100 /var/log/nginx/error.log
- Uygulama restart politikası (
--restart unless-stopped) kullan - 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.logve 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.