İçeriğe geç
Tüm yazılar

GitHub Actions ile sıfır sunucu yüküyle deploy

Build GitHub'ın makinesinde, sunucuya sadece çıktı gidiyor. Kısıtlı SSH anahtarı ile güvenli bir deploy hattı kurmak.

Taha Bayar1 dk okuma 648
İçindekiler

Deploy hattımın hedefi basitti: main dalına push edince site güncellensin, sunucu hiç zorlanmasın.

Akış

  1. GitHub Actions kodu çeker, bağımlılıkları kurar.
  2. npm run build ile üretim çıktısını hazırlar.
  3. Çıktı rsync ile sunucuya gider.
  4. Sunucudaki konteyner yeniden başlatılır.

Anahtarı kısıtlamak

Deploy için ayrı bir SSH anahtarı kullanıyorum ve sunucuda bu anahtarın yapabileceklerini sınırlıyorum:

command="/home/kullanici/deploy-gate.sh",restrict ssh-ed25519 AAAA...

restrict port yönlendirmeyi, terminal açmayı ve diğer her şeyi kapatır. command ise anahtar ne isterse istesin sadece belirli betiğin çalışmasını sağlar.

Workflow'dan bir kesit

- run: npm ci
- run: npm run build
- name: Upload
  run: rsync -rlz --delete .next/standalone/ sunucu:/

Anahtar sızsa bile saldırgan sadece site dosyalarını değiştirebilir; sunucuda komut çalıştıramaz.

Paylaş

Yazar

Taha Bayar

Bu blogun sahibi. Sunucular, yazılım ve öğrendiklerim üzerine yazıyorum.

Yorumlar3

  • Can Arslan

    Bu konuda Türkçe kaynak çok az, iyi ki yazmışsınız.

  • Elif Yılmaz

    Performans farkını ölçtünüz mü? Rakam görmek ilginç olurdu.

  • Mert Kaya

    Tam aradığım yazıydı, elinize sağlık. Özellikle örnek komutlar çok işime yaradı.

Benzer yazılar