API kullanarak server düzenleyip projenizi deploy ediyor. Burada önemli olan API kısmı. DO, Linode gibi hizmetlerin zaten bir API'si mevcut. Özel serverlar için de API olarak kullanılan bir çeşit tünel görevi gören, sunucuya yüklemeniz gereken bir şeyler vardır muhakkak, SSH kullanıyordur vs. Mesela ben kendi kurduğum sistem hakkında bilgi vereyim:
- Projelerim Bitbucket üzerinde.
- Kendi hazırladığım bir deploy.php dosyam var.
- Bitbucket webhooks özelliği sayesinde push, commit gibi git komutları sonrası belirttiğiniz bir adrese repo bilgilerini gönderebiliyor.
- Ben deploy scriptimi proje klasörüne yüklüyorum. Atıyorum adresi
http://www.domain.com/deploy.php
- Kendi bilgisayarımdan push yaptığımda, push tamamlanınca Bitbucket sunucudaki deploy scriptimi tetikliyor,
http://www.domain.com/deploy.php adresine bilgileri php://input olarak gönderiyor.
- Deploy scriptim gelen veriye göre sunucuda git komutlarını uyguluyor. İşte en basitinden git yüklenmemişse git init yapıp remote ekliyor, sonrasında git pull yapıyor vs...
Benim script basit, iş görsün diye hazırladığım bir şey. Şimdi bu bahsettiklerimin hepsini (Sunucuda virtual host ekleme, SSL sertifikası oluşturma, veritabanı oluşturma vs...) yapan bir sistem düşünün. Sonuçta nix tabanlı sistemler oldukları için komut satırı ile tüm sistemi yönetebilirsiniz.