Commit Graph
18266 Commits
Author SHA1 Message Date
Andras Bacsai 4c7c46e2fd fix(ui): point the MCP endpoint hint to Keys & Tokens → API Tokens 2026-10-24 22:34:30 +02:00
Andras BacsaiandClaude Opus 5.5 228f0d1704 fix(ui): show one resource status badge and anchor the Links menu to its button
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 22:27:27 +02:00
Andras BacsaiandClaude Opus 5.5 491f1179ce fix(metrics): show only running containers in the hottest containers list
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 22:18:23 +02:00
Andras BacsaiandClaude Opus 5.5 d605e5dfa0 fix(ui): load the Compose file automatically only on the General page
Other application pages still show Load compose and the disabled Deploy
button, but they do not start a load on their own.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 22:14:55 +02:00
Andras BacsaiandClaude Opus 5.5 887461ab2d fix(resources): hide deleted resources on the environment page after the redirect
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 22:12:57 +02:00
Andras BacsaiandClaude Opus 5.5 d30f582bfe fix(ui): load the Compose file on open and show a disabled Deploy until it loads
Load a missing Compose file once when an application page opens. Until it
loads, show Load compose next to a disabled Deploy button on every page.
Keep teleported tooltips keyed so Livewire morphs the form after updates.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 22:11:48 +02:00
Andras BacsaiandClaude Opus 5.5 94e70983f4 fix(ui): show sparkline tooltips below the chart so the line stays visible
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 22:03:00 +02:00
Andras BacsaiandClaude Opus 5.5 649e90ab3b fix(ui): show resource menus in the sidebar and mobile drawer, not in the page
The main sidebar shows the resource menu from lg, where it appears, and the
mobile drawer shows it too, so the page grid menu is gone. The drawer opens
on the menu of the current page again after it closes. Below xl, the resource
actions are a compact button in line with the title.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 21:58:42 +02:00
Andras BacsaiandClaude Opus 5.5 a261d89988 fix(ui): sync chart tooltips only inside the plot area and remove the heading gap
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 21:55:45 +02:00
Andras BacsaiandClaude Opus 5.5 2e03926c01 fix(dev): give ssh key directories to www-data in development
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 21:55:32 +02:00
Andras BacsaiandClaude Opus 5.5 d8d33c69ce fix(auth): hide locked and admin-only secrets in forms, compose, and the API
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 21:46:58 +02:00
Andras Bacsai 6fc14f3615 fix(auth): enforce resource permissions for stored secrets 2026-10-24 18:26:55 +02:00
Andras BacsaiandClaude Opus 5.5 bf579df036 fix(ui): show helper and button tooltips above dropdowns and the sidebar
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 18:26:36 +02:00
Andras BacsaiandClaude Opus 5.5 ff4939a06f fix(clone): copy service volume data and keep file owners when cloning
The UI service clone iterated relation builders before parse() created
the sub-resources, so no volume copy ever ran. All service clone paths
now use clone_service(), which parses first and matches volumes by
mount path. VolumeCloneJob no longer forces chown 1000:1000.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 18:25:31 +02:00
Andras BacsaiandClaude Opus 5.5 5f460c06c6 fix(previews): key docker tags by preview id so a delete cannot shift them
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 18:14:51 +02:00
Andras BacsaiandClaude Opus 5.5 f1ab9956e8 fix(sources): only list the current team's applications on a source
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 18:14:46 +02:00
Andras BacsaiandClaude Opus 5.5 bbcadbd480 fix(backups): identify the instance database by id, not by name
A user database named coolify-db was backed up as the instance database,
which targeted the wrong container. It was also hidden from the server
database list and from status updates.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 18:14:27 +02:00
Andras BacsaiandClaude Opus 5.5 d9a22ce10e fix(api): keep omitted flags when patching application env variables
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 18:14:24 +02:00
Andras BacsaiandClaude Opus 5.5 9395c415b3 fix(env): keep preview copies of locked variables locked
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 18:12:23 +02:00
Andras BacsaiandClaude Opus 5.5 386539ee30 fix(gitea): only instance admins can make a Gitea source system wide
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 18:08:14 +02:00
Andras BacsaiandClaude Opus 5.5 ffc6f4017d fix(ui): stop single dashboard cards from stretching to full width
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 18:06:54 +02:00
Andras Bacsai cf7602dfa5 fix(ui): use the danger button style for canvas remove buttons 2026-10-24 18:06:22 +02:00
Andras BacsaiandClaude Opus 5.5 c83bb4bdf9 fix(canvas): let cards move when their group is already close to another group
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 18:03:28 +02:00
Andras BacsaiandClaude Opus 5.5 ec5d11790e fix(ui): use our own dropdown for the canvas toolbar filters
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 18:02:34 +02:00
Andras BacsaiandClaude Opus 5.5 7e612422b6 fix(proxy): keep proxy status current and stop auto-start during restarts
- Refresh the navbar proxy status on the 30 s poll
- Skip Sentinel and server check auto-start while a proxy start or restart runs
- Use the StartProxy commands in RestartProxyJob, so Caddy restarts keep the
  maintenance blocks and remove the Traefik logrotate sidecar

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 18:02:17 +02:00
Andras BacsaiandClaude Opus 5.5 e964c5de2d fix(ui): show the docker cleanup schedule in three columns
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 17:58:58 +02:00
Andras Bacsai 8aed790a78 fix(migration): block server migration when the target proxy is not running 2026-10-24 17:55:11 +02:00
Andras BacsaiandClaude Opus 5.5 e4c1e1a6b3 fix(ui): keep listbox panel width after live refresh
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 14:07:02 +02:00
Andras BacsaiandClaude Opus 5.5 091fdf1ebe feat(ui): move the file browser container picker to a header dropdown
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 14:05:58 +02:00
Andras BacsaiandClaude Opus 5.5 32427a20f6 fix(ui): soften list separators and fix the page size control
- Row and section separators use a softer translucent divider token on all themes
- Page size trigger is an aligned bordered button ("10 / page")
- Pagination footer stays visible when a larger page size fits all rows
- Custom page size warns above the 100 maximum and the menu closes on select

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 14:04:43 +02:00
Andras Bacsai 4e6c0bfcb5 feat(ui): let users choose local or UTC chart tooltip times 2026-10-24 13:26:03 +02:00
Andras BacsaiandClaude Opus 5.5 c0ae50f120 fix(ui): stop the list toolbar from shifting when the page loads
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 13:25:02 +02:00
Andras BacsaiandClaude Opus 5.5 407ac50439 feat(ui): sync metric chart tooltips across charts on hover
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 13:24:57 +02:00
Andras BacsaiandClaude Opus 5.5 1527917523 feat(ui): make live refresh a toggle for any metrics and analytics range
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 13:24:52 +02:00
Andras BacsaiandClaude Opus 5.5 860b815fbb fix(ui): apply the flat style to buttons, not only the sidebar
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 12:54:36 +02:00
Andras BacsaiandClaude Opus 5.5 6f8d51008e fix(ui): move chart legends to the card header with last values
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 12:49:23 +02:00
Andras BacsaiandClaude Opus 5.5 0ad88d8c63 fix(ui): keep charts and terminal readable in custom themes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 12:37:41 +02:00
Andras BacsaiandClaude Opus 5.5 2111e95c7a feat(ui): replace native number spinners with a branded stepper
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 12:36:51 +02:00
Andras Bacsai 3b92248309 fix(webhook): match repositories under self-hosted sub-paths 2026-10-24 12:08:35 +02:00
Andras BacsaiandClaude Opus 5.5 0eb78dcf9b feat(dev): pass the host NVIDIA GPU through to the KVM dev VM
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 11:16:47 +02:00
Andras Bacsai a3712f8902 fix(deploy): stop 502 errors during rolling updates
Traefik and Caddy routes of applications now retry a failed connection
on another container, and the rolling update waits a configurable drain
time (default 5 seconds) after the new container is healthy before it
stops the old containers. The wait is skipped when no old container runs
or when the proxy labels changed, because the proxy drops a route that
two containers define differently.

