- 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