Commit Graph
3998 Commits
Author SHA1 Message Date
Andras Bacsai 70631d2a11 fix(storage): preserve and display legacy bind mount source paths
Show existing source paths as read-only fields and label bind mounts in deployment configuration. Remove the action that could convert them to named volumes.
2026-09-24 16:49:04 +02:00
Andras Bacsai 2e928d86d8 fix: show Traefik version warnings before detection completes 2026-09-24 16:37:28 +02:00
Andras Bacsai 2fb8c411e9 fix(analytics): keep setup prompt dismissed after refresh
Give the traffic analytics prompt a stable Livewire key and label the server link “Set up on”. Add a browser test for the link and persistent dismissal.
2026-09-24 15:26:08 +02:00
Andras BacsaiandClaude Opus 5.5 d1b30ce704 fix(tags): pass only the tag id when quick adding a tag
The available tags list now sends only the tag id to the Livewire
action. The component resolves the tag from the current team, so
tag names with special characters, such as apostrophes, work.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 08:26:45 +02:00
Andras Bacsai 7c86e53422 fix(service): support metadata-only deletion on unreachable servers
Add a Coolify-only deletion path, improve Docker cleanup handling, and notify teams when service deletion fails.
2026-09-23 10:50:31 +02:00
Andras Bacsai a5564320ab fix: improve terminal and realtime session handling
Commit creation was blocked because the shared Git metadata is read-only in this session. All 14 changes remain staged and ready to commit.
2026-09-22 20:17:14 +02:00
Andras Bacsai 67dd34bce7 Merge remote-tracking branch 'origin/next' into reverb-realtime-migration 2026-09-21 21:32:19 +02:00
Andras Bacsai 20a72f0f80 feat: deprecate new Docker Swarm usage and group referrers 2026-09-21 16:45:21 +02:00
Andras Bacsai 766aea933c fix(server): distinguish pending Sentinel reports from out-of-sync state 2026-09-21 12:45:28 +02:00
Andras Bacsai 1c408fb408 feat(audit): expand event tracking and remove scheduled job monitoring
Add audit levels and record user, OAuth, DNS, notification, and settings changes while removing the obsolete scheduled job monitoring UI and services.
2026-09-21 12:23:42 +02:00
Andras Bacsai a29f02fbb1 Merge remote-tracking branch 'origin/main' into pr-11443-next
# Conflicts:
#	openapi.json
#	openapi.yaml
#	resources/views/livewire/project/application/heading.blade.php
#	resources/views/livewire/project/service/heading.blade.php
2026-09-19 17:44:44 +02:00
Andras Bacsai 383a5a742f feat(servers): add configurable deployment and build roles
Introduce deployment, build, and dual-purpose server roles, with API and UI support, build-server fallback controls, and role-aware resource hosting.
2026-09-19 17:22:13 +02:00
Andras Bacsai af75492c83 feat(deployments): add team policy for build server fallback
Allow teams to choose whether deployments fall back to the deployment server when no usable dedicated build server is available.
2026-09-19 14:16:30 +02:00
Andras Bacsai 7b84e8722c fix(ui): clarify resource deployment and restart action labels
Update application and service action menus with consistent, explicit labels and align feature coverage for desktop and mobile navigation.
2026-09-18 18:57:42 +02:00
Andras Bacsai 1b0af6464f docs: clarify restart cause (#11774) 2026-09-18 14:24:48 +02:00
Andras Bacsai ce9347386d feat(ui): dashboard & resource UI refinements + reopen deployment log (#11783) 2026-09-18 12:31:07 +02:00
Andras Bacsai 9346f5f4af fix(ui): keep active settings group expanded
Ensure the group for the current page remains open despite persisted collapse state, with regression coverage.
2026-09-18 12:24:32 +02:00
Andras Bacsai ebfd4d0c1c Merge remote-tracking branch 'origin/main' into pr-11443-next
# Conflicts:
#	app/Actions/Server/StartSentinel.php
#	app/Livewire/Server/Sentinel.php
#	resources/views/livewire/project/shared/storages/all.blade.php
#	resources/views/livewire/project/shared/storages/show.blade.php
2026-09-18 12:00:04 +02:00
Aditya Tripathi ccc2a3fd57 refactor(ui): make settings filter subordinate to the global search
Two full-width, equally weighted search boxes (global ⌘K search + settings
search) sat side by side and read as duplicates. Restyle the settings one as a
quiet inline filter: borderless recessed fill instead of a bordered box, 28px
instead of 32px, 'Filter settings' instead of 'Search settings', and a subtle
focus tint. It now reads clearly as a list filter, not a second search bar.
2026-09-18 09:25:40 +00:00
Aditya Tripathi df83ea2b17 feat(ui): search results show category/parent + include sub-pages
Build a flat search index for the application settings sidebar: every page plus
its in-page sub-sections. Each result now renders with a breadcrumb (its
category, and the parent page for a sub-section), and the query matches
sub-pages too (e.g. searching 'proxy' finds Advanced > Proxy). While searching,
the accordion is replaced by this flat result list; clearing restores it.
2026-09-18 09:18:05 +00:00
Aditya Tripathi d645ce1644 feat(ui): search box on the application settings sidebar
The application settings sidebar is long, so add a client-side search that
filters the nav items as you type. While searching it flattens the list (hides
group headers/dividers and in-page sub-sections) and shows a 'no results' hint;
clearing it restores the accordion. Extends the shared settingsSidebarAccordion
Alpine helper (search/matches/hasResults) so other sidebars can opt in later.
2026-09-18 09:13:38 +00:00
Aditya Tripathi 1151449221 fix(ui): collapse non-active sub-sections + accordion on inline service nav
Follow-up to the settings-sidebar accordion. Two gaps:

- Application sidebar rendered every item's in-page sub-sections, so Advanced's
  Build/Container/Deployment/… showed while you were on General. Gate the
  nav-children on the active item so only the current page's sub-sections expand
  (database/service/server already did this).
- The service *main* configuration page renders its nav inline (the component is
  only used by service sub-pages), so it missed the accordion. Wire it up there
  too.

Extends the regression test to cover both.
2026-09-18 08:59:38 +00:00
Andras Bacsai 8a2457da93 feat(storages): support selective archive deletion for backup schedules
Allow local and S3 archives to be deleted independently when removing a
volume backup schedule, and consolidate destructive-action layouts with a
shared danger-zone component.
2026-09-17 21:20:06 +02:00
Andras Bacsai 84e80142bc fix(storages): make volume backup executions responsive on mobile
Stack execution details into labeled mobile rows and keep archive paths visible with copy actions.
2026-09-17 19:27:18 +02:00
Aditya Tripathi 7585480670 feat(ui): collapse resource settings sidebar groups into an accordion
Discussion #11833: since v4.3.19 the resource settings sidebar expands every
group by default, so reaching Backups etc. means scrolling past every section.

Restore the v4.3.18 behaviour across all grouped resource sidebars (application,
database, service, server): each group header is now a collapsible toggle, and
only the group containing the active page is open by default. Manual expand/
collapse is remembered per resource type in localStorage; an explicit collapse
sticks even for the active group. Desktop (xl) only — the mobile grid is
unchanged (display:contents wrapper + xl-scoped collapse).

- new shared Alpine provider settingsSidebarAccordion (resources/js) + app.js
- nav-section-toggle utility (chevron header)
- wired into the four grouped sidebars
- static regression test
2026-09-16 12:39:14 +00:00
Andras Bacsai 128939b062 fix(storages): remove host path from storage configuration 2026-09-16 14:24:52 +02:00
Andras Bacsai 011d8bdb2a fix(storages): keep volume actions on one line 2026-09-16 14:13:44 +02:00
Andras Bacsai 34b3318639 fix(deployments): preserve and display pull request filters
Include configured previews in pull request options and show the active filter.
2026-09-16 14:02:31 +02:00
Andras Bacsai 63f26aefd9 feat(previews): move pull request settings into a modal
Add pull request loading, refreshing, and deployment controls to the preview settings modal, simplify modal subtitles, and update sponsor listings.
2026-09-16 13:51:18 +02:00
Aditya Tripathi 2f5b03aee0 Merge remote-tracking branch 'origin/next' into coolify-dashboard-ui-refinements 2026-09-16 11:17:04 +00:00
Andras Bacsai 16b092336e feat(sentinel): track synchronization state and refresh status UI
Add sentinel waiting-state tracking, synchronization broadcasts, and restore
status handling across server and application interfaces.
2026-09-16 12:51:27 +02:00
Andras Bacsai d3a6cb2343 fix(teams): redirect team switches to the dashboard 2026-09-16 11:20:32 +02:00
github-actions[bot] 69d1e89ac2 Merge remote-tracking branch 'origin/main' into next 2026-09-16 03:14:20 +00:00
Andras Bacsai 8ab54da2ac style(ui): remove description placeholders and normalize control heights 2026-09-15 12:28:16 +02:00
Aditya Tripathi d152db3dd2 Merge remote-tracking branch 'origin/next' into coolify-dashboard-ui-refinements 2026-09-14 11:37:30 +00:00
Andras Bacsai 2c1744fbd2 Merge remote-tracking branch 'origin/next' into pr-11784-automation/sync-main-to-next 2026-09-14 13:30:17 +02:00
Andras Bacsai 6a8cee4630 Merge remote-tracking branch 'origin/next' into automation/sync-main-to-next 2026-09-14 13:26:19 +02:00
Aditya Tripathi f39fa67cf0 fix(notifications): add canGate/canResource authorization to channel buttons
Per the repo's form-authorization guideline (flagged in review), the enable/
disable and send-test buttons now pass canGate/canResource so they gate on the
policy server-side, not just the browser :disabled. The 5 channel pages pass
their $settings resource; the toggle/test Livewire methods already authorize.
2026-09-14 10:11:17 +00:00
Aditya Tripathi 28de75af32 fix: address review — minio mc build stage + settings sidebar sticky
- docker/development/Dockerfile: the minio-client build stage pulled
  minio/mc:${MINIO_VERSION} from Docker Hub (now 404), which fails a clean image
  build; repoint to quay.io/minio/mc with the same pinned tag
- shared-variables layout: drop inline xl:sticky/xl:top-26 (SettingsSidebarStickyTest
  forbids them); sticky positioning comes from the shared .application-settings-navigation
  CSS rule
2026-09-14 10:05:47 +00:00
Aditya Tripathi 7a96f0900d fix(ui): follow-up polish + extend deploy-log reopen to apps
- Fix DB URL copy button: a Blade @if inside the <x-copy-button> tag silently
  broke the component; compute the resolve expression in PHP and pass one attr
- Sidebar: show section dividers between groups in the collapsed rail
- Project cards/list + dashboard: use the app's styled tooltip (data-tooltip) on
  the env/resource icon stats, and lift them above the card link overlay so they
  actually receive hover
- Applications: show the persistent 'Deploying… View log' indicator (links to the
  running deployment's log page) in the heading, extending the reopen feature to
  all resource types
- Shared variables: use the canonical application-settings-workspace stacked,
  sticky sidebar to match other settings pages
- Environment page: add a 'Shared variables' shortcut to the dedicated page
2026-09-14 07:12:11 +00:00
Aditya Tripathi 421056ea43 feat(env-vars): split production and preview into labelled sections
Preview and production variables were interleaved in one table with a shared
Type column. Drop the Type column and head each scope's rows with a
'Production' / 'Preview deployments' section label, so the two groups read as
separate sections. Rows already carry their scope and are ordered
production-first, so this is presentation-only.
2026-09-14 05:34:48 +00:00
Cinzya 8bed5af0ae docs: clarify restart type 2026-09-13 17:33:52 +02:00
Andras Bacsai 7d11bc92f7 feat(logs): accept all for log lines and keep -1
API log endpoints and the GetLogs UI now treat `all` as unbounded
output, with `-1` remaining as a compatibility alias. MCP still
falls back to a positive default. Traefik version checks run from
CheckForUpdatesJob instead of a weekly schedule.
2026-09-13 15:25:20 +02:00
Aditya Tripathi eec61e45b4 feat(database): reopen the live start/restart log after closing it
Extend the service reopen-deployment pattern to databases:
- Track the running activity id (refreshed on the 10s poll, on broadcasts, and
  instantly when start/restart runs)
- Add reopenDeployment() to re-attach the activity monitor and reopen the dialog
- Show the shared x-deploying-indicator in the mobile status row + desktop HUD
- Clicking Start/Restart while an operation runs reopens the log instead of
  launching a duplicate

Applications already use a persistent deployment-log page, so they need no
reopen affordance.
2026-09-11 09:10:20 +00:00
Aditya Tripathi af093eea6e feat(service): reopen the live deployment log after closing it
The deploy/start log lived in a fire-and-forget dialog; closing it left the
deploy running server-side with no way back, and re-clicking Deploy only
errored 'deployment in progress'.

- Track the running activity id in the service heading (refreshed on the 10s
  poll, on broadcasts, and instantly when a deploy starts)
- Add reopenDeployment(): re-attach the activity monitor to the running deploy
  and reopen the dialog
- Show a persistent 'Deploying… View log' indicator (mobile status row +
  desktop action HUD) that reopens the live log
- Clicking Deploy/Restart while a deploy runs now reopens the log instead of
  throwing an error
- New reusable x-deploying-indicator component
2026-09-11 08:00:02 +00:00
Aditya Tripathi c046b186aa feat(ui): optimistic updates for notifications and resource actions
- Notification channels: flip enable/disable label + highlight instantly, roll back on error (all 6 channels via shared channel-actions)
- Database heading: Start/Restart show instant Starting/Restarting state + spinner, disable during the request
- Service heading: Restart now reuses the deploying state (spinner + Restarting label), matching the existing Deploy pattern
2026-09-11 06:38:48 +00:00
Aditya Tripathi 01337c0cd6 feat(ui): dashboard refinements + wire:navigate setting fixes
- Sidebar: keep nav icons at the same x-position when collapsed (muscle memory)
- Database URLs: add copy button to internal/public URL fields
- Project cards + list: compact icon stats for env/resource counts, add Created column
- Server card graph: add CPU/Memory color legend to the tooltip
- Server list: add IP address, resource count, and status dot columns
- Respect is_wire_navigate_enabled on scheduled-backups links (use wireNavigate helper)
2026-09-11 06:33:39 +00:00
Andras Bacsai fc9e61b7b4 feat(services): open resource settings in a modal with restart limits
Move service application and database settings into an embedded modal with a footer, subtitle helper, and Docker restart-count control. Accept max_restart_count on the service applications API, cap compose YAML collection aliases, and tighten status, backup, and database sidebar layouts.
2026-09-10 17:39:56 +02:00
Andras Bacsai 3f1235158d fix(domains): detect Docker Compose domain conflicts
Normalize schemes when comparing routing identities and include per-service
Compose domains in conflict checks. Show the conflicting service name and
align the service domains heading layout.
2026-09-10 14:53:01 +02:00
Andras Bacsai 3229141126 fix(domains): compact service cards at medium widths 2026-09-10 14:08:46 +02:00