2789 Commits
Author SHA1 Message Date
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 e2e2d4010b fix(deployments): trim remote command outputs before processing
Normalize saved command output for reliable status and metadata handling, and bump the Coolify version to 4.3.23.
2026-09-18 15:34:50 +02:00
Andras Bacsai 23f24f8425 feat(api): expose runtime logs for preview deployments (#11884) 2026-09-18 14:41:55 +02:00
Andras Bacsai 19949a6f6f feat(scheduling): persist and claim scheduled job occurrences
Add database-backed schedule states and deliveries so distributed schedulers publish each occurrence once, queue jobs claim executions atomically, and stale occurrences are cleaned up.
2026-09-18 13:56:40 +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
Aditya Tripathi faca466cd6 fix(metrics): align fleet series by time bucket, harden fleet page inputs
Address review findings on the fleet metrics page.

Data correctness:
- bucket raw Sentinel samples into epoch-aligned windows (5m/30m/2h per range)
  and average them, replacing per-server LTTB. Every server now reports the
  same bucket timestamps, so the fleet sums add up point by point instead of
  zigzagging between servers (and RX+TX really combine)
- keep only the root mount in disk history, matching HasMetrics::getDiskMetrics
- leave sparkline gaps as null instead of 0, so absent samples read as gaps

Robustness:
- normalize containerMetric in mount()/updatedContainerMetric(), so
  /metrics?cmetric=foo no longer throws an undefined array key
- include the server uuid in the container row wire:key; system containers
  share one Sentinel id across servers
- round the range start to the minute so the 60s history cache can hit
- cap the Sentinel curl with --max-time 10, so one hung request cannot stall
  the serial per-server loop

UI:
- pass the spark time axis on first paint, so tooltips no longer show 1970
- show the active series name (RX/TX) in the server network chart tooltip
2026-09-18 07:44:22 +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 ab436942c9 feat(metrics): polish fleet + server metrics UI/UX
Refine the /metrics fleet page and align the per-server metrics page with it.

Fleet overview:
- add live sparklines to the CPU/Memory/Disk/Network KPI tiles (shared axis,
  capped to ~40 points per sparkline)
- fill the Servers online + Containers tiles (fleet-health bar, hottest
  container) so all six tiles read as one system
- scope-aware labels: drop the "Fleet" prefix and helper copy when a single
  server is selected

Trend charts:
- hero layout: CPU spans full width, the other four form a 2x2 grid
- apply the same hero layout + skeleton to the per-server page for consistency

Hottest containers table:
- add a rank column and a per-row magnitude bar scaled to the busiest container
- fix a leaked Blade @break directive that rendered literally and forced
  horizontal scroll on the Network tab
- keep the value column a fixed width so bars align across rows

Live refresh:
- add analytics-style loading feedback to the range tabs and server filter
- stable wire:key on table rows + width transitions on bars so data glides
  on live refresh instead of snapping

Generalize the shared _sparkline partial (optional color/label/format) so it
serves non-traffic metrics without changing analytics behaviour.
2026-09-17 06:30:59 +00:00
Andras Bacsai 054c560cbd fix(deployments): preserve whitespace in saved command output (#11466) 2026-09-16 17:34:51 +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
Andras Bacsai ac1123ec56 fix(dns): fall back to system resolver (#11811) 2026-09-16 13:38:46 +02:00
Andras Bacsai 1b842090ad fix(previews): split compose domains into Traefik labels (#11812) 2026-09-16 13:33:29 +02: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 e1bcf1fb86 ci: notify Discord after image builds 2026-09-16 11:26:35 +02:00
Andras Bacsai d3a6cb2343 fix(teams): redirect team switches to the dashboard 2026-09-16 11:20:32 +02:00
Aditya Tripathi 6b0c97211a fix(metrics): downsample history, re-rank containers without refetch, add live refresh 2026-09-16 09:18:05 +00:00
Aditya Tripathi f3fdee90da feat(metrics): add disk/network/load charts to the per-server metrics page 2026-09-16 08:43:37 +00:00
Aditya Tripathi 9fced09bd1 fix(metrics): div-grid tables, chart initial render, metrics skeleton, graph icon 2026-09-16 08:39:14 +00:00
Aditya Tripathi fbce977dbf test(metrics): assert KPI tiles, stale badge, and container toggle render 2026-09-16 08:07:01 +00:00
Aditya Tripathi 5273a4c035 feat(metrics): build and dispatch fleet trend chart payloads 2026-09-16 08:01:11 +00:00
Aditya Tripathi fb021c3d9d feat(metrics): populate fleet KPIs, server rows, and container ranking 2026-09-16 07:58:55 +00:00
Aditya Tripathi ba8ed4e8fb feat(metrics): add SentinelMetricsClient with graceful degradation 2026-09-16 07:56:44 +00:00
Aditya Tripathi bc3ec590d0 feat(metrics): add bucket series merge and container ranking 2026-09-16 07:55:50 +00:00
Aditya Tripathi 30aadf0367 feat(metrics): aggregate fleet KPIs with weighted math 2026-09-16 07:55:29 +00:00
Aditya Tripathi f950f9058b feat(metrics): add pressure threshold helper 2026-09-16 07:54:57 +00:00
Aditya Tripathi dbcef807ae feat(metrics): add reachable /metrics fleet page skeleton 2026-09-16 07:54:34 +00:00
github-actions[bot] 69d1e89ac2 Merge remote-tracking branch 'origin/main' into next 2026-09-16 03:14:20 +00:00
Andras Bacsai ede9d8417a build(minio): use packaged mx client in development images 2026-09-15 23:00:45 +02:00
Andras Bacsai 113a2f229d fix(restarts): reset legacy restart limits during migration
Normalize existing resources with the old restart limit defaults so restart limits remain opt-in.
2026-09-15 13:28:50 +02:00
Andras Bacsai ab30f95ad9 feat(restarts): make resource restart limits opt-in
Default restart limits to zero for applications, previews, and services, and bump the Coolify version to 4.3.21.
2026-09-15 12:58:59 +02:00
Andras Bacsai 8ab54da2ac style(ui): remove description placeholders and normalize control heights 2026-09-15 12:28:16 +02:00
Andras Bacsai 776c56f947 fix(helper): hide deployment details unless explicitly requested 2026-09-15 11:38:33 +02:00
github-actions[bot] 02ab8db270 Merge remote-tracking branch 'origin/main' into next 2026-09-15 03:14:58 +00:00
Andras Bacsai 065ca9c861 fix(helper): prefer newer fetched helper version
Use a CDN-fetched helper version when it is newer than the bundled
version, while ignoring stale stored versions.
2026-09-14 20:50:16 +02:00
Andras Bacsai 22fbbd74ff fix(sentinel): restore hourly version checks for enabled servers
Dispatch Sentinel checks hourly for eligible servers, including healthy
installations, while continuing to exclude build servers.
2026-09-14 15:43:52 +02:00
github-actions[bot] b903def71b Merge remote-tracking branch 'origin/main' into next 2026-09-14 11:33:22 +00:00
Andras Bacsai b692b27b4e chore(docker): pin AIStor MinIO client release 2026-09-14 13:32:30 +02: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