Deploy Website dari Repositori Git Langsung di cPanel
Panduan memakai Git Version Control di cPanel: menyambungkan repositori, menulis berkas .cpanel.yml, lalu menyalin perubahan situs ke public_html.
Jawaban singkat
Buat atau clone repositori lewat Git Version Control di cPanel, taruh berkas .cpanel.yml berisi perintah salin di folder teratas repositori, lalu klik Update from Remote dan Deploy HEAD Commit. Push langsung ke repositori di cPanel juga memicu deploy otomatis.
Daftar isi
- Apa yang perlu disiapkan?
- Langkah demi langkah
- Langkah 1: Siapkan akses untuk repositori privat
- Langkah 2: Clone repositori di cPanel
- Langkah 3: Tulis berkas .cpanel.yml
- Langkah 4: Tarik perubahan dan deploy
- Langkah 5: Cek hasil dan catat commit yang tayang
- Deploy lewat push atau lewat tarik, mana yang dipakai?
- Kesalahan yang sering terjadi
- Pertanyaan yang sering diajukan
Masih mengunggah berkas situs satu per satu lewat File Manager atau FTP setiap ada perubahan? Kalau kode situsmu sudah disimpan di Git, misalnya di GitHub atau GitLab, cPanel bisa mengambil dan memasangnya sendiri lewat fitur Git Version Control.
Alurnya begini: cPanel menyimpan salinan repositorimu di akun hosting, lalu menjalankan perintah yang kamu tulis di berkas .cpanel.yml untuk menyalin berkas ke folder situs. Hasilnya, setiap pembaruan cukup dua klik, dan kamu selalu tahu commit mana yang sedang tayang.
Apa yang perlu disiapkan?
- Akses cPanel dengan menu Git Version Control yang aktif. Penyedia hosting bisa mematikan fitur ini, jadi tanyakan bila tidak ada.
- Repositori Git berisi berkas situs. Contoh di artikel ini cocok untuk situs statis atau situs PHP sederhana yang tidak perlu proses build.
- Untuk repositori privat: akses SSH Access atau Terminal di cPanel, karena kunci SSH perlu dibuat lewat baris perintah.
Langkah demi langkah
Langkah 1: Siapkan akses untuk repositori privat
Lewati langkah ini bila repositorimu publik. Untuk repositori privat, dokumentasi cPanel memakai kunci SSH khusus. Buka Terminal di cPanel, lalu jalankan:
ssh-keygen -t rsa -f ~/.ssh/repo -b 4096 -C "email@domainmu.com"
Saat diminta passphrase, tekan Enter tanpa mengisi apa pun, sesuai panduan cPanel. Salin isi berkas ~/.ssh/repo.pub, lalu di GitHub buka repositori, masuk ke Settings, Deploy keys, dan Add deploy key. Tempel kuncinya. Centang izin tulis hanya bila kamu memang ingin push dari server.
Setelah itu buat berkas ~/.ssh/config dengan izin 0600 dan isi:
Host github.com
IdentityFile ~/.ssh/repo
Uji dengan ssh -i ~/.ssh/repo -T git@github.com. Kalau GitHub menyapa dengan nama repositori atau akunmu, aksesnya sudah benar.
Langkah 2: Clone repositori di cPanel
Buka Git Version Control, klik Create, lalu nyalakan Clone a Repository. Isi kolom berikut:
- Clone URL: alamat repositori, misalnya
git@github.com:akunmu/situs.git. Alamat ini tidak boleh berisi nama pengguna dan password. - Repository Path: folder untuk menyimpan repositori, misalnya
repositories/situs. Folder ini harus kosong. - Repository Name: nama tampilan, bebas.
Simpan repositori di luar public_html. Folder repositori berisi direktori .git dan berkas lain yang tidak perlu dilihat publik. Tugas menyalin berkas ke situs diserahkan ke .cpanel.yml. Perlu diingat, path repositori tidak bisa diubah setelah dibuat.
Langkah 3: Tulis berkas .cpanel.yml
Di komputermu, buat berkas .cpanel.yml di folder teratas repositori. Contoh untuk situs sederhana:
---
deployment:
tasks:
- export DEPLOYPATH=/home/namapengguna/public_html/
- /bin/cp index.php $DEPLOYPATH
- /bin/cp style.css $DEPLOYPATH
- /bin/cp -R assets $DEPLOYPATH
Ganti namapengguna dengan nama pengguna cPanel-mu dan sesuaikan daftar berkasnya. Dokumentasi cPanel secara tegas melarang memakai tanda bintang untuk menyalin semua berkas, karena folder .git bisa ikut tersalin ke situs dan menimbulkan masalah serius. Sebutkan berkas dan folder satu per satu.
Commit berkas ini, lalu push ke GitHub.
Langkah 4: Tarik perubahan dan deploy
Kembali ke Git Version Control, klik Manage pada repositorimu, lalu buka bagian Pull or Deploy. Klik Update from Remote untuk menarik commit terbaru, kemudian Deploy HEAD Commit untuk menjalankan isi .cpanel.yml.
Deploy hanya bisa berjalan bila repositori punya berkas .cpanel.yml yang valid, punya minimal satu branch, dan working tree-nya bersih. Jangan mengedit berkas di folder repositori lewat File Manager, karena perubahan itu membuat working tree "kotor" dan tombol deploy tidak bisa dipakai.
Langkah 5: Cek hasil dan catat commit yang tayang
Buka situsmu di browser dan pastikan perubahan sudah muncul. Bagian Basic Information di halaman Manage menampilkan commit HEAD dan informasi deploy terakhir, berguna saat kamu perlu tahu versi mana yang sedang tayang. Kalau situs error setelah deploy, periksa pesan kesalahannya lewat panduan membaca error log cPanel.
Deploy lewat push atau lewat tarik, mana yang dipakai?
| Cara | Alurnya | Cocok untuk |
|---|---|---|
| Tarik (pull) | Push ke GitHub, lalu klik Update from Remote dan Deploy HEAD Commit di cPanel | Tim yang menyimpan kode utama di GitHub atau GitLab |
| Dorong (push) | Push langsung ke repositori di cPanel, deploy berjalan otomatis lewat hook | Pengembang tunggal yang punya akses SSH ke hosting |
Menurut dokumentasi cPanel, setiap repositori yang dikelola cPanel diberi hook post-receive. Saat kamu push ke repositori itu dan ada berkas .cpanel.yml, perintah di dalamnya langsung dijalankan.
Kalau situsmu perlu proses build, misalnya memasang dependensi atau mengompilasi aset, dan kamu sudah memakai VPS, pertimbangkan alur otomatis seperti di artikel deploy otomatis ke VPS dengan GitHub Actions.
Kesalahan yang sering terjadi
- Repositori disimpan langsung di
public_html, sehingga berkas pengembangan ikut bisa diakses. - Memakai
cp -R *atau sejenisnya, sehingga folder.gitikut tersalin. - Berkas konfigurasi berisi password database ikut masuk repositori. Simpan berkas seperti itu langsung di server dan keluarkan dari Git.
- Lupa bahwa
.cpanel.ymlhanya menyalin, tidak menghapus. Berkas yang kamu hapus dari repositori tetap ada dipublic_htmlsampai dihapus manual.
Pertanyaan yang sering diajukan
Apakah fitur ini butuh akses SSH?
Untuk repositori publik tidak wajib. Tanpa akses shell kamu tetap bisa membuat, clone, menghapus, dan melihat repositori. Untuk repositori privat, kunci SSH perlu disiapkan lewat Terminal atau SSH.
Apakah bisa dipakai untuk WordPress?
Bisa untuk tema atau plugin buatan sendiri, dengan menyalinnya ke folder wp-content yang sesuai. Inti WordPress dan unggahan media sebaiknya tidak dikelola lewat repositori ini.
Apa yang terjadi bila repositori dihapus dari daftar cPanel?
Menurut dokumentasi cPanel, tombol Remove hanya menghentikan pengelolaan oleh cPanel. Berkasnya tetap ada dan perlu dihapus manual, misalnya lewat File Manager.
Bagaimana cara kembali ke versi sebelumnya?
Buat commit yang membatalkan perubahan, misalnya dengan git revert, push ke GitHub, lalu tarik dan deploy lagi di cPanel.
Checklist sebelum deploy pertama:
- Repositori disimpan di luar
public_html. .cpanel.ymlada di folder teratas dan menyebut berkas satu per satu.- Tidak ada password atau kunci rahasia di repositori.
- Situs sudah dicadangkan sebelum deploy pertama.


