From 694c87dc9ed4081483983b90757d746edeba0b08 Mon Sep 17 00:00:00 2001 From: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com> Date: Tue, 16 Dec 2025 16:51:59 +0100 Subject: [PATCH] docs: improve and update changelog - add new v5.x-chore/add-queue-system changes to changelog - improve wording for a few points --- CHANGELOG.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 785c3cd3f..f60c62d07 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,10 +13,11 @@ All notable changes to this project will be documented in this file. - **v4 to v5 upgrade migration** - Added Coolify v4 database as `old_pgsql` connection - +- Worker Servers which replace build servers with servers that can also run jobs (horizon workers) in addition to building docker images ### Changed -- Upgraded all Composer and Node dependencies, most notably: PHP to 8.5 (previously 8.4), TailwindCSS to v4.0 (previously v3) and Laravel to v12 (previously v10) +- Upgraded all Composer and Node dependencies and adopted their latest syntax and features, most notably: PHP to 8.5 (previously 8.2), TailwindCSS to v4.0 (previously v3) and Laravel to v12 (previously v10) - **Docker:** - Upgraded all Docker dependencies, most notably: Postgres to v18 (previously v15) and Redis to v8 (previously v7) - @@ -25,6 +26,11 @@ All notable changes to this project will be documented in this file. - Use Redis for sessions and expire inactive sessions after 24h (previously 14 days) - Encrypt user sessions data - Expire password reset tokens after 10 minutes (previously 60 minutes) + - Jobs now wait for all DB transactions to be finished before being dispatched which prevents race conditions + - Normal jobs (backups, emails, etc.) and deployment jobs now use separate supervisor configurations and defaults + - 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 - Redirect Laravel logs to `stderr` so they can be viewed in docker logs - Configured production logging to rotate automatically and keep only the last 10 days of logs to reduce disk usage - Changed production log level from `debug` to `warning` to reduce disk usage and avoid logging sensitive information @@ -44,6 +50,8 @@ All notable changes to this project will be documented in this file. ### Fixed - `laravel.log` file growing indefinitely and consuming excessive disk space +- Removed logging of failed jobs into the database as we use Horizon for that and it can cause excessive disk usage in some cases +- On v4 when changing the maximum concurrent builds setting to more than 4 builds the setting is no longer respected because there is a maximum of 4 horizon workers available by default - ### Security @@ -70,6 +78,7 @@ All notable changes to this project will be documented in this file. - Automatically eager load all relationships to prevent N+1 queries - Configure models and enforce morph map for polymorphic relationships - Enforce immutable dates globally + - Disable queue interruption polling to improve performance - Fake sleeps and prevent stray HTTP requests in testing - Prevent exception truncation in development - Use aggressive Vite prefetching for better performance @@ -83,13 +92,14 @@ All notable changes to this project will be documented in this file. - Cancel in-progress action runs when a new run is triggered - Improved `SECURITY.md` formatting and wording and added the support policy for `v5.x` - Refactored the GitHub issue templates to use issue types and improved formatting and wording - - Moved `README.md` assets into `.github/assets/` to easier exclude them from the core repository code + - Moved `README.md` assets into `.github/assets/` to more easily exclude them from the core repository code - Removed the `chore-remove-labels-and-assignees-on-close.yml` workflow as labels and assignees are now kept when closing Issues and PRs ### Refactored - Completely refactored all database migrations for a cleaner, more consistent and stable database schema - Completely refactored all database models +- Queues are now accessed via an enum instead of hardcoded strings ## Issues