367 Commits
Author SHA1 Message Date
Andras Bacsai 717a915485 fix(logs): show fullscreen logs above the sidebar and topbar 2026-10-23 12:34:20 +02:00
Andras BacsaiandClaude Opus 5.5 95d796e922 feat(deployments): compact history beside logs with in-place switching
- Fit the embedded history to the logs height and page size to the screen
- Show status as a dot with short start time; add source, duration, and
  server as a second line; make whole rows clickable
- Switch the logs viewer to another deployment without a page load
- Use View and Export menus and the runtime logs search in the toolbar
- Export visible logs from the server with secrets hidden; redact app
  secrets in the full log download

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 12:34:08 +02:00
Andras Bacsai e5a23a1725 fix(logs): keep deployment and service menus open on updates
Use stable wire:keys and let the listbox take new options and keep its
panel position through Livewire morphs. Preview badges reuse the link
menu colors.
2026-10-23 12:09:29 +02:00
Andras Bacsai 2e7cf8633b feat(logs): pick runtime log streams from service selectors
Replace the container accordion with Deployment and Service selectors
that show one stream, merging replica containers by timestamp. The
viewer fills the page, opens in text view, keeps whitespace, and only
lets grid rows expand when the detail shows more than the row.

Based on the proposal in discussion #12176 by PhilippMolitor.
2026-10-23 11:55:44 +02:00
Andras BacsaiandClaude Opus 5.5 47bfe5e6a6 style(ui): give split action buttons 3D depth and drop logs empty icon
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 11:55:22 +02:00
Andras Bacsai 0b2e931a42 fix(ui): blend mobile sidebar branding and default FreeScout database 2026-10-22 21:46:20 +02:00
Andras Bacsai 7acfcdff24 feat(ui): reorganize resource settings and domain port editing 2026-10-22 20:26:41 +02:00
Andras Bacsai 6c6fff5d26 style(ui): use brand accents for dark-mode controls and feedback 2026-10-22 16:34:40 +02:00
Andras Bacsai 61e46da88d style(source): align dark source selection with brand colors 2026-10-22 16:04:30 +02:00
Andras Bacsai eeaeacbe3f style(ui): refine canvas layouts and rollback settings 2026-10-22 15:54:02 +02:00
Andras BacsaiandClaude Opus 5.5 dff2674466 style(sidebar): add resource menu return row and refine dark UI details
- Add a main-menu row that reopens the resource menu, with a placeholder row
- Show only the other view as an icon in the view switcher
- Remove the active tile glow and the collapsed Search frame
- Tint the dark command palette purple and whiten focused-row details
- Soften the toast edge and give the toast icon tile 3D depth
- Document the decisions in DESIGN.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 14:02:18 +02:00
Andras Bacsai ab531972d2 style(sidebar): apply dark theme styles to mobile sidebar 2026-10-22 10:08:50 +02:00
Cursor AgentandAndras Bacsai 8df39bc637 Refresh the dark dashboard around the coolLabs purple brand.
Dark mode keeps a black canvas, paints cards at #121212, and tints the sidebar purple-black. Active navigation, secondary buttons, and the view switcher use brand purple; warning yellow stays for real warnings.

