Showing posts with label github. Show all posts
Showing posts with label github. Show all posts

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.

Sunday, 26 April 2026

github simg dan sim2plus

 

Bisa—dan justru itu desain yang tepat 👍


🎯 Konsep yang Guru pakai sudah benar

🟢 SIMG

➡️ untuk 1 Moodle (single instance)

  • cocok untuk server sederhana

  • semua langsung di satu tempat


🔵 sim2plus

➡️ untuk multi Moodle (shared codebase)

  • 2 Moodle ✔

  • 3, 4, dst ✔

  • scalable ✔


🧠 Cara kerja sim2plus (yang Guru sudah lakukan)

Struktur kira-kira:

/var/www/
├── shared/
│   └── local/jurnalmengajar   ← 1 source code (dipakai semua)
│
├── site1/moodle
├── site2/moodle
├── site3/moodle

👉 semua Moodle:

  • pakai plugin yang sama

  • cukup 1 kali update


🔥 Keuntungan besar

✔ update sekali → semua ikut update
✔ hemat storage
✔ konsisten (tidak beda versi plugin)
✔ mudah maintenance


⚠️ Hal yang WAJIB dijaga

1. Jangan hardcode path ❌

Sudah benar tadi:

require_once($_SERVER['DOCUMENT_ROOT'] . '/config.php');

2. Gunakan $CFG->wwwroot di JS ✔

$.get(M.cfg.wwwroot + '/local/jurnalmengajar/get_students.php')

3. Session beda ✔ (sudah Guru lakukan)

$CFG->sessioncookie = 'MoodleSessionDEV';

4. database masing-masing Moodle ✔

👉 jangan share DB


🚀 NEXT LEVEL (kalau mau lebih pro)

🔥 1. Pakai symlink (kalau belum full)

ln -s /var/www/shared/local/jurnalmengajar \
/var/www/site1/moodle/local/jurnalmengajar

🔥 2. Integrasi dengan Git (sim2plus)

cd /var/www/shared/local/jurnalmengajar
git pull

👉 semua Moodle langsung update


🔥 3. Auto deploy (opsional)

Bisa nanti:

  • git hook

  • atau script cron


🎯 Kesimpulan

✔ SIMG = single Moodle ✔
✔ sim2plus = multi Moodle ✔
✔ bisa berkembang ke 3+ Moodle ✔
✔ desain Guru sudah scalable


💡 Saran jujur

🔥 sim2plus ini sudah masuk level arsitektur production


Kalau Guru mau lanjut:

👉 saya bisa bantu:

  • struktur multi-Moodle yang paling optimal (Nginx + Cloudflare)

  • atau bikin auto update plugin dari GitHub ke semua Moodle

Tinggal bilang 👍

Sunday, 22 March 2026

Push Update coding ke github



🔥 Workflow standar ke depan (ingat ini saja)

Setiap selesai ngoding:

cd /var/www/html/moodle/local/jurnalmengajar
git status
git add .
git commit -m "jelaskan perubahan"
git push

Itu saja. Sangat cukup.


🎯 Bonus (saran struktur plugin Guru Duan)

Plugin Anda sudah besar sekali. Sebaiknya mulai dikelompokkan:

Contoh struktur yang lebih rapi:

local/jurnalmengajar/
│
├── classes/
├── cli/
├── jadwal/
├── surat/
├── rekap/
├── templates/
├── lib.php
├── settings.php
└── version.php

Kalau nanti plugin makin besar, ini akan sangat membantu.


Kalau boleh tahu, sekarang plugin jurnalmengajar ini sudah mencakup:

  • Jurnal mengajar

  • Surat izin

  • Rekap kehadiran

  • Pramuka

  • BK

  • Nilai

  • Kartu ujian

  • Jadwal pelajaran

  • Notifikasi WA

👉 Ini sebenarnya sudah seperti Sistem Informasi Sekolah mini di dalam Moodle 😄