Banner - Cara Deploy Private Repository GitHub di aaPanel

Cara Deploy Private Repository GitHub di aaPanel

Mengelola source code di repository private GitHub tidak harus dilakukan secara manual setiap kali ada perubahan. Dengan konfigurasi yang tepat, Anda dapat melakukan deploy private repository GitHub langsung ke server menggunakan aaPanel, sekaligus mengotomatiskan proses pembaruan ketika kode terbaru dikirim ke repository.

aaPanel menyediakan fitur Create for Git yang memungkinkan website terhubung langsung ke repository GitHub, termasuk repository private. Integrasi ini juga dapat dikombinasikan dengan GitHub Webhook, sehingga perubahan pada repository dapat memicu proses deployment secara otomatis di server.

Pada artikel ini, Anda akan mempelajari cara deploy private repository GitHub di aaPanel, mulai dari menyiapkan SSH Public Key, menghubungkan repository private, membuat deployment script, hingga mengaktifkan dan menguji auto update menggunakan GitHub Webhook.

Apa Itu Deploy Private Repository GitHub?

Deploy Private Repository GitHub adalah proses menerapkan source code yang tersimpan di repository GitHub yang bersifat private ke server agar dapat digunakan sebagai website atau aplikasi. Karena repository private tidak dapat diakses oleh sembarang orang, server perlu mendapatkan izin terlebih dahulu untuk mengambil source code tersebut.

Dalam prosesnya, aaPanel dapat dihubungkan dengan repository private menggunakan SSH Public Key. Setelah koneksi berhasil, aaPanel dapat mengambil atau melakukan clone source code dari repository ke server.

Proses ini juga dapat dikembangkan menjadi otomatis menggunakan GitHub Webhook. Ketika ada perubahan pada repository, seperti push kode baru, GitHub akan mengirimkan notifikasi ke server sehingga deployment dapat dijalankan tanpa harus melakukan proses clone secara manual setiap kali ada pembaruan.

Pindah Hosting ke Rumahweb Gratis

Hal yang Perlu Disiapkan

Sebelum mulai Deploy Private Repository GitHub di aaPanel, pastikan server dan repository sudah siap digunakan. Berikut beberapa hal yang perlu disiapkan:

  • Server dengan aaPanel: Pastikan aaPanel sudah terpasang dan dapat diakses.
  • Private Repository GitHub: Siapkan repository yang berisi source code website atau aplikasi yang akan di-deploy.
  • Akun GitHub dengan akses yang sesuai: Pastikan akun memiliki izin untuk mengakses dan mengelola repository tersebut.
  • Akses ke server: Siapkan akses administrator atau root jika diperlukan untuk konfigurasi di server.
  • Koneksi internet: Pastikan server dan perangkat yang digunakan untuk konfigurasi memiliki koneksi internet yang stabil.

Deploy Private Repository GitHub di aaPanel

Setelah persiapan sistem lengkap, selanjutnya Anda bisa mengikuti langkah-langkah berikut untuk deploy private repository Github di aaPanel. Dalam panduan ini, kami menggunakan VPS KVM dari Rumahweb dan aaPanel versi 8.0.5.

Step 1. Membuka Menu Create for Git dan Menyalin SSH Public Key

Langkah pertama yang perlu dilakukan adalah membuka fitur Create for Git di aaPanel. Fitur ini digunakan untuk membuat website dari repository Git sekaligus mendapatkan SSH Public Key yang nantinya digunakan untuk menghubungkan server dengan repository GitHub.

Ikuti langkah-langkah berikut:

  1. Login ke aaPanel pada VPS Anda terlebih dahulu.
  2. Setelah berhasil masuk ke dashboard, pilih menu Website, kemudian klik Add Site. Selanjutnya, pilih opsi Create for Git.
  3. Pada halaman Create for Git, aaPanel akan menampilkan SSH Public Key milik server. Key ini nantinya digunakan sebagai identitas server saat mengakses repository GitHub.Ketika server melakukan proses clone atau pull, GitHub akan memeriksa SSH Key tersebut untuk memastikan bahwa server memiliki izin mengakses repository private yang digunakan.
  4. Salin seluruh isi SSH Public Key yang ditampilkan oleh aaPanel. Pastikan tidak ada karakter yang diubah, dihapus, atau tertinggal karena SSH Key tersebut akan digunakan pada konfigurasi repository GitHub.Setelah SSH Public Key berhasil disalin, kita dapat melanjutkan ke tahap berikutnya, yaitu menambahkan key tersebut ke GitHub.
