Commit Graph
18478 Commits
Author SHA1 Message Date
github-actions[bot] edee5ccfd6 Merge remote-tracking branch 'origin/main' into next 2026-10-30 11:16:06 +00:00
Andras BacsaiandClaude Opus 5.5 b3ec26c3b1 fix(proxy): stop routing the Reverb HTTP API through the dashboard domain
The browser uses only the /app/{key} WebSocket. Laravel sends events to
Reverb over 127.0.0.1, so the generated Traefik and Caddy configs no longer
route /apps to port 6001, and the WebSocket rule only matches /app/.

Closes #12390

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 12:01:21 +01:00
Andras Bacsai 98b7de0ea7 fix(api): accept the same port mappings as the UI
Closes #12388
2026-10-30 11:43:13 +01:00
Andras BacsaiandClaude Opus 5.5 3e2fff0609 fix(deployments): stop the build server helper when a deployment is cancelled
Save build_server_id as soon as a build server is selected, so the cancel
cleanup finds the helper container on the build server. Let the final
helper stop run after a cancel.

Closes #12383

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 11:43:04 +01:00
Andras BacsaiandClaude Opus 5.5 4b541011c9 fix(api): hide locked values in resource and environment lists
Closes #12391

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 11:23:16 +01:00
github-actions[bot] 82764c6d79 Merge remote-tracking branch 'origin/main' into next 2026-10-29 22:37:14 +00:00
Andras Bacsai 72c8209285 feat(subscription): email checkout reminders for expired sessions
Enable Stripe checkout recovery links and send rate-limited reminders to the
admin who started an unfinished subscription checkout.
2026-10-29 23:35:34 +01:00
Andras Bacsai ca6eb20a38 Merge remote-tracking branch 'origin/main' into origin/next
# Conflicts:
#	app/Livewire/Dashboard.php
#	app/Livewire/Dashboard/ActiveDeployments.php
#	resources/views/livewire/team/member.blade.php
#	tests/Feature/Security/PrivateKeyServerLookupTest.php
2026-10-29 21:20:31 +01:00
b85a9197a1 chore: merge main into next (#12382)
Co-authored-by: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 21:10:39 +01:00
Andras BacsaiandClaude Opus 5.5 0d398ced24 fix(servers): open patches page from the patches badge
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 20:44:17 +01:00
Andras Bacsai 28c5af9b18 fix(avatar): change avatar URL when an existing avatar is replaced 2026-10-29 19:06:11 +01:00
340de2684f chore: merge main into next (#12371)
Co-authored-by: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 19:02:19 +01:00
Andras Bacsai 69bfb24ab2 feat(templates): add Hi.Events event management service (#12380) 2026-10-29 18:55:45 +01:00
Andras BacsaiandClaude Opus 5.5 f2ece40dd4 fix(terminal): fall back to usable shell for nologin and false (#12242)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 18:29:51 +01:00
Andras BacsaiandClaude Opus 5.5 7faa46bbd4 fix(upgrade): ignore whitespace around root user values before quoting
phpdotenv trims whitespace around an unquoted value, including the \r of
CRLF line endings. The repair quoted such values, which broke valid lines in
CRLF files and kept spaces that phpdotenv drops. Trim the value first and
quote it only when a space is still inside it.

Closes #12375

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 18:28:14 +01:00
Andras BacsaiandClaude Opus 5.5 43933ee6cc fix(upgrade): quote root user credentials with spaces in the .env file
Installers before 4.5.1 and manual edits could leave ROOT_USERNAME (or the
root email or password) with spaces and no quotes. The running container
ignores .env because its config is cached, so the next upgrade recreated it
and phpdotenv failed, which made every page return HTTP 500. The upgrade now
quotes these values before it restarts Coolify.

Closes #12375

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 18:25:50 +01:00
Andras BacsaiandClaude Opus 5.5 607daf80be feat(auth): show two-factor code as separate digit boxes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 18:17:18 +01:00
Andras Bacsai 96ed09f0cc fix(auth): clear forced password reset after a password reset
An invited user who set a password with Forgot password kept the forced
reset flag. A re-invite then replaced the password, and a revoked or
expired invitation deleted the account.
2026-10-29 18:16:00 +01:00
Andras Bacsai a39370dbb8 fix(postgresql): prevent init script path traversal 2026-10-29 18:01:43 +01:00
Andras Bacsai 6030d096bf fix(team): send working invitation links to users without a password
Re-inviting an email after its invitation expired, or re-inviting a user
who never set a password, sent a link that needs a login the user cannot
complete. Unused invited accounts now get a magic link again, and changing
another user's password no longer ends the current session.
2026-10-29 17:54:17 +01:00
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
github-actions[bot] 624fbd93f1 Merge remote-tracking branch 'origin/main' into next 2026-10-28 21:35:09 +00: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
github-actions[bot] 25bbb69381 Merge remote-tracking branch 'origin/main' into next 2026-10-28 21:17:02 +00: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
github-actions[bot] d22f75ae0b Merge remote-tracking branch 'origin/main' into next 2026-10-28 14:08:14 +00:00