Commit Graph
1993 Commits
Author SHA1 Message Date
Andras Bacsai fcdcd80eeb feat(env): support variable flag directives in developer view (#12349) 2026-10-27 16:27:22 +01:00
Andras Bacsai 1039368491 fix(s3): support virtual-hosted-style URLs for S3 storages
Add a "Use path-style URLs" setting to S3 storages. It is detected from
the endpoint (Alibaba OSS, Tencent COS, Volcengine/BytePlus TOS), and the
connection test switches to virtual-hosted style when the provider
rejects path-style requests. Backups pass `--path off` to mc.

Closes #10347
2026-10-27 15:53:16 +01:00
Andras Bacsai af7365ad57 fix(applications): keep the base directory in new repository apps
The deploy key flow saved the base directory only for Docker Compose.
All repository flows now validate the base directory, and the GitLab
and Gitea flows reject destinations on servers that cannot deploy.

Closes #10319
2026-10-27 15:50:41 +01:00
Andras BacsaiandClaude Opus 5.5 bbddf9543d fix(applications): keep saving with unchanged legacy build commands
Install, build, and start commands saved before they were validated
blocked every save of the General tab, and the fields are hidden for
build packs other than Nixpacks and Railpack, so users could not fix
them. Validate these commands only when they change; deployments pass
them to the builder as one escaped argument.

Closes #10055

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 15:48:28 +01:00
Andras BacsaiandClaude Opus 5.5 3c85187377 fix(github): use the owner/repo slug for GitHub API calls with SSH repository URLs
Closes #10175

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 15:47:15 +01:00
Andras BacsaiandClaude Opus 5.5 c3d110496c fix(github): show GitHub App errors when loading repositories
Closes #10174

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 15:46:26 +01:00
Andras Bacsai 90e7533a65 fix(env): keep quoted values when saving the developer view
Closes #10406
2026-10-27 15:24:08 +01:00
Andras Bacsai adcb182a8a fix(deployments): report Compose files with no parsed services 2026-10-27 15:06:17 +01:00
Andras Bacsai 4f9ad86e52 fix(applications): allow environment variable references in image tags
Closes #10642
2026-10-27 15:05:23 +01:00
Andras BacsaiandClaude Opus 5.5 d3b1a3d405 fix(ui): update breadcrumb names after a rename
Closes #12341

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 14:55:39 +01:00
Andras Bacsai f658d6df76 fix(logs): show container logs that contain invalid UTF-8
Closes #10628
2026-10-27 14:43:21 +01:00
Andras BacsaiandClaude Opus 5.5 80df5431dc fix(api): document database and resource list responses in OpenAPI
Add a Database schema and use it for GET /databases and
GET /databases/{uuid}, type the GET /resources items, and stop
requiring both environment_name and environment_uuid on create
endpoints. KeyDB now returns database_type like the other engines.

Closes #10449

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 14:42:29 +01:00
Andras Bacsai 5a08c35e7d fix(applications): stop again while a container restarts past its limit
- The restart limit claim sent only one stop. If that stop failed or came
  too late, the container kept restarting past the max restart count.
- Sentinel pushes and status checks now dispatch the stop again while a
  container still runs; the notification is still sent once.

Closes #10761
2026-10-27 14:40:48 +01:00
Andras BacsaiandClaude Opus 5.5 6b1dcc0c96 fix(api): return success false on access denied responses
Closes #12343

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 14:38:24 +01:00
Andras BacsaiandClaude Opus 5.5 25761e29c4 fix(team): keep member API tokens on promotion
Only revoke a member's team tokens when the role goes down. Promotions
and ownership transfers on account deletion keep the tokens.

Closes #12342

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 14:37:38 +01:00
Andras Bacsai 3873a58086 test(deployment): parse heredoc scripts in process fake 2026-10-27 12:05:38 +01:00
Andras Bacsai 8d083deffb fix(storage): stop syncing file storages on every compose parse
The compose parser queued ServerFilesFromServerJob for every volume on
each parse, and pages that only show data parse the Compose file. Each
sync also sent two SSH commands for each file.

- Queue the sync only for a compose deployment, and for each service
  resource with file storages when the service starts or deploys.
- Read the compose service names without a parse on the Domains and
  scheduled task pages.
- Check all file storages with one remote command, and stop when a
  symbolic link, a special file, or an unknown state is at a file path.
- Keep the application path in a file storage when a pull request
  preview is parsed. Preview deployments of the current parser write
  their `-pr-<id>` copies through LocalFileVolume::forPullRequest().
- Remove the unreachable file sync from the service resource page.
2026-10-27 12:04:37 +01:00
Andras BacsaiandClaude Opus 5.5 4edf987279 revert(ssh): send remote command batches in argv again
Sending SSH command batches on stdin changes how every remote command
reaches a server, which is too risky for a patch release. Move it to
next and restore the heredoc transport from before 1a2a5362a. The
shared test helpers stay because they work with both transports.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 11:11:09 +01:00
Andras Bacsai 3c34bdd49b Merge remote-tracking branch 'origin/main' 2026-10-27 09:57:37 +01:00
Aditya Tripathi 5312ea4dbc perf(metrics): ask Sentinel to bucket metric history rows
Send bucket_ms on the Sentinel metric history reads so Sentinel averages
the rows and sends far fewer of them over SSH. Older Sentinels ignore the
param and return raw rows, which Coolify still buckets and downsamples.

Also quote the history URL in the single-fetch curl command, because the
URL now has an & in it.
2026-10-27 09:54:13 +01:00
Andras Bacsai 1a2a5362ad fix(security): secure remote command secrets and clone volume data 2026-10-27 09:47:18 +01:00
Andras Bacsai bafbc2e3d3 fix(api): regenerate proxy labels when exposed ports change (#12334) 2026-10-26 19:28:18 +01:00
Andras BacsaiandClaude Opus 5.5 0a9019f738 fix(analytics): hide container tooling user agents by default (#12335)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 19:27:22 +01:00
Andras BacsaiandClaude Opus 5.5 4559d21b4c fix(api): save is_auto_deploy_enabled when creating Docker image and Dockerfile applications
Closes #12339

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 18:32:33 +01:00
Andras BacsaiandClaude Opus 5.5 e1637cbe02 fix(new-resource): render the resource search binding only on the type step
The searchResources() x-data wrapper was outside the type-step @if that
renders its script, so a direct load of a later step (for example the
PostgreSQL image picker from global search or a reload) threw
"searchResources is not defined".

Closes #12337

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 18:30:10 +01:00
Andras BacsaiandClaude Opus 5.5 ea1b701a94 fix(ports): skip the PORT mismatch warning when readonly labels are disabled
Closes #10941

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 13:24:36 +01:00
Andras Bacsai 271849c88e fix(scheduled-tasks): show the server timezone in the schedule help text
Closes #10904
2026-10-26 13:10:09 +01:00
Andras BacsaiandClaude Opus 5.5 7ca08d87f9 fix(storage): keep open preview volumes out of stale compose volumes
Closes #10855

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 13:07:58 +01:00
Andras BacsaiandClaude Opus 5.5 e822db4e71 fix(previews): build the PR commit on manual Bitbucket preview redeploys
Bitbucket Cloud has no pull request refs over git, so a redeploy without
a webhook commit checked out the base branch. Reuse the latest known
commit of the pull request, or fail the deployment when none is known.

Closes #10806

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 13:07:55 +01:00
Andras Bacsai 1017a5b307 fix(deploy): use SSH user registry credentials for host image pulls (#12216) 2026-10-26 13:00:06 +01:00
Andras Bacsai da3e98eff3 Merge remote-tracking branch 'origin/main' 2026-10-26 12:59:04 +01:00
Andras Bacsai 8bd78b3484 fix(realtime): remove orphaned legacy containers with zero replicas
Replace the inactive Soketi profile with a zero-replica placeholder so Compose
removes old coolify-realtime containers. Update packaging tests to verify the
merged service configuration.
2026-10-26 12:59:01 +01:00
Andras BacsaiandClaude Opus 5.5 4e7fdd4ac6 fix(telegram): trim bot token and chat id before sending
Closes #12323

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 12:58:02 +01:00
Andras BacsaiandClaude Opus 5.5 d6c4e773b9 feat(deployments): skip the compose build when the images match the build inputs
Compose deployments label each built image with a fingerprint of the build
settings and the resolved build-time variables. A deploy or restart reuses the
commit images when every label matches, so a runtime-only change does not
rebuild.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 12:58:01 +01:00
Andras BacsaiandClaude Opus 5.5 a3843730f8 fix(deployments): rebuild when a build secret value changes
Docker ignores secret values for the build cache, so the
COOLIFY_BUILD_SECRETS_HASH secret mount never invalidated it. Pass the
hash as a build arg and declare it in each stage instead.

Parse Dockerfile instructions so ARG lines and secret mounts are not
added inside heredoc bodies or continuation lines.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 12:56:31 +01:00
Andras BacsaiandClaude Opus 5.5 0a0d6cf075 fix(postgres): block restore scan bypasses and stop on SQL errors (#12333)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 12:54:32 +01:00
Andras Bacsai 435645ce15 fix(api): write file storage content to server on PATCH (#12248) 2026-10-26 12:54:11 +01:00
Andras Bacsai afde2cb471 fix(deployments): write generated compose file after image build (#12331) 2026-10-26 12:45:36 +01:00
Andras Bacsai 25e2eae058 fix(webhooks): enforce GitHub app signatures in local environment 2026-10-26 12:08:15 +01:00
Andras Bacsai 5d66fb719e fix(registration): time-limit first root account creation
Open root registration for ten minutes after startup, then require a Coolify restart to reopen it. Update installer credential handling and explain the setup window in the registration UI.
2026-10-26 10:49:19 +01:00
Andras BacsaiandClaude Opus 5.5 88e67cbf42 fix(new-resource): pass server ids in the resource wizard (#12327)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 10:14:45 +01:00
Andras Bacsai eeca882b82 fix(deployments): write regular deployment files when the repository has symlinks (#12324) 2026-10-26 10:03:14 +01:00
Andras BacsaiandClaude Opus 5.5 3f3fa1d758 fix(previews): deploy previews with their own environment variables (#12325)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 09:55:44 +01:00
Andras BacsaiandClaude Opus 5.5 5443d4fa5a fix(ssh): bound mux control checks and replace wedged masters (#12241)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 09:05:28 +01:00
Andras Bacsai d88b45a0d0 fix(compose): read the Compose file from Git objects (#12320) 2026-10-26 08:49:48 +01:00
Andras Bacsai 0d22b30910 fix(compose): parse mode suffixes in long-form bind targets 2026-10-26 00:01:07 +01:00
Andras BacsaiandClaude Opus 5.5 cbe734c15b fix(env): keep the value of locked environment variables on update
Closes #12299

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 23:58:51 +01:00
Andras BacsaiandClaude Opus 5.5 80ce0efe7e fix(api): use the Cloudflare client IP for allowed IPs and audit logs
Closes #12301

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 23:47:39 +01:00
Andras BacsaiandClaude Opus 5.5 0f0a1e920d fix(project): show production, staging, and development environments first
Closes #12317

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 23:47:32 +01:00
Andras Bacsai 0cd5b644bb test(routes): crawl GET pages for server errors 2026-10-25 21:46:51 +01:00