Commit Graph
18428 Commits
Author SHA1 Message Date
Andras Bacsai b41ba87fff fix(application): reject Docker image names shared by building applications
Two applications that build the same Docker image name push the same
tags (commit SHA, latest, pr-<id>), so one can run the image of the
other. Deployments, the General form, and the API now reject such a
name for applications of the same team.

Closes #9834
2026-10-29 11:30:25 +01:00
Andras BacsaiandClaude Opus 5.5 3048e9948c fix(analytics): start Locations card on resource analytics tabs
Key the loaded view so the lazy-load morph replaces the placeholder
skeleton instead of patching it in place. Alpine did not start the
Locations toggle, the globe, and the table pagers on reused nodes.

Closes #12370

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 11:28:04 +01:00
Andras Bacsai 623d367a2a fix(env): keep preview variable order when sorting is disabled
Closes #9876
2026-10-29 11:18:02 +01:00
Andras BacsaiandClaude Opus 5.5 6f8cf50402 feat(env): show compose defaults for empty variables in developer view
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 11:15:46 +01:00
Andras BacsaiandClaude Opus 5.5 6e3ab703bf fix(application): show watch paths for deploy key applications
Closes #12373

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 11:09:16 +01:00
Andras Bacsai c6f5899949 feat(tables): show loading state while a server-side sort runs 2026-10-29 11:05:39 +01:00
Andras Bacsai 103af830e5 feat(dashboard): sort projects and servers by clicking a column header 2026-10-29 11:05:39 +01:00
Andras Bacsai af28ba8bbc feat(tables): sort tables by clicking a column header 2026-10-29 10:53:54 +01:00
Andras BacsaiandClaude Opus 5.5 cd992e72e1 feat(tables): filter tables by clicking a cell value
Click a type, status, server, source, or role value in a table row to
filter the table by that value. Click it again to remove the filter.
Covers the environment resources, deployments, application and service
backups, and team members tables.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 10:53:44 +01:00
Andras Bacsai a3e2b9347c Merge branch 'fix-bulk-env-flags-proxy-event' 2026-10-29 08:57:21 +01:00
Andras Bacsai 0894251de9 docs(api): remove unsupported preview and Highlight fields
Remove is_preview from service environment variable request schemas and
Highlight log drain fields from the generated OpenAPI specifications.
2026-10-29 08:57:20 +01:00
Andras Bacsai f778942630 docs(ai): document hidden counts in application queries 2026-10-29 00:00:06 +01:00
Andras BacsaiandClaude Opus 5.5 3607abf7eb fix(servers): load server manager servers in batches by id
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 23:59:34 +01:00
Andras BacsaiandClaude Opus 5.5 a12f62ed4f fix(dashboard): bound recent deployments query per application
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 23:58:59 +01:00
Andras BacsaiandClaude Opus 5.5 3d956c110c fix(servers): skip patch check results in bulk settings loads
ServerManagerJob and the Docker cleanup step of ScheduledJobManager
load the settings of every server with SELECT *. That reads the
patch_check_result JSON, which holds the full update list of each
server. With 12,709 rows, the scan took about 4 ms, but the full fetch
took 390-536 ms and 294 MB of PHP memory. Without the column it took
74 ms and 111 MB.

