2179 Commits
Author SHA1 Message Date
Andras BacsaiandClaude Opus 5.5 9809d6b445 fix(service): connect containers to the predefined network before they start
Create the containers with --no-start, connect them to the destination
network, then start them. A container that crashed before the late
connect was restarting, the connect failed silently, and it never
joined the network.

Closes #11371

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 21:07:52 +02:00
Andras Bacsai 0607705d70 fix(teams): keep switched team when concurrent requests save the session
Closes #11733
2026-10-16 21:07:00 +02:00
Andras Bacsai 12a8fb83fd fix(backups): show exact execution times in backup tables
Closes #11316
2026-10-16 21:05:38 +02:00
Andras BacsaiandClaude Opus 5.5 a5acf81751 fix(scheduled-tasks): stop 404 after deleting a scheduled task
The executions list polled with the task stored as a model, so a poll
after the delete failed to load it and showed a 404. Load the task by id
on each request and skip the refresh when it is gone. Return true from
delete so the confirmation modal does not refresh the deleted task.

Closes #11814

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 00:32:13 +02:00
Andras Bacsai 1f08c62564 Merge remote-tracking branch 'origin/main' 2026-10-16 00:27:17 +02:00
Andras BacsaiandClaude Opus 5.5 ea483d179b feat(settings): add Detect button for instance public IPs
Closes #11802

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 00:24:13 +02:00
Saim Hashmi d712afbc04 fix(media): stop building unauthenticated public URLs for S3-compatible avatars/icons (#11865) 2026-10-16 00:18:36 +02:00
Andras BacsaiandClaude Opus 5.5 70d4dad494 fix(settings): keep manually set instance public IPs on restart
Closes #11802

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 00:16:20 +02:00
Andras Bacsai f5ead3ed43 fix(mcp): enforce allowed IPs on the MCP endpoint
Closes #11881
2026-10-15 23:41:17 +02:00
Andras Bacsai 12fd9e448b fix(upgrade): retry rate limited image pulls and spread auto updates
Closes #11890
2026-10-15 23:36:47 +02:00
Andras Bacsai d60d3a5b9d fix(service): replace removed MinIO images with pgsty/silo
Closes #11975
2026-10-15 23:32:06 +02:00
Andras Bacsai 0236d32d28 fix(backups): stop mc pipe panic in S3-only volume backups
The mc release in coolify-helper 1.0.17 panics on `mc pipe --quiet`.
Drop the flag and keep the progress bar out of failure messages by
printing only real errors and the last progress frame.

Closes #11995
2026-10-15 23:24:36 +02:00
Andras Bacsai 1d03609497 Merge remote-tracking branch 'origin/main' 2026-10-15 23:16:51 +02:00
Andras Bacsai bcf4663f0c fix(domains): resolve server hostname to IP for sslip.io domains
Closes #12009
2026-10-15 23:15:30 +02:00
johandenhollanderandClaude Opus 5.5 c79f48b6b8 fix(previews): delete compose preview storage records on cleanup (#12006)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 23:13:44 +02:00
Andras Bacsai 4294856685 fix(api): apply redis_password and instant_deploy on database update 2026-10-15 23:05:19 +02:00
Andras Bacsai 25b554996b fix(api): accept dockerfile when updating an application
Closes #12016
2026-10-15 23:05:19 +02:00
Andras Bacsai 04274a3c16 Merge remote-tracking branch 'origin/main' 2026-10-15 23:00:46 +02:00
Andras Bacsai 8f9c6d10a7 fix(ssh): reap mux orphans by socket ownership, not file existence
Closes #11883
2026-10-15 22:59:02 +02:00
johandenhollanderandClaude Opus 5.5 1464b751b1 fix(webhooks): clean up closed GitLab MRs after target branch changes (#12012)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 22:55:06 +02:00
johandenhollanderandClaude Opus 5.5 e02f932a34 fix(webhooks): clean up closed Bitbucket PRs after destination branch changes (#12008)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 22:55:00 +02:00
johandenhollanderandClaude Opus 5.5 d0dff5b129 fix(webhooks): clean up closed Gitea PRs after base branch changes (#12013)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 22:54:54 +02:00
Andras Bacsai f9df974069 fix(api): accept connect_to_docker_network when creating services
Closes #12014
2026-10-15 22:52:05 +02:00
Andras Bacsai 7553608a3c fix(api): accept github_app_uuid when updating an application
Closes #12016
2026-10-15 22:49:32 +02:00
Andras Bacsai f8eb6f725e test(source): cover deleting an incomplete github app
Closes #12017
2026-10-15 22:49:07 +02:00
Andras Bacsai 0c027881ef fix(api): honour force_domain_override for docker_compose_domains on create
Closes #12031
2026-10-15 22:36:38 +02:00
Andras Bacsai bd87baa690 fix(cloudflare): drop 10s timeout from tunnel health check command
Remove the explicit 10-second timeout from the cloudflared health check so
it uses the default remote process timeout. Add a feature test confirming
the health check runs with sudo on non-root servers, and that the server is
marked as using a Cloudflare tunnel with its IP set to the SSH domain.
2026-10-15 22:31:25 +02:00
Andras BacsaiandClaude Opus 5.5 783a103d97 fix(sentinel): start sentinel on servers with a userns-remap daemon
Closes #12168

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 22:31:04 +02:00
Andras BacsaiandClaude Opus 5.5 7466da12a2 fix(git): accept ssh:// repository URLs with custom ports
The repository URL rule rejected ssh://user@host:port/path, so deploy-key
resources on servers with a custom SSH port needed a manual URL edit after
creation. Accept ssh:// URLs and keep them unchanged for deploy keys so the
port reaches the clone. Rename scpStyleGitUrlToHttps to sshGitUrlToHttps and
let it convert ssh:// URLs too, so public flows, repository links and GitHub
App repository slugs handle them.

Closes #12161

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 22:30:26 +02:00
Andras Bacsai c82cac626f fix(volume-backups): skip containers removed during the stop-during-backup scan
Closes #12167
2026-10-15 22:26:44 +02:00
Andras BacsaiandClaude Opus 5.5 667ae3cdcb fix(docker-cleanup): remove old Coolify images on Docker 29
Remove old helper, realtime and sentinel images by name with --format
instead of parsing the default table, which changed in Docker 29. Also
remove unused images pulled by digest.

Closes #12148

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 22:25:21 +02:00
Andras Bacsai 5696d404c6 fix(events): keep DockerCleanupDone broadcast under Reverb message size
Closes #12166
2026-10-15 22:24:43 +02:00
Andras Bacsai 366736b460 fix(github): deploy same-repo PR previews regardless of author association
GitHub reports team-granted and private org members as CONTRIBUTOR or
NONE, so their same-repository PRs were silently skipped when public PR
deployments were off. A same-repository branch already requires push
access, so gate only on fork status, treat an unknown head repository as
a fork, and log skipped fork PRs.

Closes #9271
2026-10-15 22:09:35 +02:00
Andras BacsaiandClaude Opus 5.5 00678a12f0 fix(deployments): retry transient GitHub token and clone failures
Retry the installation token request on GitHub 5xx and connection errors,
and report the HTTP status when GitHub sends no error message. Retry the
repository import when SSH drops the connection (exit code 255), after
stopping the interrupted clone and removing the partial checkout.

Closes #8004

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 22:06:57 +02:00
Andras BacsaiandClaude Opus 5.5 19430b461a fix(github): check push watch paths against the net change of the push
Closes #10937

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 22:06:30 +02:00
Aditya TripathiandAndras Bacsai 7e077d9501 feat(metrics): sortable tables and one-click enable on the Metrics page (#12162)
Co-authored-by: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com>
2026-10-15 15:30:58 +02:00
cf6350e665 feat(analytics): city-level traffic analytics, sortable tables, lighter globe (#12158)
Co-authored-by: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 15:24:06 +02:00
Andras Bacsai 2db26e88ab fix(jobs): stop notifying on transient CDN failures in version checks
CheckHelperImageJob now logs a warning and returns when the versions
endpoint fails instead of sending an internal notification and
rethrowing. The next scheduled run retries. PullTemplatesFromCDN also
no longer sends internal notifications on non-success responses or
exceptions; it still logs them.

Add tests checking that the stored helper version is kept and that no
notification is sent when the CDN is unavailable.
2026-10-15 15:20:57 +02:00
Andras Bacsai 2c973d68c4 fix(github): paginate PR files for watch paths and reuse installation tokens
- Fetch every page of pull request files so watch paths match PRs with more than 30 files.
- Deploy the preview and log a warning when the changed-file list is unknown (API error or truncated compare list).
- Log when watch paths decline a preview deployment.
- Keep the GitHub App installation token in memory per instance, so a deployment requests one token instead of 3-5.

Closes #12169
2026-10-15 14:45:45 +02:00
Andras BacsaiandClaude Opus 5.5 5f78e3dfb3 fix(settings): stop saving read-only credentials from client input
Instance backup settings, started ClickHouse/KeyDB/Dragonfly databases,
and destinations saved read-only fields back to the database, so a
password manager autofill could overwrite stored credentials.

Closes #12173

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 14:23:06 +02:00
Andras Bacsai e071b11b7b fix(sentinel): push local Sentinel to coolify:8080 for any host gateway URL
Closes #12171
2026-10-15 14:20:38 +02:00
Andras Bacsai a1d27ae6da fix(terminal): allow container terminal for degraded services
Load the running containers of a service even when the service status is
degraded, instead of blocking the whole terminal. Also respect the server
terminal setting for service databases.

Closes #12174
2026-10-15 14:14:44 +02:00
Andras Bacsai 0a567cb8e7 feat(backups): refresh backup views live on team channel events
- Refresh application, database and volume backup lists on BackupCreated
- Refresh backup execution, edit and service resource views on
  ServiceStatusChanged as well as ServiceChecked
- Hide the deployments counter when only the current page's application
  is deploying, since its heading already shows "Deploying…"
- Show storage section shortcuts in the service configuration sidebar
- Drive server sidebar Sentinel/Security active state from activeMenu
  and activeSubMenu instead of route matching
- Start the app sidebar expanded for new users
- Drop a column from the backup executions table grid and adjust the
  responsive breakpoints
- Update the related feature tests
2026-10-15 14:10:14 +02:00
Andras Bacsai 4f32548e09 feat(tags): connect resources to a tag from the tag page
Add a "Connect to resources" modal to the tag show page for small
screens, where the tags canvas is hidden. A new toggleResource action
attaches or detaches the tag on a team resource after an authorization
check, then refreshes the tag's applications and services.

Also improve responsive layouts:
- Wrap section headings, project/environment toolbars and view toggles
  on narrow screens; keep modal headers from shrinking.
- Move the environment settings link to an icon next to the environment
  name and link the project name back to its environments.
- Group project icon, name and description into one "Project details"
  form with an unsaved-changes bar.
- Show dashboard "view all" links for projects and servers only when
  there are more items than the dashboard limit.
2026-10-15 13:19:18 +02:00
Andras Bacsai fdd69977a4 feat(canvas): show empty environments as placeholder cards
Environments without resources now appear as placeholder cards on the
project, team projects and server canvases. They sit in the zone that
holds most of their project's cards, or in a new "Empty environments"
zone when there is none. A new EmptyCard component renders them.

- Project canvas: admins can move groups and cards, and the moves are
  saved on their environment canvas. Environments are ordered by id.
- Server canvas: admins can move single cards as well as groups.
- Shared variable canvas: built-in COOLIFY_SERVER_UUID/NAME variables
  and their links are hidden on server scope.
- Main nav: resource menus register through registerMainNavContext()
  with depth levels (#main-nav-context-{depth}). Back goes one level
  lower, and Back at depth 0 returns to the main menu.
- The deploy canvas state, styles and controls are simplified, and the
  related sidebar, navbar and dashboard views are updated.

Tests are added or updated for the canvases and the main nav resource
menus.
2026-10-15 08:46:44 +02:00
Andras Bacsai fa1895c99a feat(dashboard): add canvas view with active deployment overlay
Add a /dashboard/canvas page that renders every team server with its
resources and their running or queued deployments, backed by a new
ServerCanvasController::dashboard endpoint and a per-server usage
endpoint for zone headers. The dashboard remembers the list/canvas
choice and each section (projects, servers) its own table/grid view.

- Show Deploying/Queued pills on canvas cards and a foldable recent
  deployments panel; add shared CanvasControls component
- Allow backup downloads from the server host via the S3 download
  storage (PrepareFileDownloadJob accepts a null container)
- Extract backup toggle/run actions into ManagesDatabaseBackup and
  surface them in backup execution headers; merge S3 and retention
  sections into the general backup settings
- Move deployments indicator to the top bar and add a main nav
  resource menu with submenus; simplify breadcrumbs and settings
  layouts
- Add shared variables overview canvas and scheduled task modals
- Add feature tests for dashboard canvas, view modes, navbar
  submenus, backup S3 downloads and scheduled task modals
2026-10-14 23:55:28 +02:00
Aditya TripathiandAndras Bacsai fe0b038f3c feat(files): add native file browser for applications, services and databases (#11518)
Co-authored-by: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com>
2026-10-14 14:32:44 +02:00
6b07f03107 feat(terminal): interactive console mode for containers (docker attach) (#11538)
Co-authored-by: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com>
Co-authored-by: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: rosslh <ross@rosshill.ca>
2026-10-14 14:32:02 +02:00
github-actions[bot] 70f7744660 Merge remote-tracking branch 'origin/main' into release/v4.5 2026-10-14 12:29:51 +00:00
Andras Bacsai 23a22e7970 fix(sources): restrict system-wide Git sources to instance admins (#12164) 2026-10-14 14:07:54 +02:00