Panduan ini akan membahas cara untuk deploy situs atau aplikasi dari Github ke cPanel menggunakan Github Actions. Ini dapat mempermudah Anda dalam melakukan perubahan file yang ada di repositori tanpa harus men-deploynya lagi secara manual di cPanel.
Create FTP Account #
Login ke cPanel lalu klik menu FTP Accounts
Buat akun FTP.
Simpan username dan password untuk ditambahkan sebagai secret di repositori Github.
Configure Github Actions #
FTP-Deploy-Action #
Buka repositori Anda di Github lalu klik Settings » Actions secrets and variables » Actions
Klik New repository secret dan tambahkan username, password, dan IP server FTP.

Selanjutnya buat GitHub action workflow. Klik tab Actions dan pilih set up a workflow yourself
Edit main.yml
menggunakan konfigurasi berikut.
name: Deploy File to cPanel
on:
push:
branches:
- master
jobs:
FTP-Deploy-Action:
name: Deploy
runs-on: ubuntu-latest
steps:
- name: Get latest code
uses: actions/checkout@v3
with:
fetch-depth: 2
- name: Sync folders and files to the server
uses: SamKirkland/[email protected]
with:
server: ${{ secrets.FTP_SERVER }}
username: ${{ secrets.FTP_USERNAME }}
password: ${{ secrets.FTP_PASSWORD }}
Klik Commit changes untuk menyimpan konfigurasi.
Untuk pengetesan, coba tambahkan atau edit file di repositori yang digunakan. Lalu git push
untuk menerapkan perubahan dan memulai proses deploy.
Jika berhasil maka akan tampil seperti berikut.
Anda juga dapat melihat log per step.
SCP-Deploy-Action #
Anda juga dapat menggunakan SCP untuk mengirim file dan folder ke server.
Buka repositori Anda di Github lalu klik Settings » Actions secrets and variables » Actions
Klik New repository secret dan tambahkan username, private key SSH, IP server SSH, dan port SSH

Selanjutnya buat GitHub action workflow. Klik tab Actions dan pilih set up a workflow yourself
Edit main.yml
menggunakan konfigurasi berikut.
name: Deploy File to cPanel
on:
push:
branches:
- master
jobs:
SCP-Deploy-Action:
name: Deploy
runs-on: ubuntu-latest
steps:
- name: Get latest code
uses: actions/checkout@v3
with:
fetch-depth: 2
- name: copy file to server
uses: appleboy/[email protected]
with:
host: ${{ secrets.SSH_SERVER }}
username: ${{ secrets.SSH_USERNAME }}
key: ${{ secrets.SSH_KEY }}
port: ${{ secrets.SSH_PORT }}
source: ./*
target: public_html/web1/
Klik Commit changes untuk menyimpan konfigurasi.
Untuk pengetesan, coba tambahkan atau edit file di repositori yang digunakan. Lalu git push
untuk menerapkan perubahan dan memulai proses deploy.