Operations & deployment
Scheduler, cron, backups, and production notes.
Maintenance and updates
Keeping NebulaCMS healthy in production is mostly routine Laravel operations:
- Application updates — When you deploy a new release, follow your usual process (Git pull or upload,
composer installif needed,npm run buildfor developer installs, run migrations). Release ZIP installs should use a fresh CI-built archive when upgrading between versions. - Database migrations — Run
php artisan migrateafter updates when release notes say the schema changed. - Caches — After changing config or routes in production, refresh caches (see Caches below) or clear them from Settings when the admin offers it.
- Dependencies — Keep PHP and database versions within the ranges stated in Installation.
For scheduled content and backups, use the sections below. If you are still installing or moving hosts, see Installation first.
Task scheduler (scheduled posts)
NebulaCMS registers a schedule in routes/console.php:
- Command:
posts:publish-scheduled - Frequency: every minute
Laravel only runs scheduled tasks when cron invokes the scheduler:
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
Without cron, scheduled posts will not flip to published automatically.
Local development: run php artisan schedule:work in a separate terminal to test scheduling.
Caches
Use php artisan config:cache, route:cache, and view:cache in production after deploy; clear via admin Settings or Artisan when configuration changes.
Queues
If you offload work to queues, run workers under supervisor or a managed worker service and set QUEUE_CONNECTION appropriately.
Backups
- Database: regular dumps (mysqldump, pg_dump, or managed backups).
- Files:
storage/app(uploads) andpublic/storagesymlink target; if using S3, rely on bucket policies and versioning.
HTTPS
Set APP_URL with https:// and terminate TLS at your reverse proxy or load balancer.