Backup dan masa simpan data
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?
- Masuk sebagai super-admin, lalu buka Pengaturan > Backup & masa simpan.
- Nyalakan Backup terjadwal.
- 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.
| Frekuensi | Hari jalan | Rentang riwayat |
|---|---|---|
| Harian | Setiap hari | Sekitar 3 hari |
| Mingguan (disarankan) | Setiap Ahad | Sekitar 3 minggu |
| Bulanan | Setiap tanggal 1 | Sekitar 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:
php artisan pondok:backupApa 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:
| Berkas | Isi |
|---|---|
database.sql | Data semua tabel (perintah DELETE FROM lalu INSERT), tanpa struktur tabel |
manifest.json | Waktu 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 |
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.
Siapkan database kosong dan pasang
.envlama denganAPP_KEYyang sama.Pasang kode Pondok CMS versi yang sama dengan saat backup dibuat. Migration terakhir tercatat di
manifest.jsonpada kuncilast_migration.Buat tabel tanpa data awal:
Terminalphp artisan migrate --forceJangan menjalankan seeder atau
pondok:install. Datanya akan dihapus dan diganti isi backup.Impor
database.sqllewat phpMyAdmin (menu Import), atau lewat Terminal:Terminalmysql -u user -p nama_database < database.sqlPakai 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.Ekstrak isi folder
private/dari arsip kestorage/app/private. Ekstrak isipublic/ke folder disk public, yaitustorage/app/public, atauPUBLIC_STORAGE_ROOTbila Anda mengisinya.Jalankan
php artisan optimize:clear, laluphp 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:
php artisan pondok:redact-letter-snapshotsIsian 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:
php artisan pondok:prune-activity-logPerintah php artisan activitylog:clean bawaan paket log menghapus semua log yang lebih dari setahun, termasuk log keuangan. Pondok CMS tidak menjadwalkannya. Jangan menjalankannya sendiri.