Add ServerSetting::withoutPatchCheckResult() and use it in both loops.
Queued jobs reload the full settings through SerializesModels.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 23:58:51 +01:00
Andras BacsaiandClaude Opus 5.5 c34f5f8e3b fix(servers): index active server lookups by private key
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 23:47:55 +01:00
Andras BacsaiandClaude Opus 5.5 55605f6516 fix(github-runners): select runner servers with a UNION of server ids
An OR of two correlated EXISTS subqueries made Postgres estimate a
per-server scan of the runner executions, so JIT compilation took most
of the time of the per-minute reconcile query. Select the server ids
from both runner tables with one UNION and index executions by status
and server.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 23:43:16 +01:00
Andras BacsaiandClaude Opus 5.5 7324b5ca7b fix(webhooks): filter manual webhook applications by repository in SQL
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 22:54:34 +01:00
Andras BacsaiandClaude Opus 5.5 c23d3363f2 fix(deployments): load only commit details for the application heading
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 22:53:30 +01:00
Andras BacsaiandClaude Opus 5.5 68a08170e7 fix(docker): index interrupted cleanup lookup and process it in batches
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 22:53:10 +01:00
Andras BacsaiandClaude Opus 5.5 2616b4bba1 fix(deployments): index history ordering and skip payload columns in lists
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 22:44:28 +01:00
Andras BacsaiandClaude Opus 5.5 2b6af2744a fix(database): index server settings and team membership lookups
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 22:30:40 +01:00
Andras Bacsai 42ba6ec666 fix(docker): preserve storage directory .gitignore files 2026-10-28 22:28:00 +01:00
Andras BacsaiandClaude Opus 5.5 0951c5daa1 fix(database): index team deployment and Docker cleanup history lookups
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 22:14:51 +01:00
Andras BacsaiandClaude Opus 5.5 06747f9954 chore(release): bump Coolify version to 4.5.4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 22:14:12 +01:00
Andras Bacsai 57cdd92f7c fix(upgrade): count only scheduled jobs running on this host 2026-10-28 22:13:40 +01:00
Andras BacsaiandClaude Opus 5.5 24648d4b20 fix(docker-cleanup): skip broadcast for executions of deleted servers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 22:13:27 +01:00
Andras BacsaiandClaude Opus 5.5 70c1bcb138 fix(versions): restore helper 1.0.19 and Sentinel 1.1.3
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v4.5.3
2026-10-28 15:05:32 +01:00
Andras Bacsai bc61f4860f fix(railpack): serialize builder bootstrap before builds 2026-10-28 15:00:59 +01:00
Andras BacsaiandClaude Opus 5.5 5de2456186 chore(versions): bump coolify-helper to 1.0.19
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 14:16:22 +01:00
Andras BacsaiandClaude Opus 5.5 bd9708d79b fix(compose): let the build interpolate required runtime-only variables
Closes #12363

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 14:16:22 +01:00
Andras BacsaiandClaude Opus 5.5 e7a46bd790 fix(mcp): show commands and configuration to read:sensitive tokens
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 14:16:22 +01:00
Andras BacsaiandClaude Opus 5.5 afe8fc05ea fix(healthcheck): keep the Dockerfile HEALTHCHECK of existing applications
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 14:16:22 +01:00
Andras BacsaiandClaude Opus 5.5 fd5efd0273 fix(http): stop retrying requests that timed out after they were sent
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 14:16:22 +01:00
Andras BacsaiandClaude Opus 5.5 597a878d80 fix(hetzner): validate over SSH when the Hetzner API call fails
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 14:16:22 +01:00
Andras BacsaiandClaude Opus 5.5 c4a7cd6d4a fix(ssh): reap orphaned ControlPersist mux masters
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 14:16:22 +01:00
Andras Bacsai 2e874576e1 chore(release): bump Coolify version to 4.5.3 2026-10-28 13:59:51 +01:00
Andras Bacsai 7e6de3872f chore(release): bump Coolify version to 4.5.2 v4.5.2 2026-10-28 12:16:17 +01:00
Andras Bacsai 9aca61fbd6 fix(ssh): start mux masters with a command that exits
When another process held the control socket, `ssh -fN` disabled
multiplexing and stayed open as a plain connection forever. Each one
kept an sshd process on the server, which used up its memory.

Run `true` instead of -fN. ControlPersist moves a new master to the
background; a process that cannot become the master exits.
2026-10-28 12:10:27 +01:00
Andras Bacsai 2dcf8eeca3 fix(previews): keep production values for previews from before the upgrade
Public pull request previews no longer get production values, and no
preview falls back to production variables. Existing previews were
deployed with these values; for example, their databases were
initialized with the production password, so they broke on redeploy.

Previews that exist at the upgrade get keeps_production_values and
keep the earlier behavior. Previews created later do not. Server
transfer moves the flag.
2026-10-28 12:10:27 +01:00
Andras Bacsai 5dacaed9f2 fix(proxy): keep the application proxy labels of v4.5.0
The retry labels (Traefik retry middleware, Caddy lb_try_duration)
changed the labels of every application. On the first rolling update
after a settings save, the old and the new container defined the same
Traefik router differently, so Traefik dropped the route and returned
503 until the old container stopped.

Remove the retry labels from this release. The rolling update drain
wait stays.
2026-10-28 12:10:27 +01:00
Andras Bacsai ef57eea320 fix(backups): sign mc requests with S3v4 and retry failed S3 uploads 2026-10-28 10:35:46 +01:00
Andras Bacsai c2de0d83d8 docs(security): clarify threat model and vulnerability severity 2026-10-27 22:58:21 +01:00
Andras BacsaiandClaude Opus 5.5 5145aa53dc fix(services): align service configuration form with role permissions (#12356)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 22:39:52 +01:00
Andras BacsaiandClaude Opus 5.5 eaabed5c4b fix: scope finish events of background tasks to their team (#12355)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 22:36:25 +01:00
Andras BacsaiandClaude Opus 5.5 fae2752346 fix(databases): show custom configuration only to admins (#12353)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 22:34:47 +01:00
Andras BacsaiandClaude Opus 5.5 bc0cb1b37d fix(database-import): improve MySQL and MariaDB restore handling (#12352)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 21:47:28 +01:00
Andras Bacsai e21be95392 Merge branch 'ghsa-v432-app-credentials-members' 2026-10-27 21:40:37 +01:00
Andras Bacsai 0372f5a319 Merge branch 'ghsa-ffqv-source-webhook-secret' 2026-10-27 21:28:21 +01:00
Andras BacsaiandClaude Opus 5.5 9b9d1309d1 fix(api): allow write tokens to set manual webhook secrets
Webhook secrets are stored settings, so a token with the write ability can
set or change them, the same as GitHub App and GitLab App webhook secrets.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 21:24:20 +01:00