Membuat ssh key aapanel

Step 2. Menambahkan SSH Public Key ke repository Private GitHub

Setelah SSH Public Key berhasil disalin dari aaPanel, buka repository Private GitHub yang akan digunakan.

Masuk ke menu Settings, kemudian pilih Deploy Keys. Menu ini digunakan untuk memberikan izin kepada perangkat atau server tertentu agar dapat mengakses repository Private menggunakan SSH Key. Klik Add Deploy Key untuk menambahkan SSH Key baru.

Menambahkan ssh key di repo github

Pada halaman Add Deploy Key, isi kolom Title dengan nama yang mudah dikenali, misalnya nama website atau nama server. Selanjutnya tempelkan SSH Public Key yang sebelumnya telah disalin dari aaPanel ke kolom Key.

Secara bawaan, Deploy Key hanya memiliki hak akses baca (Read-only). Pengaturan ini sudah cukup apabila server hanya digunakan untuk melakukan clone atau pull repository. Apabila server juga akan melakukan push ke repository, Anda dapat mengaktifkan opsi Allow write access sesuai kebutuhan.

Setelah seluruh data terisi, klik Add Key.

Menambahkan SSH Public Key ke repository Private GitHub

Apabila proses berhasil, SSH Public Key akan muncul pada daftar Deploy Keys. Dengan demikian, repository private telah memberikan izin kepada server aaPanel untuk mengakses source code sehingga proses clone dapat dilakukan pada langkah berikutnya.

deploy key

Step 3. Melakukan Clone Repository Private Menggunakan Create for Git

Setelah repository memberikan izin kepada server,salin URL untuk SSH di halaman repository dan kembali ke halaman Create for Git di aaPanel.

Lengkapi seluruh informasi website yang diperlukan, seperti domain, direktori website, versi PHP (apabila digunakan), URL repository, serta branch yang akan digunakan.

Untuk kolom Repository URL, gunakan URL dengan format SSH, misalnya:

git@github.com:username/nama-repository.git
Melakukan Clone Repository Private Menggunakan Create for Git

Penggunaan URL SSH memungkinkan aaPanel menggunakan SSH Public Key yang telah didaftarkan pada langkah sebelumnya.

Pastikan seluruh konfigurasi telah sesuai, kemudian klik Confirm.

menambahkan url github ke aapanel

aaPanel akan membuat website sekaligus menjalankan proses clone repository ke direktori website secara otomatis. Lama proses clone bergantung pada ukuran repository dan koneksi server.

Apabila proses berhasil, seluruh file repository akan tersimpan pada direktori website dan siap digunakan.

Cloning repo berhasil

Step 4. Membuat Deployment Script

Setelah website berhasil dibuat, buka menu Website, pilih website yang baru dibuat, kemudian masuk ke menu Conf > Git Manager.

Pada tab Script, klik Add Script untuk membuat deployment script.

Membuat deployment script

Deployment script merupakan kumpulan perintah yang akan dijalankan secara otomatis ketika aaPanel menerima Webhook dari GitHub. Isi script dapat disesuaikan dengan kebutuhan aplikasi, misalnya menjalankan proses build, instalasi dependency, maupun restart service setelah deployment selesai.

Setelah script selesai dibuat, klik Confirm.

Contoh deployment script laravel dengan composser :

*cd /www/wwwroot/directorywebsite || exit 1 ( ubah sesuaikan dengan folder larevel )
#!/bin/bash

set -e

echo "======================================"
echo "? Deploy dimulai : $(date)"
echo "======================================"

cd /www/wwwroot/directorywebsite || exit 1

echo "? Update source..."
git fetch origin
git reset --hard origin/main

if [ -f composer.json ]; then
echo "? Composer Install..."

