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>
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>
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>
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>
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>
- 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>
- 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>
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
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>
- 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>
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>
- 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>