System Settings
Everything the platform runs on — services, performance, storage, maintenance, APIs and backups. Changes here reach every school on this installation, not one.
General
What the installation calls itself, and the defaults it hands down.
Identity
What the installation calls itself
Locale defaults
Inherited by every school on this installation
Sessions
How long a signed-in user stays signed in
Who may change this
System settings are not a tenant permission
Application
Tenancy, feature flags and what the application will accept.
Tenancy
How many schools this installation serves
Feature flags
What is switched on for this installation
Notification defaults
What a new school inherits
Uploads
What the application will accept
Platform Services
Ten services and thirty days of history for each.
Ten services, each showing thirty days of history. The strip matters more than the percentage — four consecutive red days is a different problem from four scattered ones.
Application
preskool-app-01 · php-fpm 8.3
Database
MySQL 8.0.36 · primary
Scheduler
cron · every minute
Queue worker
4 workers · redis driver
Email service
Amazon SES · ap-south-1
SMS service
MSG91 · transactional
Object storage
S3 · preskool-media
Search service
Meilisearch · 12 indexes
API service
REST v1 · 4 consumers
AI services
Inference endpoint · batch nightly
Performance
Where the time goes, and what is given up under load.
Delivery
What reaches the browser, and how much of it
Database
Where most of the time actually goes
Current load
Measured over the last hour
Disk is the only figure worth acting on. Everything else has comfortable headroom at the busiest hour of the school day.
Performance mode
What the platform gives up when it is busy
Storage
412 GB of 500 GB, and what is on it.
Volume · /var/preskool
412 GB of 500 GB used · 88 GB free
Logs are the fastest-growing partition and the easiest to reclaim. Reducing log retention from 90 days to 30 would return roughly 40 GB and cost nothing that is looked at.
Storage locations
Where each kind of file lives
Retention
What is kept, and for how long
Cache
What is held in memory, and what clearing it costs.
Cache configuration
What is held in memory and for how long
Clearing the cache
What it costs to do it
Clearing everything at once forces every subsequent request to rebuild from the database. On a school-day morning that is felt immediately by everyone signing in.
Background Jobs
What runs on its own, and what is failing.
Queue workers
What actually runs the jobs
Failure handling
What happens to a job that does not finish
Maintenance
Taking the platform away, and putting it back.
Maintenance mode is off — the platform is open
Turning it on signs everyone out and shows a holding page to all 6,214 users across three schools. Only allow-listed addresses keep access. This is not reversible from a phone, so it is worth being at a desk.
Scheduled maintenance
When the platform expects to be interrupted
Debug & error reporting
What the platform says when it goes wrong
Cleanup & optimisation
Housekeeping that runs on its own
Manual actions
Things a Super Administrator can trigger now
Security
Transport, access, secrets and what checks itself.
Transport & headers
What the browser is told to enforce
Access control
Who may reach the platform at all
Secrets & encryption
How the platform keeps what it holds
Scanning
What checks itself, and when
Logging
What is written, kept and alerted on.
Log configuration
What is written, and where
Log alerts
What raises a notice rather than a line
Recent platform log
Last 10 of 214,908 entries · retained 90 days
API Services
How the platform is reached from outside.
REST API
How the platform is reached from outside
API keys
Who is holding one
/api/v1/students
Read student records · scoped by school
/api/v1/attendance
Daily attendance · read only
/api/v1/fees/payment
Record an offline payment
/api/v1/reports/summary
Aggregate figures · no personal data
/hooks/payment/callback
Gateway settlement callback · signed
/hooks/sms/dlr
SMS delivery receipts · signed
/api/v2/*
Not released — v1 remains supported
Integrations
What the platform talks to, and what may call in.
Connected services
What the platform talks to
Webhooks
What is allowed to call in
No third-party application has been authorised
Every integration in use is a first-party one the school configured directly — a payment gateway, a mail provider, an SMS route. Nothing external holds a token that acts on a user’s behalf, and until one does this list stays empty.
Environment
What the platform is actually running on.
Runtime
What the platform is actually running on
Environment ....... production
PHP ............... 8.3.9
Laravel ........... 11.14.0
Database .......... mysql 8.0.36
Cache ............. redis 7.2.4
Queue ............. redis
Session ........... redis
Storage ........... s3 (ap-south-1)
Debug ............. false
Maintenance ....... false
Every line here comes from the environment file, which sits outside the web root and is never included in an export or a backup of settings.
Environments
Three, and what each is for
Infrastructure
The machines underneath
System Health
Eleven checks, every sixty seconds.
Health checks
Run every 60 seconds · 9 of 11 passing
Availability
What the last thirty days looked like
One interruption, on 22 July, when the search service restarted after an index rebuild ran out of memory. Four minutes, outside school hours, nobody signed in.
Alerting
Who is told, and when
Backups
What is kept, and whether it has ever been restored.
Backup schedule
What runs, and where it lands
Retention & restore
How far back you can actually go
Updates
4.9.0 is available and has been on staging for a week.
Version 4.9.0 is available
Released 22 Jul 2026 · currently running 4.8.2
A minor release, so no database migration is destructive and the upgrade is reversible for seven days. It has been running on staging since 24 July without incident.
Update policy
What the platform may do on its own
Version history
What has been installed here
Licensing
What this installation is entitled to, and for how long.
Licence
What this installation is entitled to
Support & updates
What runs out, and when
Advanced
Environment variables, experimental flags and the reset switch.
APP_DEBUG=false
APP_URL=https://preskool.edu
DB_CONNECTION=mysql
CACHE_STORE=redis
QUEUE_CONNECTION=redis
SESSION_DRIVER=redis
FILESYSTEM_DISK=s3
APP_KEY=∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
DB_PASSWORD=∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
Shown here for reference only. Secrets are masked and the file itself is edited on the host, never through the browser — a settings page that can rewrite its own credentials is a settings page that can lock you out.
Commands a Super Administrator may run from here rather than over SSH. Each is recorded in the audit history with the account that ran it.
php artisan queue:restart
php artisan scout:reindex
php artisan backup:run
php artisan schedule:list
Anything destructive — migrations, seeding, key rotation — is deliberately not available here.
Resetting returns every setting on this page to the shipped default. Data, schools, users and backups are untouched, but the platform will need reconfiguring before it behaves as it does now.
Audit History
Every change, with the account against it.
Audit history
Every platform change and every automatic event, retained 3 years
System activity
How this installation reached its present state.
Platform installed
Version 4.7.4 on a single host in ap-south-1, with one school and 1,240 users.
Configuration updated
Log retention raised from 30 to 90 days. This is where the current disk pressure begins.
Maintenance enabled
Four minutes of planned downtime for the 4.8.2 upgrade, taken in the nightly window.
Backup completed
2.4 GB written to a second region and verified by opening the archive, not merely by writing it.
System optimised
Temporary files purged, expired sessions cleared and tables optimised. 1.2 GB reclaimed.
Configuration published
Four settings published, two more still held as drafts. The drafts are not in effect anywhere.
Recommendations
What the platform suggests looking at, in the order it would look.
Bring the AI service back or switch the module off
The inference endpoint has refused connections since 27 July and the nightly batch has not run in four days. Insights shown to teachers are now four days stale without saying so, which is worse than showing nothing.
Run a restore drill
Thirty daily backups exist and every one verified on write. None has ever been restored. A backup nobody has restored is a hope rather than a backup, and staging exists precisely so this can be tested without risk.
Reduce log retention to 30 days
Disk is at 82% against an 85% alert. Logs hold 62 GB and were raised from 30 to 90 days in June for a specific investigation that has since closed. Reverting it returns roughly 40 GB immediately.
Restart queue worker 4
It stopped responding at 00:12 and the other three have absorbed its work, so nothing is queued behind it. It will not recover on its own, and three workers is thinner cover than intended.
Take 4.9.0 in the August window
It has run on staging for a week without incident, needs four minutes of downtime and is reversible for seven days. Waiting past the term start makes the same upgrade harder to schedule.
Backups are encrypted with a separate key
Worth keeping. If the application key were ever exposed, the backups would not open with it. Several installations get this wrong by reusing one key for both.
Two settings are still drafts
Neither is in effect. Publishing applies both at once and notifies every administrator, which is why they are usually left to accumulate until there is a reason to publish.



