kayhan.blog

Yazılım2 dk okuma

Kendi Blog Siteni Nasıl Yaparsın?

Bu yazımda kendi blog siteni nasıl açabileceğinden bahsediyorum.

Selamlar,

Bu yazımda, yayında olan blog siteme benzer bir yapıyı sıfırdan nasıl kurup canlıya alabileceğinizi adım adım anlatacağım. İhtiyacınıza göre ister doğrudan Node/PM2 ortamında çalıştırabilir, isterseniz de repoda yer alan Docker altyapısıyla konteyner olarak yayına alabilirsiniz.

Kullanacağımız git repomuz: https://github.com/SwitchAlpha/myblog

İlk adım olarak Hetzner gibi fiyat/performans odaklı bir sağlayıcıdan sanal sunucu (VPS) temin edip alan adınızın DNS (A) kaydını bu sunucunun IP adresine yönlendirmeniz gerekiyor. Sunucunuza SSH ile bağlandıktan sonra kaynak kodları klonlayarak işe başlıyoruz:

git clone https://github.com/SwitchAlpha/myblog.git && cd myblog

Buradan sonra dağıtım için iki farklı yol izleyebilirsiniz:


Yöntem 1: Doğrudan Kurulum (Node / PM2 & Nginx)

1. Bağımlılıkları Kurma ve Test

pnpm setup
pnpm dev

Yerel test sunucusunda sitenin sorunsuz çalıştığını teyit ettikten sonra canlı ortam çıktısını alıyoruz:

pnpm build

2. PM2 ile Sürekli Çalıştırma

Uygulamanın arka planda kesintisiz çalışması ve sunucu yeniden başladığında otomatik açılması için:

pm2 start pnpm --name "myblog" -- start
pm2 save
pm2 startup

3. Nginx Reverse Proxy Yapılandırması

sudo apt update && sudo apt install nginx -y
sudo nano /etc/nginx/sites-available/myblog

Açılan dosyaya aşağıdaki yönlendirme bloğunu ekleyin (alanadiniz.com ve port bilgisini kendi yapınıza göre düzenleyin):

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

    location / {
        proxy_pass http://localhost: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;
    }
}

Yapılandırmayı aktif edip Nginx servisini test ederek yeniden başlatıyoruz:

sudo ln -s /etc/nginx/sites-available/myblog /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

Yöntem 2: Docker & Docker Compose ile Kurulum

Sunucuda paket ve sürüm bağımlılıklarıyla uğraşmadan izole bir ortamda çalıştırmak isterseniz, repoda hazır bulunan Dockerfile'ı Docker Compose ile ayağa kaldırabilirsiniz.

Proje dizininde bir docker-compose.yml dosyası oluşturun:

version: '3.8'

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: myblog_app
    restart: always
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production

Konteyneri arka planda derleyip çalıştırmak için:

docker compose up -d --build

Konteyner 3000 portunda çalıştıktan sonra, trafiği karşılamak için yukarıdaki Nginx adımlarını uygulayarak trafiği http://localhost:3000 adresine yönlendirmeniz yeterlidir.


Son Adım: SSL Sertifikası (HTTPS)

Hangi dağıtım yöntemini seçerseniz seçin, sitenizi güvenli bağlantıya (HTTPS) geçirmek için Certbot ile ücretsiz Let's Encrypt SSL sertifikasını tanımlayın:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d alanadiniz.com -d www.alanadiniz.com

Tüm işlemler bu kadar! Blog siteniz artık alan adınız üzerinden güvenli ve canlı şekilde yayında.

Vakit ayırıp okuduğunuz için teşekkürler, sonraki yazılarda görüşmek üzere!