Thursday, 4 June 2026

Sync github ke data murid situs

 

Untuk kondisi Guru Duan saat ini, saya akan memilih tahapan bertahap, jangan langsung webhook.

Tahap 1 (Sekarang) — Deploy Manual dengan Script

Buat script:

nano /opt/update-data-murid.sh

Isi:

#!/bin/bash

echo "=== UPDATE DATA MURID ==="

cd /opt/data-murid || exit

git pull

rsync -av --delete \
--exclude='.git' \
/opt/data-murid/ \
/var/www/data-murid/

echo "=== UPDATE SELESAI ==="

Simpan:

chmod +x /opt/update-data-murid.sh

Tahap 2 — Uji

Saat ada perubahan di GitHub:

cd /opt/data-murid
git status

lalu:

/opt/update-data-murid.sh

Keuntungan:

  • Sangat sederhana.

  • Tidak ada service tambahan.

  • Tidak ada port tambahan.

  • Tidak ada risiko webhook disalahgunakan.


Tahap 3 — Tambahkan Backup

Karena ini data alumni yang berharga, saya justru lebih fokus ke backup daripada otomatisasi.

Buat:

mkdir -p /backup/data-murid

Backup harian:

cp /var/www/data-murid/alumni.json \
/backup/data-murid/alumni-$(date +%F).json

Atau pakai cron seminggu sekali.


Tahap 4 — Pisahkan Log

Karena Guru Duan sudah memakai GoAccess, saya sarankan mempertahankan:

access_log /var/log/nginx/data-murid-access.log;
error_log  /var/log/nginx/data-murid-error.log;

Nanti statistik hanya untuk situs alumni.


Tahap 5 — Kalau Sudah Sering Update

Baru pertimbangkan:

Opsi A: Cron

Misalnya tiap jam:

0 * * * * /opt/update-data-murid.sh

Ini cukup aman dan sederhana.

Opsi B: Webhook GitHub

Saya baru akan memasang webhook jika:

  • Guru Duan mengubah data setiap hari.

  • Ada beberapa situs yang dikelola.

  • Ingin benar-benar otomatis setelah git push.


Yang Saya Pilih Jika Ini Server Saya

Untuk repository yang isinya hanya:

alumni.json
index.html
script.js

saya akan tetap memakai:

/opt/update-data-murid.sh

manual.

Alasannya:

  • Repository hanya ±500 KB.

  • Update tidak setiap jam.

  • HG680P sudah menjalankan beberapa situs.

  • Semakin sedikit service tambahan, semakin mudah dirawat.

Jadi alurnya:

Laptop Ubuntu
    ↓
git push
    ↓
Armbian
/opt/update-data-murid.sh
    ↓
Website langsung ter-update

Menurut saya itu sudah ideal untuk ukuran proyek data-murid saat ini. Jika nanti Guru Duan ingin menghubungkannya langsung dengan Moodle (misalnya ekspor JSON alumni otomatis dari database Moodle), barulah kita bisa membuat deploy yang lebih otomatis.

Share:

0 comments:

Post a Comment