Co-authored-by: Andras Bacsai <andrasbacsai@users.noreply.github.com>
2026-10-22 07:13:38 +00:00
Andras Bacsai 5fd97af0e4 style(ui): use neutral near-black dark theme surfaces 2026-10-21 21:41:22 +02:00
Andras Bacsai 8d400e3d6b fix(ui): refine service resources and settings section styling 2026-10-21 21:01:24 +02:00
Andras BacsaiandClaude Opus 5.5 8255f85a50 fix(ui): lighten dark mode and match card, table, and tile headers to the topbar
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 18:46:52 +02:00
Andras BacsaiandClaude Opus 5.5 ab71f1af61 fix(ui): align dashboard deployments heading and unify muted table headers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 18:45:49 +02:00
Andras BacsaiandClaude Opus 5.5 f227bbcb5d fix(ui): keep cards opaque over the floating dotted backdrop
- Top-level cards, empty states, and standalone wells paint their translucent tint over the page color
- Boxes inside a standalone well keep their tint in floating dark mode

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 18:23:07 +02:00
Andras BacsaiandClaude Opus 5.5 141d2c67c8 fix(ui): style wells outside a layer card
- Define the well colors on the well too, so standalone tables keep a background and border
- In dark mode, standalone wells use the card surface instead of the black well fill
- Empty states inside a well show only their centered text

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 13:52:01 +02:00
Andras BacsaiandClaude Opus 5.5 54febeffd6 feat(ui): restyle cards, sidebar, and dark surfaces
- Cards use a soft outer box with an inset well; empty states match
- Smaller sidebar icon tiles; sidebar and brand block use the canvas color with faint borders
- Darker inputs in the dark well; floating panels stay opaque
- Faint purple tint on dark surfaces, menus, and logs
- Cloudflare icon for Cloudflare Tunnel
- DESIGN.md: add a portable design language part

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 13:18:59 +02:00
22a8c09dd6 Next (#12202)
Co-authored-by: Aditya Tripathi <aditya@climactic.co>
Co-authored-by: peaklabs-dev <122374094+peaklabs-dev@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>
Co-authored-by: Abdulfetah Suudi <suudiabdulfetah@gmail.com>
Co-authored-by: Dharmveer <51308779+dharmveer97@users.noreply.github.com>
Co-authored-by: Maxwell <136101+mxswd@users.noreply.github.com>
2026-10-19 10:07:23 +02:00
e3d4411ff2 chore: merge main into release/v4.5 (#12192)
Signed-off-by: dependabot[bot] <support@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: Furox <177975472+Furox-Art@users.noreply.github.com>
Co-authored-by: johandenhollander <johan.den.hollander@finalist.nl>
Co-authored-by: João Cruz <161638790+SrJooJ@users.noreply.github.com>
Co-authored-by: Saim Hashmi <hashmisaim037@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-18 23:43:20 +02:00
Andras BacsaiandClaude Opus 5.5 7c14c0098e feat(server-transfer): run instance migration as a background job (#12180)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 22:03:45 +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 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
Andras Bacsai b31a458a51 style(ui): align floating navigation and canvas radii to 8px 2026-10-14 11:29:35 +02:00
Andras Bacsai 33ee09fa87 feat(canvas): add interactive resource views and team avatars (#12160) 2026-10-14 09:28:10 +02:00
Andras Bacsai f63726279c Merge remote-tracking branch 'origin/release/v4.5' into sentinel-metrics-sidebar-page 2026-10-13 11:57:47 +02:00
Andras Bacsai da426914ca Revert "fix(ui): prevent layout shifts with a stable scrollbar gutter"
This reverts commit 5756a4cda4.
2026-10-12 15:14:30 +02:00
Andras Bacsai 5756a4cda4 fix(ui): prevent layout shifts with a stable scrollbar gutter
Skip terminal scroll-lock padding when the browser reserves scrollbar space.
2026-10-12 15:07:09 +02:00
Andras Bacsai c54902f776 feat(logs): add text view, group log toolbar into menus, and use skeleton loaders
- Runtime logs: add a compact text view, move display options and log level filters into a View menu, move copy and download into an Export menu, and remove the extra top margin.
- Replace spinner loading cards with skeletons on the logs, dynamic configurations, proxy, TLS certificates, Docker images, environment variables, preview deployments, rollback, subscription, cloud provider, and new resource pages.
2026-10-12 14:55:37 +02:00
Andras Bacsai 1abcd3dad8 fix(forms): reduce listbox trigger height to 2rem 2026-10-07 16:57:50 +02:00
Andras Bacsai 522ed390ce feat(search): add settings search to the command palette (#12111) 2026-10-07 13:24:21 +02:00
Andras Bacsai ca203bc9fa fix(ui): keep the light custom theme rule for white surfaces
A comment in app.css contained "*/", which ended the comment early.
The minifier then dropped the next rule, so white panels in the light
custom theme were not tinted.
2026-10-06 06:59:22 +02:00
Andras Bacsai 2f3a5088ee fix(ui): offset focus ring on highlighted buttons with outline gap
Highlighted buttons use the accent color, so the flush box-shadow focus
ring looked like a stray border. Use an offset accent outline instead and
keep the regular depth shadow on focus and hover-focus.
2026-10-02 16:58:42 +02:00
Andras Bacsai c221b22503 fix(ui): clarify dialogs, use a red focus ring on error buttons, fix missing icons
- The certificate delete dialog no longer lists a proxy restart it does not
  perform, and its warning mentions the backup.
- Confirmation dialogs list actions with a dash instead of a trash icon.
- Error buttons get a red focus ring instead of the accent ring.
- Use existing icons for the TLS empty state and built-in shared variables.
2026-09-30 18:59:49 +02:00
Andras BacsaiandClaude Opus 5.5 1e9add3b42 fix(ui): show validation checkpoints as a vertical list
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 10:54:57 +02:00
badnikhil 2e2d1d321c feat(server): add Docker images page with per-image delete
Adds an Images entry to the server sidebar that lists the Docker images
stored on that server: repository, tag, image ID, age, size and the
containers using each one. Images no container references are labelled
Unused and can be deleted individually; Docker's own reported total and
reclaimable size are shown above the table.
2026-09-28 14:21:17 +02:00
Andras BacsaiandClaude Opus 5.5 e778d99e9d feat(logs): render runtime logs in a virtualized list
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 11:09:13 +02:00
Andras BacsaiandClaude Opus 5.5 a79ee909c6 chore: remove unused components and markup-only tests
- Delete Blade components, component classes, Livewire components and
  views that nothing uses after the redesign.
- Delete tests that only compare Blade/CSS source text; keep the source
  checks for authorization gates, stable wire:key values and escaping.
- Update stale tests to the current UI and behaviour.
- Update DESIGN.md to the current navigation and layout.
- Add a lesson: test behaviour, not source markup.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 00:18:16 +02:00
Andras BacsaiandClaude Opus 5.5 862e021f2d feat(compose): warn about legacy external volumes and list external volumes
Legacy Compose applications keep the old name of an external volume. The
deployment log now tells the user why and how to move to the external
volume. The storage page shows external volumes as a read-only list.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 21:09:13 +02:00
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 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 ce9347386d feat(ui): dashboard & resource UI refinements + reopen deployment log (#11783) 2026-09-18 12:31:07 +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
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