- normal jobs (backups, emails, etc.) and deployment jobs now use separate supervisor configurations and defaults
- use different queues and supervisors depending on if the server is a worker server
- horizon workers are now restarted after 500 (job workers) or 300 (deployment workers) jobs or after 1 hour to clean up stale memory and CPU usage
- reduced default queue timeouts from 10h to 60s for jobs and 300s for deployments to prevent stale jobs
- increased balanceCooldown from 1s to 2s for jobs to reduce CPU spikes
- prepare LongWaitDetected waits for all queues
- use the "jobs" redis connection for horizon
- remove unused config option
- this rule adds newlines between enum cases which is incorrect and pint already formats all other cases covered by this rule via its class_attributes_separation rule
- use redis as the default queue connection
- use the redis "jobs" connection for all queued jobs
- set after_commit=true to ensure jobs wait for all DB transactions to finish before being dispatched
- use pgsql database for job batches
- remove logging of failed jobs into a DB table as we use horizon for that
- switch from database stored sessions to redis for improved performance and session TTL
- this allows us to remove the session DB table cleanup job needed on v4
- reorder the .env file, improve comment and remove some variables
- use LOG_STACK=single for local development
- additionally log deprecations for local development
- use stderr in addition to the daily logging channel so the laravel logs are passed to the container logs (docker logs)
- use the daily channel with local laravel.log to persist logs to disk for 10 days, ensuring a persistent copy even if the coolify container is removed/ updated
- rotate the logs in production every 10 days and only log warnings, to prevent an excessively large laravel.log file
- keep LOG_LEVEL=debug for the single channel as it will be used in development
- refactored rector laravel usage completely to use sets, which
reduces imports, adds a few new options and makes everything much
cleaner
- started using composer-based sets for laravel which applies rules via
rector laravel based on the laravel version
- removed many unused or now duplicated manually added formatting rules
- removed some rules that are not desired for our coding style
- added some new manual rules that made sense
- removed naming and phpunitCodeQuality prepared set as it caused
issues (naming in DB migrations was changed...)
- added typeDeclarationDocblocks prepared set (experimental)
- added withAttributesSets() option