Implementasi CI/CD dari Local ke cPanel Menggunakan GitHub Actions dan SSH
Mengapa Perlu CI/CD? 🤔
Proses pengembangan modern menuntut kecepatan, konsistensi, dan keamanan.
Namun, masih banyak developer yang melakukan upload manual via FTP, yang sering kali menghadapi kendala seperti:
Namun, masih banyak developer yang melakukan upload manual via FTP, yang sering kali menghadapi kendala seperti:
- 🚫 Firewall blocking pada port FTP
- ⏱️ Connection timeout saat transfer file besar
- ⚠️ Risiko keamanan akibat kredensial FTP tersimpan dalam teks biasa
Solusinya?
Gunakan CI/CD berbasis SSH melalui GitHub Actions, yang otomatis mendeteksi perubahan pada branch
Gunakan CI/CD berbasis SSH melalui GitHub Actions, yang otomatis mendeteksi perubahan pada branch
main dan langsung melakukan deploy ke server cPanel.
Persiapan Awal 🛠️
Sebelum memulai, pastikan Anda memiliki:
Langkah 1: Mengaktifkan SSH di cPanel 🔐
- Login ke cPanel Anda.
- Navigasi ke "SSH Access" di bagian Security.
- Klik "Manage SSH Keys".
- Pilih "Generate a New Key".
- Masukkan nama kunci (misal:
github-actions-key). - Pilih Key Type: RSA.
- Pilih Key Size: 2048 atau 4096.
- Masukkan passphrase (opsional, tapi disarankan).
- Masukkan nama kunci (misal:
- Klik "Generate Key".
- Setelah kunci dibuat, klik "Manage Authorization" dan pilih "Authorize" untuk mengaktifkan kunci tersebut.
- Unduh kunci private dengan mengklik "View/Download" pada bagian Private Keys.
- Simpan kunci ini dengan aman, karena akan digunakan di GitHub Actions.
- Jika cPanel hanya menyediakan kunci publik, Anda bisa membukanya dan copy private key melalui terminal.
- Salin isi kunci private (biasanya di
~/.ssh/id_rsaatau dari tampilan di cPanel).


- copy isi kunci private mulai dari
-----BEGIN OPENSSH PRIVATE KEY-----sampai-----END OPENSSH PRIVATE KEY----- - cek koneksi SSH dari server cPanel ke GitHub
ssh -T git@github.com
Jika berhasil, Anda akan melihat pesan seperti ini:
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
Jika gagal, pastikan kunci SSH sudah benar dan terotorisasi di GitHub.
Ikuti langkah di GitHub Docs untuk troubleshooting dan ssh key setup.
- copy isi kunci public mulai dari
ssh-ed25519 AAAAC...sampai... user@hostname - tambahkan kunci public ke GitHub dengan cara masuk ke Settings > SSH and GPG keys > New SSH key
- beri nama pada key tersebut, misal
cpanel-deploy-key - paste isi kunci public ke kolom key
- klik tombol Add SSH key
Setelah ini kunci SSH sudah siap digunakan untuk autentikasi.


Langkah 2: Menyiapkan Repository GitHub 📂
- Buka repository GitHub Anda.
- Navigasi ke tab Settings > Secrets and variables > Actions.
- Klik "New repository secret".
- Tambahkan secret berikut:
- Name:
SSH_PRIVATE_KEY - Value: Paste isi kunci private yang sudah Anda salin dari cPanel
- Name:
- Klik "Add secret".
- Tambahkan secret lain untuk informasi koneksi:
- Name:
SSH_HOST - Value: Alamat IP atau domain server cPanel Anda (misal:
example.comatauIP_ADDRESS) - Name:
SSH_USERNAME - Value: Username SSH Anda (biasanya sama dengan username cPanel)
- Name:
SSH_PASSPHRASE(jika Anda menggunakan passphrase saat membuat kunci) - Value: Passphrase kunci SSH Anda (jika ada)
- Name:
SSH_PARENT_DIR - Value: Direktori tujuan di server cPanel (misal:
public_htmlatauhome/username/public_html)
- Name:

Langkah 3: Membuat Workflow GitHub Actions 🚀
- Di repository GitHub Anda, buat folder
.github/workflowsjika belum ada. - Buat file baru bernama
deploy-to-cpanel.ymldi dalam folder tersebut. - Salin dan tempel kode berikut ke dalam file
deploy-to-cpanel.yml:
.github/workflows/deploy.yml
Berikut Struktur Kode di local - simple project CI/CD

Langkah 4: Proses Deployment Berjalan (Automasi) 🔄
- Simpan perubahan pada file
deploy-to-cpanel.ymldan lakukan commit ke branchmain. - Setiap kali Anda melakukan push ke branch
main, GitHub Actions akan otomatis menjalankan workflow ini. - Anda dapat memantau proses deployment di tab Actions pada repository GitHub Anda.

Kesimpulan 🎉
Dengan mengikuti langkah-langkah di atas, Anda telah berhasil mengatur CI/CD otomatis dari GitHub ke cPanel menggunakan SSH.
Metode ini tidak hanya mengatasi masalah firewall dan timeout yang sering terjadi pada FTP, tetapi juga meningkatkan keamanan dan efisiensi proses deployment Anda.
Selamat mencoba dan semoga sukses dalam pengembangan proyek Anda! 🚀



