Skip to content

Updating and Maintenance

Enriko 'HybridMind' Todorov edited this page Jul 16, 2026 · 2 revisions

Updating & Maintenance

Updating to a new version

Always back up your database and .env first.

Git installations — one command handles maintenance mode, code pull, dependencies, migrations, cache rebuild and worker restart:

php artisan hybridcore:update

ZIP installations — replace the files (keep .env and storage/), then:

php artisan hybridcore:update --local

Administrators on a git install also see a "new version available" banner in Admin → System → Updates and can apply it from the panel. The panel and CLI run the same safe sequence and always lift maintenance mode, even if a step fails.

After any update, restart the background services — a queue worker holds your code in memory from the moment it started, so it keeps running the old version until you do:

sudo systemctl restart hybridcore-scheduler hybridcore-worker

Forgetting this is the usual reason a fix appears not to have worked. See Background Services.

Backups

  • From the panelAdmin → System → Backup exports settings, pages, menus and configuration as JSON.
  • Database & files — schedule server-side backups (mysqldump + the storage/app directory). These are the authoritative backups for disaster recovery.

Monitoring & health

  • Admin → System → Health — live status of the scheduler, queue worker and websocket server, plus environment checks.
  • Pulse (/pulse, admins only) — exceptions, slow queries, slow requests and usage, with 7-day auto-trimmed retention.
  • Horizon (/horizon, admins only) — queue throughput, worker load and failed jobs (with one-click retry).

Maintenance mode

Toggle from Admin → System → Health. While on, the public site shows a branded 503 page; admins keep full access. Updates enable it automatically.

Troubleshooting

Symptom Fix
Jobs not processing Horizon isn't running — check storage/logs/horizon.log
No live notifications Reverb down or /app not proxied — check the websocket setup
500 after an update Stale caches — php artisan optimize:clear, then re-cache
Scheduler never runs Cron entry missing — confirm with php artisan schedule:list

Clone this wiki locally