composer install \
--no-dev \
--prefer-dist \
--no-interaction \
--optimize-autoloader
fi

if [ -f artisan ]; then
echo "? Laravel Optimization..."

php artisan migrate --force

php artisan optimize:clear
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan optimize
fi

echo "======================================"
echo "? Deploy selesai : $(date)"
echo "======================================"

Step 5. Menghubungkan Repository Private dengan Deployment Script

  • Masuk ke tab Repository pada Git Manager.
  • Pilih deployment script yang telah dibuat sebelumnya, kemudian klik Save.
  • Pada halaman yang sama juga akan ditampilkan Webhook URL. Salin URL tersebut karena akan digunakan pada konfigurasi Webhook di GitHub.

Webhook URL merupakan alamat yang akan menerima notifikasi setiap kali terdapat perubahan pada repository.

menambahkan webhook di aapanel

Step 6. Menambahkan Webhook di GitHub

Kembali ke repository GitHub, kemudian buka menu Settings > Webhooks dan klik Add Webhook.

menambahkan webhook di github

Isi konfigurasi berikut:

  • Payload URL menggunakan Webhook URL dari aaPanel.
  • Content Type menggunakan application/json.
  • Secret dapat dikosongkan apabila tidak digunakan.
  • Events pilih Just the push event.

Klik Add Webhook untuk menyimpan konfigurasi.

Setelah Webhook berhasil dibuat, GitHub akan mengirimkan notifikasi ke aaPanel setiap kali terdapat proses push pada branch yang digunakan.

Step 7. Menguji Auto Update

Untuk memastikan konfigurasi telah berjalan dengan baik, lakukan perubahan sederhana pada project kemudian lakukan commit dan push seperti biasa.

Setelah proses push selesai, GitHub akan mengirimkan Webhook ke aaPanel. Deployment script kemudian dijalankan secara otomatis sehingga website akan menggunakan source code terbaru tanpa perlu menjalankan git pull secara manual.

Anda dapat memeriksa halaman Recent Deliveries pada GitHub. Apabila status menunjukkan Last delivery was successful, berarti GitHub berhasil mengirimkan Webhook ke server.

uji webhook di github

Selanjutnya buka Git Manager di aaPanel untuk memastikan deployment berhasil dijalankan tanpa kendala.

pengujian deployment di aa panel

Troubleshooting

Jika proses clone atau auto update belum berjalan sebagaimana mestinya, beberapa konfigurasi berikut dapat diperiksa:

  • SSH Public Key sudah ditambahkan ke menu Deploy Keys.
  • Repository URL menggunakan format SSH.
  • Branch yang digunakan sudah sesuai dengan repository.
  • Deployment Script tidak mengalami error saat dijalankan.
  • Webhook URL dapat diakses oleh GitHub.
  • Recent Deliveries pada GitHub dapat digunakan untuk melihat apakah Webhook berhasil dikirim.
  • Deployment Log pada Git Manager dapat diperiksa apabila proses deployment gagal dijalankan.

Penutup

Fitur Create for Git pada aaPanel memudahkan proses deployment website dari repository GitHub. Dengan menambahkan SSH Public Key ke GitHub, server dapat terhubung dan mengakses private repository dengan aman. Sementara itu, GitHub Webhook dan Deployment Script dapat digunakan untuk menerapkan setiap perubahan dari repository ke server secara otomatis.

Dengan konfigurasi tersebut, proses Deploy Private Repository GitHub menjadi lebih praktis karena developer tidak perlu melakukan pembaruan file secara manual setiap kali terdapat perubahan pada source code. Selain menghemat waktu, konfigurasi ini juga membantu menjaga agar source code di GitHub dan file website di server tetap sinkron.

Bermanfaatkah Artikel Ini?

Klik bintang 5 untuk rating!

Rating rata-rata 0 / 5. Vote count: 0

Belum ada vote hingga saat ini!

Kami mohon maaf artikel ini kurang berguna untuk Anda!

Mari kita perbaiki artikel ini!

Beri tahu kami bagaimana kami dapat meningkatkan artikel ini?

Yanuar Ardhi Pratama