Commit graph

1018 commits

Author SHA1 Message Date
Andras Bacsai
bd79f4ec91 fix(ui): refine breadcrumb search icon and header border 2026-08-16 21:10:15 +02:00
Andras Bacsai
3fe1349ac4 feat(ui): add admin navigation link for root users 2026-08-16 21:05:12 +02:00
Andras Bacsai
6ad9605734 fix(ui): improve dark-mode loading contrast and remove header borders
Use the warning accent for dark-mode loading indicators and simplify desktop navigation chrome by removing sidebar and top-bar separator borders. Add regression coverage for loading contrast and checkpoint spinner markup.
2026-08-16 21:00:33 +02:00
Andras Bacsai
5b517f21be feat(ui): add configurable page widths and searchable controls
Add full-width and centered layout preferences across the app shell and workspaces.
Replace page-size selects with dropdowns and add searchable breadcrumb switching.
2026-08-16 20:54:50 +02:00
Andras Bacsai
b976d19f25 fix(ui): improve dropdown positioning and empty backup states
Refactor dropdown behavior, add sorted resource selection to breadcrumbs, and show an empty state when no backup executions exist.
2026-08-16 19:19:04 +02:00
Andras Bacsai
e28d8ca0ff fix: handle complete empty snapshots and match dropdown trigger width 2026-08-16 18:26:40 +02:00
Andras Bacsai
9729e765b4
fix(ui): prevent floating dropdown Alpine scope errors (#11311) 2026-08-16 13:44:30 +02:00
Andras Bacsai
ead8fcd41a
fix(deployment): restore deployment log download actions (#11306) 2026-08-16 08:29:31 +02:00
Andras Bacsai
8e73149a06
fix(team): prevent danger zone source loading error (#11305) 2026-08-16 08:29:21 +02:00
Andras Bacsai
9c5020c93b fix(subscription): preserve adjustment modal state during Livewire updates 2026-08-16 08:19:42 +02:00
Andras Bacsai
bb45668a80 fix(ui): fix subscription access and mobile menu positioning
Add the subscription link for cloud team admins, anchor the mobile account menu below its trigger, and protect the subscription modal from Livewire morphing.
2026-08-16 08:02:23 +02:00
Andras Bacsai
0a35909ddf feat(ui): standardize paginated tables and responsive dropdowns
Add reusable pagination and page-size controls, improve mobile dropdown positioning, and migrate paginated views to consistent table components.
2026-08-16 00:58:23 +02:00
Andras Bacsai
c6a12d7078 feat(shared-variables): display project icons in project views
Add project icon images with fallback icons and cache-busting URLs, plus coverage for both shared-variable views.
2026-08-15 23:15:31 +02:00
Andras Bacsai
96f55e3e31 feat(dashboard): display project icons in project cards 2026-08-15 23:14:06 +02:00
Andras Bacsai
2113c0687d fix(deployment): constrain desktop logs layout and bump version
Set the fallback Coolify version to 4.3.4 and keep the deployment logs panel at a fixed desktop height.
2026-08-15 22:07:44 +02:00
Andras Bacsai
0824c91aca fix(forms): prevent reparsing partial numeric hosts 2026-08-15 20:57:26 +02:00
Andras Bacsai
76030a30d4 chore(v5): archive V5 implementation and remove runtime integration
Move V5 source, migrations, UI, scripts, and tests into documentation, then remove V5 routes, models, jobs, configuration, dependencies, and application hooks.
2026-08-15 19:13:30 +02:00
Andras Bacsai
1440d35750
fix(resources): preserve records sharing IDs across model types (#11300) 2026-08-15 18:43:20 +02:00
Andras Bacsai
81ed9a3af2
fix(sentinel): prevent restart after Sentinel is disabled (#11298) 2026-08-15 18:33:39 +02:00
Andras Bacsai
1c25b58dc8 fix(proxy): set Traefik network labels for compose services
Add the Coolify network label when no user-selected Traefik network exists, while preserving custom labels for applications and services.
2026-08-15 18:31:32 +02:00
Andras Bacsai
006b1b2b74
fix(domains): prevent search indexing header overflow (#11275) 2026-08-15 18:27:12 +02:00
Andras Bacsai
e37a8dfa8a fix(storage): test S3 connection with current form values
Preserve unsaved storage settings while persisting the resulting usability
and notification status.
2026-08-15 18:23:58 +02:00
Andras Bacsai
aed5ec3e2f docs(ui): clarify application image retention cleanup options 2026-08-15 17:59:32 +02:00
Andras Bacsai
0a6db15216 fix(backup): use shared compression for database dumps
Centralize compressor selection and apply helper-image compression to dump-all database backups.
2026-08-15 15:51:11 +02:00
Andras Bacsai
909e776fbc fix(database): allow PostgreSQL custom format backups safely
Detect custom format archives before scanning for blocked commands and tighten PostgreSQL restore command matching.
2026-08-15 15:12:59 +02:00
Andras Bacsai
60f9fdd827 fix(ui): show application links as a compact mobile badge 2026-08-15 14:04:09 +02:00
Andras Bacsai
2677e47138 fix(storage): split S3 endpoint input and persist stopped status
Persist exited status across application, database, service, and preview stop paths, and reuse the split host/port/path input for S3 endpoints with linked validation feedback.
2026-08-15 11:46:49 +02:00
Andras Bacsai
ec8a24d178 fix(environment): keep Compose self-references editable 2026-08-15 10:59:04 +02:00
Andras Bacsai
b3789d4a36 fix(ui): normalize S3 endpoints and remove duplicate config warnings
Normalize endpoints on blur and submit, link internal-target errors to settings, and target the S3 submit loading state.
2026-08-14 18:48:34 +02:00
Andras Bacsai
a257224bb7 fix(validation): improve private URL handling and error feedback
Reject link-local targets even when allowlisted, link private-target errors to endpoint settings, and tighten persistent-volume table widths.
2026-08-14 13:34:00 +02:00
Andras Bacsai
857375f69c feat(backups): add configurable CPU usage for volume compression
Add server-level compression CPU presets for volume backups and close the private key modal after saving.
2026-08-14 12:00:46 +02:00
Andras Bacsai
b2c2214336 fix(domains): keep search indexing headers on one line 2026-08-14 11:55:59 +02:00
Andras Bacsai
b3aa1fd232 feat(backups): use parallel gzip for volume backups
Add pigz to the helper image, select it when available with gzip fallback, and log the selected compressor in development.
2026-08-14 00:00:23 +02:00
Andras Bacsai
fd5eb3e0cd feat(project): add icons and improve persistent volume management
Add project icon storage and serving with local/S3 support, prevent deletion of compose-managed volumes, and optimize volume backups. Refine project and backup UI components with consistent styling and coverage.
2026-08-13 22:56:52 +02:00
BASIM NASSER A ALDAWOOD
b1d7cc11b8 fix(ui): resolve "Could not find Livewire component in DOM tree" on What's New click
The account-menu dropdown wrapped its panel, including the
settings-dropdown Livewire component, in <template x-if="open">.
The "What's New" button carries both wire:click and @click="open =
false" on the same element, so closing the menu tore the Livewire
component out of the DOM while its request was still in flight,
leaving Livewire unable to find the component to morph the response
into.

Switch back to x-show/x-cloak so the component stays mounted (just
hidden via CSS) and survives the menu-close click.

Fixes #11219

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-13 17:25:03 +03:00
Andras Bacsai
447a26568e fix(logs): preserve manual follow state and hide filtered lines 2026-08-13 15:04:01 +02:00
Andras Bacsai
6492d08136 fix(upgrade): use authenticated status polling after restart
Remove the version header from the health endpoint and use upgrade status polling to determine completion.
2026-08-13 14:23:29 +02:00
Andras Bacsai
1932673c22 feat(ui): consolidate resource heading actions 2026-08-13 14:08:33 +02:00
Andras Bacsai
5f3108b68d feat(ui): unify resource headings with responsive action menus
Add responsive overflow handling and dedicated action menus for application,
service, database, and server headings, while improving upgrade and email
settings flows and returning 404s for missing deployment environments.
2026-08-13 12:17:16 +02:00
Andras Bacsai
18c4663e0f Merge remote-tracking branch 'origin/next' into pr-10960-compose-settings-memory-crash 2026-08-13 11:31:50 +02:00
Andras Bacsai
4a7e77f809 Merge remote-tracking branch 'origin/main' into 11244-deprecated-docker-flags 2026-08-13 11:24:48 +02:00
Andras Bacsai
47c0080d3b fix(docker): log docker stop command only in local development
Log the generated docker stop command and Docker version when
running locally so developers can inspect version-aware flags.
Skip logging outside local development.
2026-08-13 11:24:08 +02:00
Andras Bacsai
e79230cf37 fix(docker): replace deprecated stop flags with version-aware ones
Store each server's Docker version and build stop commands via
dockerStopCommand() so newer Docker uses --timeout instead of
deprecated --time/-t. Also show Docker version in server details.
2026-08-13 11:17:44 +02:00
Andras Bacsai
462d6af99e
feat(services): add Jean Server one-click template (#11248) 2026-08-13 11:15:42 +02:00
Andras Bacsai
13948ac789 fix(backups): include id 0 when paging scheduled jobs
Start backup and task pagination without an id lower bound so a legacy coolify-db backup or scheduled task at id 0 is dispatched with later positive ids. Document instance sentinel ids so they are not treated as ordinary autoincrement rows.
2026-08-13 11:08:54 +02:00
Andras Bacsai
c3f485e0d6 feat(services): add Jean Server one-click template and extra fields
Register the jean-server compose template, logo, and catalog entries,
and expose token and allowed-origins settings on the service form.
Sort extra fields by sortOrder and omit empty service-name prefixes.
2026-08-13 11:00:04 +02:00
Andras Bacsai
6481ffffcf fix(upgrade): wait for new version before showing success
Expose the running Coolify version on /api/health and only treat an upgrade as complete once that version meets the target. Parse upgrade status in a shared service, start the update after the Livewire response, and keep polling when the instance is still on the old version.
2026-08-13 10:46:06 +02:00
Andras Bacsai
882e25e072 fix(ui): reserve scrollbar space and animate event multiselect
Always reserve vertical scrollbar space on base and v5 body
layouts to prevent content shift. Match notification event
multiselect panel open/close transitions to other listboxes.
2026-08-13 09:17:37 +02:00
Andras Bacsai
009b298520 chore(dev): replace Spin with docker compose for local dev
Drop Spin from docs and helper scripts; run the stack and container
exec via docker compose with docker-compose.yml and docker-compose.dev.yml.
Update firewall-delegation tests to match the new commands.
2026-08-13 09:09:05 +02:00
Andras Bacsai
402dcd7783 fix(domains): stop suggesting missing www counterpart domains
Remove buildSuggestedWwwRows from application and service domain
row builders so configured domains no longer auto-surface an
unconfigured www pair. Update ApplicationDomainsTest accordingly.
2026-08-13 08:58:10 +02:00
Andras Bacsai
37ed725dc1 fix(ui): scope resource card keys and env count hide
Limit enter/space deploy handlers to the card root with .self so nested focusable content no longer triggers deploy. Hide the environments table resource count on mobile via a stable class instead of nth-child.
2026-08-12 23:57:32 +02:00
Andras Bacsai
1f550e8fcf fix(ui): show resource domains in mobile resource list 2026-08-12 23:54:40 +02:00
Andras Bacsai
2c6208c8ce fix(ui): render domain guidance below the section header 2026-08-12 23:52:27 +02:00
Andras Bacsai
24c32c3c39
fix(backups): forward configured timeouts to the ssh timeout wrapper (#11183) 2026-08-12 23:40:55 +02:00
Andras Bacsai
e2fbd6a16e Merge remote-tracking branch 'origin/next' into fix/backup-ssh-command-timeout-next 2026-08-12 23:40:19 +02:00
🏔️ Peak
2c28c9f32a
fix(ui): healthcheck wording (#11232) 2026-08-12 23:11:02 +02:00
Andras Bacsai
fb4588be3c Merge remote-tracking branch 'origin/main' 2026-08-12 16:42:47 +02:00
Andras Bacsai
1ed6f4bac5 fix(ui): use Coollabs glow on error pages
Update the error shell background gradient to use the Coollabs color token and add a regression test.
2026-08-12 16:41:35 +02:00
Andras Bacsai
99434caba3
fix(api): regenerate basic auth labels after updates (#11196) 2026-08-12 16:40:47 +02:00
Andras Bacsai
49375adbe3 Merge remote-tracking branch 'origin/next' into fix/api-basic-auth-labels 2026-08-12 16:40:24 +02:00
Andras Bacsai
61d988745c
fix(ui): terminal page design (#11203) 2026-08-12 16:39:54 +02:00
Andras Bacsai
2793bc5cdb fix(ui): improve mobile terminal controls and target filtering 2026-08-12 16:39:13 +02:00
Andras Bacsai
0764ec425d
fix(ui): environment settings broken header & project settings header (#11204) 2026-08-12 16:30:49 +02:00
Andras Bacsai
3de6284265 Merge remote-tracking branch 'origin/main' 2026-08-12 16:26:54 +02:00
Andras Bacsai
8e6e2b099a feat(ui): dock configuration warnings in the navigation HUD 2026-08-12 16:24:01 +02:00
Nexmoe
e56905e5c0 fix(ui): remove duplicate metrics tooltip border 2026-08-12 21:01:44 +08:00
Yannick Seeger
a052b4b9e5 fix(ui): replace the project layer-2 bar with a page header
The project navbar rendered a single Resources tab that was only ever active
on project.resource.index, a page that never rendered the bar, and rendered
nothing at all without an environment, leaving project and environment
settings with no title.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 14:20:38 +02:00
Yannick Seeger
ef0e7cfa05 fix(ui): drop the empty console canvas from terminal target selection
Target selection now renders as a full-width layer card instead of a narrow
dialog floating in an empty full-height console canvas. The themed console
shell, its viewport height lock, and the console theme selector stay with an
open session, where they belong.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 14:03:22 +02:00
Andras Bacsai
4e3def11e3 fix(ui): expose environment variable settings on mobile
Collapse environment variable rows to the key and settings action on small
screens, and let the key open the corresponding details modal.
2026-08-12 11:51:42 +02:00
Andras Bacsai
8264129f03 fix(ui): raise top bar above open service actions 2026-08-12 11:32:00 +02:00
drewmt
bfdf3d3d2b fix(api): regenerate basic auth labels after updates 2026-08-12 09:13:47 +03:00
dimon1936
9794ce2686
feat(ui): show two-factor status of team members (#11186)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com>
2026-08-11 21:10:55 +02:00
Andras Bacsai
5e0e76df4b feat(release): rebuild stable images from reviewed draft releases
Add manual fix-release validation and stable image rebuilds, inject traceable development versions into SHA builds, and suppress invalid release links for development versions.
2026-08-11 16:11:13 +02:00
Andras Bacsai
d64cbda3e8 fix(profile): remove redundant 2FA enabled badge 2026-08-11 12:18:35 +02:00
Andras Bacsai
1a8a4bb5ef fix(ui): refine overlays, toast actions, and save-state feedback
Improve overlay stacking and positioning, add toast copying, standardize domain labels, and animate unsaved changes while saving.
2026-08-11 12:08:44 +02:00
Andras Bacsai
41b3ed95aa fix(ui): stabilize domain controls and unify resource navigation
Preserve optimistic listbox selections during Livewire saves, refresh service domains after updates, and align application, service, and server navigation layouts.
2026-08-11 11:28:46 +02:00
Andras Bacsai
3f47d41880 feat(ui): improve terminal mobile UX and server status feedback
Add keyboard-aware terminal controls, refine terminal layouts and navigation, surface proxy and Sentinel health warnings, and make avatar uploads update only after successful persistence.
2026-08-11 09:33:11 +02:00
Himanshu Ahuja
419106696a fix(backups): forward per-backup timeout to the ssh timeout wrapper
instant_remote_process() applied its timeout only to Process::timeout(), while the shell-level timeout wrapper around ssh always used the global 3600s default, killing long backups and scheduled tasks at 1h with ssh exit code 255. Also applies the backup timeout to the S3 upload step and makes the default configurable via SSH_COMMAND_TIMEOUT.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-10 18:28:27 -04:00
Andras Bacsai
32bf1860d4 feat(domains): add structured URL editing and responsive domain controls
Add reusable domain URL parsing and input components, expose per-domain
redirect and indexing controls, and improve application and service domain
layouts across responsive breakpoints.
2026-08-11 00:06:55 +02:00
Andras Bacsai
8cf22d7739 feat(search): preselect first result in resource picker
Add the local UI design system reference and update frontend references to it.
2026-08-10 15:17:26 +02:00
Andras Bacsai
be2a6d6d1e feat(domains): edit compose redirect direction in domain modal 2026-08-10 15:15:48 +02:00
Andras Bacsai
69ba001e21 feat(domains): add inline indexing and redirect controls
Move domain indexing and redirect settings into domain management views and include noindex changes in deployment configuration diffs.
2026-08-10 15:10:30 +02:00
Andras Bacsai
8c9a7413d0 Merge remote-tracking branch 'origin/next' into feat/noindex-domains 2026-08-10 14:23:09 +02:00
Andras Bacsai
7037633f45 feat(dashboard): refresh metrics and color server status indicators
Refresh visible dashboard metrics every minute and after backgrounding. Replace server status badges with accessible color-coded icon borders and status text.
2026-08-10 14:04:24 +02:00
Andras Bacsai
a84505efe8 style(ui): refine focus ring thickness and warning color 2026-08-10 11:52:24 +02:00
Andras Bacsai
f412b2bf0d feat(dashboard): add server metrics charts and polish UI feedback 2026-08-10 11:08:04 +02:00
Andras Bacsai
62b2fe2330 feat(ui): add volume backup storage controls and grouped navigation 2026-08-10 10:35:15 +02:00
Andras Bacsai
4ba6aa3500 feat(servers): separate connection and provisioning options
Group existing server connections separately from cloud provisioning and use a select for dedicated build server roles.
2026-08-10 10:09:03 +02:00
Andras Bacsai
faf527d554 fix(dev): support configurable hosts and light-mode surfaces
Add configurable bind addresses and Vite protocols for development networking, and improve light-mode styling for logs and unsaved-change controls.
2026-08-10 09:56:30 +02:00
Andras Bacsai
003e44d123 Merge remote-tracking branch 'origin/next' into feat/noindex-domains 2026-08-08 11:26:20 +02:00
Andras Bacsai
c0b75d04a6 feat(service): unify database and storage backups on one page
List service database schedules with volume backups, add a database
picker when creating scheduled DB backups from the service page, and
cover the unified table and create flow in tests.
2026-08-08 00:12:56 +02:00
Andras Bacsai
12b14665b5 fix(ui): use 100dvh body height and coollabs auth glow
Replace min-h-screen with min-height: 100dvh on body for correct
mobile viewport height, and point the auth shell radial glow at
--color-coollabs instead of --color-accent. Add branding CSS tests.
2026-08-07 23:31:57 +02:00
Andras Bacsai
f9caa5250d
feat(servers): add cross-instance server migration (#11075) 2026-08-07 23:07:55 +02:00
Andras Bacsai
c15e3b35fd
feat(resources): add cross-server resource migration (dev-only) (#11165) 2026-08-07 23:01:31 +02:00
Andras Bacsai
bbb46eca59 fix(ui): scroll backup tables on mobile and use icon actions
Keep backup schedule grids full-width with horizontal scroll instead of
hiding columns, and replace volume backup execution Download/Delete
buttons with compact icon actions.
2026-08-07 21:48:01 +02:00
Andras Bacsai
51561e4bee feat(profile): add uploadable avatars with local/S3 storage
Users can upload and remove profile pictures on the profile page.
Admins choose local or instance S3 storage in advanced settings.
Avatars are compressed to JPEG and served via a private cached route.
2026-08-07 21:39:56 +02:00
Andras Bacsai
e50108a905 fix(ui): prefer Compose env values and polish error pages
When a managed variable shares a Compose-defined key, show the
hardcoded Compose value as read-only and exclude it from managed
rows. Render Contact support as a button, use the collapsible
component for 419 proxy help, and style its list/code markers.
2026-08-07 18:31:19 +02:00
Andras Bacsai
47da47d8e0 fix(docker): escape Traefik www redirect replacements for Compose
Double-escape ${n} in Traefik redirectregex.replacement labels so Docker
Compose emits $${n} and Traefik still receives the correct capture groups.
2026-08-07 18:18:58 +02:00
Andras Bacsai
968ea69e7d fix(ui): show loading state on compose validate button
Disable the Validate control and show a spinner until validateCompose
finishes, then clear state via compose-validate-finished.
2026-08-07 18:05:51 +02:00
Andras Bacsai
a37f1369c8 fix(ui): skip hidden global search results in keyboard nav
Limit navigateResults to visible .search-result-item nodes under the
search root so hidden command palette entries are not focused.
2026-08-07 18:01:43 +02:00
Andras Bacsai
78fe7ee76f fix(ui): use listbox for domain redirects and key terminal canvases
Replace the service domain www-redirect native select with the shared
listbox (htmlId for stable trigger IDs) and allow dropdown overflow.
Key terminal target/session canvases for Livewire DOM branches, and
enable terminal browser debug via ?terminal-debug= plus theme logs.
2026-08-07 17:59:00 +02:00
Andras Bacsai
fff83884da fix(ui): polish create flows and terminal navigation
Open the global terminal outside Livewire navigation, clarify that
image tag and SHA256 digest are mutually exclusive, inset the GitLab
empty state, and show loading on Dockerfile create. Add regression tests.
2026-08-07 17:54:50 +02:00
Andras Bacsai
c07f66cb5e fix(ui): polish create flows for compose and GitHub repos
Use shared listbox for private-repo selection, align listbox
trigger heights with form inputs, restore compose editor spacing
and full width, and wire loading states on create/continue
actions.
2026-08-07 17:25:50 +02:00
Andras Bacsai
9c0908f0fc feat(ui): polish DB public access, backups, and nav
Gate public TCP proxy until a port is set, show loading while saving
access, and open proxy logs in process-dialog. Compact backup
execution actions, add Postgres general section anchors, and tint
resource Actions icons with warning color.
2026-08-07 17:14:43 +02:00
Andras Bacsai
7d5c9fdbe1 fix(ui): hide application domains on compose resource cards
Remove FQDN display from service resource cards in both card and list
layouts, and assert the template no longer renders resource domains.
2026-08-07 16:32:55 +02:00
Andras Bacsai
ada3ea354a feat(ui): add collapsible advanced settings and enlarge compose modal
Extract a shared forms collapsible for advanced SSH/build settings
across boarding, server creation, and application general. Support
larger modals with header actions, close the compose editor after
save via compose-save-finished, and cover the layout in tests.
2026-08-07 16:22:11 +02:00
Andras Bacsai
4926cdba0e fix(ui): mute custom theme input placeholders
Darken --theme-placeholder-color and lower placeholder opacity so
custom-theme inputs read more clearly; update AppearanceThemeTest.
2026-08-07 15:45:58 +02:00
Andras Bacsai
de4e74b4cd feat(server): fall back Sentinel URL to request host
Use the current request scheme/host when no FQDN or public IP is set,
skipping loopback hosts. Polish boarding/server create cards, optional
listbox tooltips, and cover the layout and Sentinel URL behavior in tests.
2026-08-07 15:41:39 +02:00
Andras Bacsai
28f57aafb8 fix(server): keep resources nav active and show tab loading
Use $activeMenu for Resources so Livewire updates do not clear
the sidebar highlight, and disable managed/unmanaged tabs with
spinners while containers load.
2026-08-07 15:24:41 +02:00
Andras Bacsai
8f7eb2d790 feat(server): auto-resolve Sentinel URL and polish setup UI
Ensure a Sentinel endpoint from instance FQDN/IP when enabling, use process dialogs for validation with install state, and tidy server create, boarding, metrics empty state, and log timestamps.
2026-08-07 15:21:18 +02:00
Andras Bacsai
a6f71909fd feat(ui): add Open server links on destination cards
Link primary and additional destination server cards to their server
pages via wire:navigate, and cover the markup in a feature test.
2026-08-07 14:43:04 +02:00
Andras Bacsai
8ae9c03209 feat(terminal): lazy-load targets and polish theme UI
Defer container loading with wire:init and a containersLoaded gate,
add autoStart/starting session state, extract a shared theme selector,
and restyle terminal headers, pickers, and fullscreen chrome. Cover the
new packaging and header behavior in feature tests.
2026-08-07 14:14:26 +02:00
Andras Bacsai
7c6d00c8de fix(ui): cap helper popup width and share destination status
Limit helper info popups to 320px with normal text wrapping so
content stacks vertically. Use the shared status-summary on the
application destination card instead of custom status badges.
2026-08-07 13:02:54 +02:00
Andras Bacsai
4539d1442e feat(ui): show S3 backup status and move domain action
Eager-load S3 on volume backup lists and add an S3 status column with
Configured/Unavailable/Not set badges. Surface Local vs S3 on the
persistent storages backup column. Move service resource domain links
to a globe action in the card footer, and update related tests and grid CSS.
2026-08-07 12:49:25 +02:00
Andras Bacsai
d68b198d53 feat(ui): toggle Server Timing HUD and link missing env badge
Add a local-only command palette action to show/hide the Server Timing
HUD via localStorage and a visibility event. Make the service heading
"Required variables missing" badge link to environment variables, with
tests covering both behaviors.
2026-08-07 12:35:49 +02:00
Andras Bacsai
fd6dbd5863 feat(service): warn when required environment variables are missing
Surface unset required service env vars in the configuration checker
popup and sidebar, refresh on env updates, and keep the env table
horizontally scrollable with correct managed/hardcoded pagination order.
2026-08-07 12:24:09 +02:00
Andras Bacsai
64d73b6922 fix(ui): keep helper popups in visual viewport on mobile
Position helper info popups with visualViewport bounds and
max size so they stay on screen. Ignore helper triggers in the
global icon tooltip handler via data-icon-tooltip-ignore.
2026-08-06 23:38:11 +02:00
Andras Bacsai
39197d0357 fix(ui): keep deployment history columns scrollable on mobile
Replace responsive column-hiding with horizontal scroll and a fixed
min-width grid so Status, Source, Commit, Started, Duration, and Server
stay available on small screens. Also let logs-viewer actions grow in
the primary toolbar so the status badge remains usable.
2026-08-06 21:52:56 +02:00
Andras Bacsai
e4fa2b6964 fix(ui): polish mobile layouts, error pages, and volume backups
Keep error pages full-viewport, lift the unsaved bar above the
mobile keyboard, make status/heading layouts stack cleanly on small
screens, route service DB backups to volume-backups, and tighten
volume backup grid/forms. Cover with feature tests.
2026-08-06 21:29:26 +02:00
Andras Bacsai
262ad8981a feat(ui): unify status summaries, tooltips, and resource headings
Add shared status-summary and icon-tooltip components and wire them into
application, service, and database headings, breadcrumbs, and previews.
Badge production and PR domain links, prefer helper popups below the
trigger, keep full wire targets for button loading, and cover the UI
with feature tests.
2026-08-06 18:15:58 +02:00
Andras Bacsai
6b41899d5b feat(ui): add custom theme color and polish light-mode theming
Support a custom accent theme across nav, terminal, scrollbars, and loaders.
Improve light-mode tokens, helper popup placement, and theme persistence
(including purple→custom migration). Cover with appearance and scrollbar tests.
2026-08-06 16:59:41 +02:00
Andras Bacsai
2a5197fb30 feat(ui): add shared table controls and multi-select filters
Introduce x-table toolbar/search/filter/sort/loading components and
multi-select deployment history filters with OR within groups and AND
across groups. Add live database/service status for breadcrumbs, shared
variables layout controls, logs viewer toolbar polish, and infrastructure
list filter consistency. Document patterns in UI_REDESIGN.md and cover
with feature tests.
2026-08-06 15:37:30 +02:00
Andras Bacsai
66b202adfe feat(ui): restyle public access domains summary
Show configured domain count in a bordered card with helper copy and a
Manage link, and update the feature test assertions to match.
2026-08-06 14:30:06 +02:00
Andras Bacsai
0be13113d1 refactor(application): extract status and internal access components
Move internal hostname loading and breadcrumb status into dedicated
Livewire components with live refresh. Merge public/internal access
into one Access section, bind Enter to save on the unsaved bar, and
drop x-teleport wrappers from popup and global search.
2026-08-06 14:29:25 +02:00
Andras Bacsai
a6ab360ac2 fix(ui): gate copy button on clipboard API support
Only show the copy control when isSecureContext and clipboard.writeText
are available, and style the empty internal hostname state as a readonly
input to match adjacent fields.
2026-08-06 13:58:33 +02:00
Andras Bacsai
9fd2a21f24 fix(domains): close edit modal after save and drop Lima seeds
Dispatch edit-domain-saved so Alpine closes the domain edit modal,
wire Save to updateDomain, and force white active log toolbar text in
dark mode. Seed railpack examples on the local Docker destination only
and remove Lima servers, environments, and V5DevLimaSeeder.
2026-08-06 13:45:19 +02:00
Andras Bacsai
bb83c1e3be feat(ui): polish domains UX and dark-mode loading accents
Group service domain tables with inline redirect controls, live-save
redirects without full refreshes, and only auto-pair www hosts when a
www redirect is active. Align helper tooltips, server-timing HUD, and
loading spinners with dark-theme accents; default theme-color to dark.
2026-08-06 13:18:46 +02:00
Andras Bacsai
232b999cc9 fix(ui): improve tooltip a11y and settings select layout
Make button and helper tooltips keyboard-focusable with ARIA roles,
close helper popups on outside pointer/focus leave, reserve select
chevron padding, rotate DNS chevron when open, and re-key the service
domain list after row changes.
2026-08-06 08:21:02 +02:00
Andras Bacsai
4f966e3759 fix(ui): normalize service logos and fix template icon fallbacks
Map svg/ logo paths to public svgs/, fall back when files are missing,
and tighten hardcoded database logo viewBoxes on the new-resource select page.
2026-08-05 23:31:27 +02:00
Andras Bacsai
bdb367555d feat(ui): unify brand accents and polish shared controls
Standardize highlighted buttons, selected controls, and loading
indicators on coollabs accent colors; improve light-mode log toolbar
styling; enhance small popups with compact/icon modes; and align
navbars, helpers, and related layouts with matching tests.
2026-08-05 22:34:56 +02:00
Andras Bacsai
8e57a9ab6b feat(ui): align auth pages to shared shell and truncate team names
Move email verification and team invitation into x-auth.shell with
shared guidance/alert patterns. Truncate long team names in the mobile
header switcher so actions stay visible. Cover both with markup tests.
2026-08-05 21:35:13 +02:00
Andras Bacsai
4d35c63d89 feat(ui): show internal hostname and densify config UI
Add an application Internal access section that loads the running
container hostname (skipped for Compose apps), densify configuration
diff and popup-small defaults, dock the server-timing HUD into the
mobile top bar, restyle the 2FA challenge with the auth shell, and
enforce 16px mobile form fonts to prevent iOS zoom.
2026-08-05 21:24:25 +02:00
Andras Bacsai
cd62012ff8 fix(ui): reverse collapsed sidebar footer and polish server filter
Use flex-col-reverse when the sidebar is collapsed, apply the shared
input focus class on the server filter field, and mark the selected
server with a check-circle icon. Update navbar layout tests.
2026-08-05 20:28:20 +02:00
Andras Bacsai
ec165412c3 feat(ui): dock resource actions in top bar, user menu in sidebar
Teleport application/database/service heading actions into a fixed
#resource-action-hud-slot so they no longer overlay page content.
Render the account menu in the sidebar footer (with collapse-aware
layout) instead of the header, and drop the project card hover arrow.
2026-08-05 20:17:21 +02:00
Andras Bacsai
85613b01ba feat(ui): expand server sidebar and extract status summary
Move proxy, sentinel, resources, and terminal into the server sidebar
with nested routes and icons; extract navbar status into a shared
status-summary component; add full-width service links and compact
loading support.
2026-08-05 19:54:48 +02:00
Andras Bacsai
d6db943453 feat(ui): OS-aware search shortcuts and mobile settings titles
Show ⌘K or Ctrl+K by platform in the sidebar and command palette.
Add mobile-only section headers and descriptions on settings layouts.
2026-08-05 18:26:24 +02:00
Andras Bacsai
5de6f97256 feat(ui): unify resource nav sidebars and polish project layouts
Extract application/database/service configuration sidebars and
unified headings; improve clone-to-environment, embedded deployments,
storage actions, OAuth icons, terminal, and shared form components.
2026-08-05 17:56:59 +02:00
Andras Bacsai
2291c3fa1c feat(ui): unify team, security, and notification settings layouts
Extract shared settings-layout components and a dedicated team
danger-zone page. Enable modal editing for security resources,
polish OAuth/API-token controls, and align notification and
service configuration UI with the new navigation patterns.
2026-08-05 16:24:31 +02:00
Andras Bacsai
5842d77b81 feat(volume-backups): add service backup UI and polish layouts
Add dedicated service volume-backup Livewire pages and routes, wire
shared storage backups for services, and pass S3 trusted hosts into
MinIO resolve options. Also refine breadcrumbs, sticky sidebars,
destination/GitHub layouts, resource filters, and login recovery link.
2026-08-05 15:15:50 +02:00
Andras Bacsai
0312cc8ffb feat(ui): polish email modal, search loading, and volume tables
Move profile email change into a modal with Alpine focus/close handling,
show a loading overlay during command-palette navigation, and adjust
volumes/config-diff grids plus related service/storage UI. Cover with
feature tests for search, profile, storage, and domains.
2026-08-05 14:07:19 +02:00
Andras Bacsai
a7a06aa6c8 feat(ui): polish domains, storage, env vars and resource nav
Improve project resource UIs: sort domains by DNS failure, stop re-adding www pairs on refresh, lazy-load storage tabs with counts, tighten env-var tables, keep application tabs active across Livewire polls, unify database type labels, and update related CSS/JS and tests.
2026-08-05 13:50:11 +02:00
Andras Bacsai
dbc6f5e08c fix(realtime): force-WS option and polish connection popup UI
Add PUSHER_FORCE_WS so Echo/Pusher can prefer plain WebSocket
transports, redesign the real-time connection warning popup, and
give copy-button inputs durable right padding in settings forms.
2026-08-04 19:36:36 +02:00
Andras Bacsai
1bb54c0ca1 feat(ui): scrollable resource tabs and railpack default
Add a shared resource-heading-tabs scroller with overflow chevrons,
wire it into resource/server navbars, keep links menus outside overflow,
and default new git apps to Railpack instead of Nixpacks.
2026-08-03 23:55:34 +02:00
Andras Bacsai
8ae56587d5
feat(ui): Shadow UI redesign, domain management, and DNS autoconfigure (#11119)
Co-authored-by: ShadowArcanist <162910371+ShadowArcanist@users.noreply.github.com>
2026-08-03 23:11:54 +02:00
Andras Bacsai
0b843bb07c
fix(compose): normalize service-name keys for domains and env vars (#11040) 2026-08-03 23:08:56 +02:00
Andras Bacsai
7b18777f06
feat(mcp): add resource diagnostics and deployment controls (#11000) 2026-08-03 23:08:11 +02:00
Andras Bacsai
5b370713c3 fix(sources): prevent 500 when deleting GitLab/GitHub apps
After delete, Livewire still re-renders the source change view (modal
$refresh / morph). Policy @can checks then call isAdminOfTeam() with a
null team_id and throw a TypeError (HTTP 500) before the redirect.

Guard null team_id in GitlabAppPolicy and GithubAppPolicy, clear the
Livewire model after delete, and skip @can when the model is gone.
2026-08-01 18:34:38 +02:00
Andras Bacsai
e560bdf9e0
fix(api): secure proxy config, clone volumes, and rollback tags (#11003) 2026-07-22 14:52:11 +02:00
Andras Bacsai
3a863378b1 fix(gitlab): hide source secrets from unauthorized users
Only persist the system-wide setting during instant saves, preventing
unvalidated source details from being stored.
2026-07-21 22:11:25 +02:00
Andras Bacsai
aeeb2665cd feat(github): add GitHub App connection testing 2026-07-21 21:54:15 +02:00