Fixes #8627
2026-10-24 11:16:46 +02:00
Andras BacsaiandClaude Opus 5.5 465344f1bc fix(ui): load no favicon from domains behind HTTP basic auth
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 10:23:49 +02:00
Andras BacsaiandClaude Opus 5.5 6c270a42db fix(service): remove the "Remove from Coolify only" delete option
A normal delete now removes a resource from Coolify also when its server
is not reachable, so the separate option only left untracked containers
running. The danger zone button is gone, and the services API rejects
delete_from_coolify_only with 422 instead of ignoring it, so old clients
do not delete Docker resources they asked to keep.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 10:18:51 +02:00
Andras BacsaiandClaude Opus 5.5 73b1ad1587 fix(ui): restore the purple dark sidebar from v4.5.0
- Bring back the #120e1a sidebar with its brand wash, lavender tiles, edges,
  Search, section labels, and account menu in the default dark theme.
- Keep the neutral sidebar rules for custom themes.
- Set the Coolify preset sidebar to #1a0f2d, the color the dark sidebar shows.
- Update DESIGN.md to match.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 10:13:00 +02:00
Andras BacsaiandClaude Opus 5.5 029827db9e fix(compose): load the Compose file from inside a Git submodule
The Compose file read uses a sparse clone without a checkout, so submodules
were never cloned. Now only the submodule that contains the Compose file is
cloned, with the credentials of the clone.

Closes #11018

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 10:13:00 +02:00
Andras BacsaiandClaude Opus 5.5 e49e540ec0 fix(applications): report a failed stop instead of failing silently
- Do not ignore errors of the docker stop and rm commands, so a failed SSH call
  does not mark a running application as exited.
- Log the failure and broadcast ApplicationStopFailed; the application page
  shows an error toast.

Closes #11063

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 00:45:13 +02:00
Andras Bacsai 18f74536e4 fix(server): validate servers without a proxy
Closes #11048
2026-10-24 00:45:06 +02:00
Andras BacsaiandClaude Opus 5.5 d542f13b9c fix(docker-cleanup): keep new images of deploying and Docker Compose applications
Each Docker Compose service image now has its own retention, images used by
any container count as in use, and applications with an active deployment
keep all their images.

Closes #11069

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 00:44:43 +02:00
Andras Bacsai bb3c400459 test(previews): cover portless compose links in pull request comments
Regression test for #11065. Since v4.3.15 (#11594) preview domains are
stored without the internal port, and every deployment regenerates them
before the ready comment is posted.
2026-10-24 00:44:35 +02:00
Andras Bacsai 14cdafdbe6 fix(previews): stop the preview DNS poll from re-queuing file sync jobs
The preview Domains component parsed the compose file on every render,
also on the 2-second DNS poll. Each parse queues a ServerFilesFromServerJob,
so a new file sync ran each time a worker started the previous one.

- Parse the compose services once on mount and on save, and keep them in
  a locked property.

Refs #11062
2026-10-24 00:43:59 +02:00