Backup dan masa simpan data

  • Diperbarui
  • 4 menit baca
  • Untuk operator sekolah
  • Waktu pengerjaan 15 menit

RingkasnyaBackup terjadwal membuat arsip zip berisi database dan berkas unggahan di storage/app/private/backups, dan hanya menyimpan 3 arsip terbaru. Halaman yang sama mengatur masa simpan data pribadi surat dan log aktivitas.

Daftar isi

Pondok CMS bisa membuat arsip backup sendiri tanpa mysqldump, cukup dari cron schedule:run yang sudah Anda pasang di Cron dan antrean. Fitur ini mendukung MySQL, MariaDB, dan SQLite. Untuk PostgreSQL, pakai pg_dump atau fitur backup panel hosting.

Pengaturannya ada di Pengaturan > Backup & masa simpan. Hanya super-admin yang boleh mengubahnya.

Bagaimana menyalakan backup terjadwal? Tautan ke bagian Bagaimana menyalakan backup terjadwal?

  1. Masuk sebagai super-admin, lalu buka Pengaturan > Backup & masa simpan.
  2. Nyalakan Backup terjadwal.
  3. Pilih Frekuensi backup, lalu simpan.

Backup berjalan pukul 01.30 WIB, hanya pada hari yang sesuai frekuensi. Pondok CMS selalu menyimpan 3 arsip terbaru, jadi kuota hosting yang terpakai sama untuk semua pilihan. Yang berbeda adalah rentang riwayatnya.

FrekuensiHari jalanRentang riwayat
HarianSetiap hariSekitar 3 hari
Mingguan (disarankan)Setiap AhadSekitar 3 minggu
BulananSetiap tanggal 1Sekitar 3 bulan, tetapi perubahan hingga sebulan terakhir bisa hilang

Beberapa hal yang perlu diketahui:

  • Bila frekuensi belum pernah dipilih, termasuk pada instalasi lama, backup berjalan harian.
  • Arsip dari backup manual ikut dihitung dalam 3 arsip itu. Satu backup manual menggeser satu arsip terjadwal tertua.
  • Bila cron tidak berjalan pada hari jatuh tempo, backup siklus itu terlewat dan baru dibuat pada jadwal berikutnya. Jalankan backup manual bila perlu.

Backup manual bisa dibuat kapan saja, apa pun frekuensinya:

Terminal
php artisan pondok:backup

Apa isi arsip dan di mana disimpan? Tautan ke bagian Apa isi arsip dan di mana disimpan?

Arsip bernama pondok-YYYYmmdd-His.zip dan tersimpan di storage/app/private/backups. Isinya:

BerkasIsi
database.sqlData semua tabel (perintah DELETE FROM lalu INSERT), tanpa struktur tabel
manifest.jsonWaktu backup, jenis database, migration terakhir, dan jumlah baris per tabel
private/Berkas disk private: dokumen santri dan berkas PSB. Folder backups, finance-exports, dan livewire-tmp tidak ikut
public/Berkas disk public: foto, gambar portal, dan logo
Arsip berisi data pribadi santri dan wali

Jangan memindahkan atau mengekstrak arsip ke public_html, termasuk pada cara B. Berkas di sana bisa diunduh siapa saja. Panel admin sengaja tidak menyediakan tombol unduh.

Unduh arsip lewat File Manager dan simpan di luar hosting, misalnya di komputer kantor atau penyimpanan awan milik lembaga.

Berkas .env tidak ikut arsip. Simpan salinannya terpisah di tempat aman. Tanpa APP_KEY yang sama, kolom terenkripsi (NIK dan nomor KK) tidak bisa dibaca setelah pemulihan.

Bagaimana memulihkan dari arsip? Tautan ke bagian Bagaimana memulihkan dari arsip?

Langkah ini untuk server baru atau database yang kosong.

  1. Siapkan database kosong dan pasang .env lama dengan APP_KEY yang sama.

  2. Pasang kode Pondok CMS versi yang sama dengan saat backup dibuat. Migration terakhir tercatat di manifest.json pada kunci last_migration.

  3. Buat tabel tanpa data awal:

    Terminal
    php artisan migrate --force

    Jangan menjalankan seeder atau pondok:install. Datanya akan dihapus dan diganti isi backup.

  4. Impor database.sql lewat phpMyAdmin (menu Import), atau lewat Terminal:

    Terminal
    mysql -u user -p nama_database < database.sql

    Pakai mode SQL bawaan server dan jangan aktifkan NO_BACKSLASH_ESCAPES. Bila berkas terlalu besar untuk batas unggah phpMyAdmin, unggah dalam bentuk zip atau pakai Terminal.

  5. Ekstrak isi folder private/ dari arsip ke storage/app/private. Ekstrak isi public/ ke folder disk public, yaitu storage/app/public, atau PUBLIC_STORAGE_ROOT bila Anda mengisinya.

  6. Jalankan php artisan optimize:clear, lalu php artisan pondok:doctor.

Yang tidak ikut dipulihkan: antrean tugas yang belum selesai dan riwayat tugas gagal, sesi login (pengguna cukup login ulang), dan cache.

Untuk Docker, cara memulihkan volume dijelaskan di Deploy dengan Docker Compose.

Bagaimana mengatur masa simpan data pribadi pada surat? Tautan ke bagian Bagaimana mengatur masa simpan data pribadi pada surat?

Di halaman yang sama, isi Masa simpan data pribadi surat dengan angka 1 sampai 100 tahun. Setiap hari pukul 03.00 WIB, surat keluar yang tanggal terbitnya sudah melewati masa simpan dihapus data pribadinya: nama lengkap, NIS, NISN, jenis kelamin, tempat dan tanggal lahir, jenjang, dan kelas.

Surat tetap ada. Nomor dan kode verifikasinya tetap berlaku, dan nama santri tampil termasker. Kosongkan isian bila data surat tidak perlu dihapus. Data keuangan tidak pernah dihapus.

Untuk menjalankannya manual:

Terminal
php artisan pondok:redact-letter-snapshots

Isian bebas keperluan dan alasan pembatalan pada surat tidak ikut dihapus, jadi jangan menulis data pribadi di sana.

Bagaimana mengatur masa simpan log aktivitas? Tautan ke bagian Bagaimana mengatur masa simpan log aktivitas?

Di halaman yang sama, isi Masa simpan log akademik dan konten dalam bulan, minimal 24. Setiap hari pukul 03.30 WIB, log aktivitas akademik dan konten yang lebih lama dari masa simpan dihapus.

Log keuangan, PSB, dokumen, pengaturan, dan sistem tidak pernah dihapus. Kosongkan isian bila log tidak perlu dihapus; itu pengaturan bawaannya. Untuk menjalankannya manual:

Terminal
php artisan pondok:prune-activity-log
Jangan pakai activitylog:clean

Perintah php artisan activitylog:clean bawaan paket log menghapus semua log yang lebih dari setahun, termasuk log keuangan. Pondok CMS tidak menjadwalkannya. Jangan menjalankannya sendiri.

Langkah berikutnya Tautan ke bagian Langkah berikutnya

Perbaiki halaman ini di GitHub