February 8, 2025
Bagaimana cara Membuat Continuous Deployment (CD) Cpanel Menggunakan Github Actions? Apakah itu hal yang rumit? Tentu saja tidak! Simak caranya sebagai berikut:
Cpanel merupakan web hosting panel yang seringkali disediakan oleh penyedia shared hosting. Cpanel hadir dengan berbagai fitur seperti penyediaan akun FTP, pembutan domain serta subdomain, Git, dan lain sebagainya. Permasalahan yang kerap dialami oleh pengguna Cpanel di shared hosting adalah menerapkan continuous deployement dengan menghubungkannya dengan repositori Github. Hal itu dikarenkan beberapa pengguna Cpanel lebih memilih menyimpan proyeknya di platfrom besar dan aman seperti Github ketimbang langsung menaruhnya di Git Cpanel atau memperbaruinya langsung menggunakan FTP seperti Filezilla. Oleh karena itu, sebagian pengguna lebih memlih untuk menerapkan continuous deployment menggunakan repositorinya yang sudah ada di Github. Nah, bagaimana cara melakukannya? Simak tutorialnya sebagai berikut:
Jika Anda sudah menggunakan Github, maka sudah seharusnya Anda sudah menghubungkannya pula dengan local git Anda. Hal ini basic untuk tutorial kali ini karena percuma apabila Anda masih memperbarui repositori Github secara manual dikarenakan hal itu akan sama saja dengna memindahkan file dengan FTP manual.
FTP (File Transfer Protocol) adalah protokol komunikasi standar yang digunakan untuk mengirim file dari lokal komputer ke server atau sebaliknya. Dalam Cpanel, untuk menggunakan FTP, Anda bisa menggunakan username beserta password utama yang telah diberikan oleh shared hosting Anda. Namun, supaya lebih aman dan menspesifikan pekerjaan, Anda sebaiknya membuat akun FTP baru yang dikhususkan untuk menggnakan continuous deployment kali ini. Anda bisa menemukan menu FTP Account di bagian Files pada starting interface Cpanel
Karena Anda akan membuat akun FTP yang spesifik, maka Anda harus melakukan point atau mengarahkan ke directory folder yang tepat karena Anda tidak bisa mengubah directory foldernya apabila Anda salah. Dalam hal ini apabila hal yang tidak diinginkan seperti itu terjadi, maka Anda harus membuat akun FTP baru lagi.
Selanjutnya adalah membuat script untuk mengatur FTP Cpanel menggunakan Github Actions. Repositori action yang akan kita gunakan adalah FTP Deploy https://github.com/SamKirkland/FTP-Deploy-Action
Mekanisme dari Github Actions adalah Anda membutuhkan sebuah repositori actions yang memuat berbagai perintah dan konfigurasi Github Actions yang nantinya akan mentrigger upload fle lokal melalui FTP ke server. Berikut ini cara-caranya secara lebih rinci
Selanjutnya kita perlu memeriksa kembali dokumentasi https://github.com/SamKirkland/FTP-Deploy-Action di situ telah dipaparkan konfigurasi minimal untuk digunakan pada file main.yml yang Anda perlukan antara lain adalah:
Server dan username bisa Anda temukan dengan menekan Configure FTP Client. Sementara password adalah password yang kalian tulis ketika membuat akun.
Untuk sementara Anda bisa menyimpan ketiga hal tersebut terlebih dahulu karena akan kita gunakan nantinya.
Langkah selanjutnya adalah menulis main.yml dengan konfigurasi di bawah ini:
on: push
name: 🚀 Deploy website on push
jobs:
web-deploy:
name: 🎉 Deploy
runs-on: ubuntu-latest
steps:
- name: 🚚 Get latest code
uses: actions/checkout@v4
- name: 📂 Sync files
uses: SamKirkland/FTP-Deploy-Action@v4.3.5
with:
server: ${{ secrets.FTP_SERVER }}
username: ${{ secrets.FTP_USER }}
password: ${{ secrets.FTP_PASS }}
Waktunya untuk menambahkan hal yan sudah Anda catat tadi, pergi ke repositori github anda pilih settings, secrets and variables, repository secrets, new repository secret lalu buat FTP_SERVER, FTP_USER, dan FTP_PASS dan isinya sesuai dengan server, user, dan password.
Hal terakhir yang perlu dilakukan adalah mengujinya. Anda bisa membuat commit kemudian push baru di lokal git Anda lalu github action-nya pun otomatis akan berjalan. Setelah itu Anda bisa mengunjugi direktori konfigurasi Anda, jika berhasil maka akan terdapat file baru untuk menandai sejauh mana sinkronisasi yang anda lakukan. File tersebut, yaitu .ftp-deploy-sync-state.json
Artikel blog lainnya: