Commit Graph
503 Commits
Author SHA1 Message Date
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
Andras Bacsai 719942853f fix(upgrade): explain manual reload fallback 2026-08-13 14:44:25 +02:00
Andras Bacsai 8576214a6d fix(upgrade): handle status polling after older release restarts
Treat recovered health checks and polling errors as successful completion when older target releases cannot report upgrade status.
2026-08-13 14:30:47 +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 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 4a7e77f809 Merge remote-tracking branch 'origin/main' into 11244-deprecated-docker-flags 2026-08-13 11:24:48 +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 BacsaiandGitHub 462d6af99e feat(services): add Jean Server one-click template (#11248) 2026-08-13 11:15:42 +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 7162185400 fix(metrics): convert container memory samples from bytes to MB
Sentinel stores container used memory in bytes while application and
database charts label the series as megabytes. Convert those samples
before they reach the frontend so the graph is not inflated by ~1024x.
2026-08-13 10:58:28 +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 e17c516bf2 chore(release): bump Coolify version to 4.3.2 2026-08-12 23:40:14 +02:00
Andras Bacsai bc98d52104 chore(release): bump Coolify to 4.3.1 and label workflow runs 2026-08-12 17:06:40 +02:00
Andras Bacsai 5e7ba47054 test(models): cover finished_at datetime cast 2026-08-12 16:27:33 +02:00
Andras Bacsai 08627795a5 ci(release): standardize production workflows on main
Route production builds, releases, and changelog generation through `main`, update contribution guidance for main/next branch targets, and cover the branch policy in workflow tests.
2026-08-12 13:12:55 +02:00
Andras Bacsai 12b14bbefd ci(release): support main during production branch rename
Run production builds and changelog generation from both v4.x and main while excluding both branches from staging builds.
2026-08-12 12:53:16 +02:00
Andras Bacsai 8c88f6093a chore(release): bump default version to 4.3.1 2026-08-12 12:27:08 +02:00
Andras Bacsai decf6c7a9a fix(release): preserve tags when publishing draft releases
Upgrade github-script to v8 and pass the release tag and target commit when creating and publishing releases.
2026-08-12 12:02:37 +02:00
Andras Bacsai cde9597c09 fix(release): run support image workflows on main 2026-08-11 16:35:03 +02:00
Andras Bacsai 8bf4ac9c68 fix(release): restrict production workflows to v4.x
Update release documentation and workflow coverage tests for the branch strategy.
2026-08-11 16:32:22 +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 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 8c9a7413d0 Merge remote-tracking branch 'origin/next' into feat/noindex-domains 2026-08-10 14:23:09 +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 003e44d123 Merge remote-tracking branch 'origin/next' into feat/noindex-domains 2026-08-08 11:26:20 +02:00
Andras BacsaiandGitHub f9caa5250d feat(servers): add cross-instance server migration (#11075) 2026-08-07 23:07:55 +02:00
Andras Bacsai a4f7cb723a fix(services): default celld image tag to latest
Use ${CELLD_VERSION:-latest} in the celld compose template
and regenerate service templates; update unit tests.
2026-08-07 18:17:33 +02:00
Andras Bacsai da43086a32 Merge remote-tracking branch 'origin/next' into celld-one-click-service 2026-08-07 18:01:47 +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 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 ead27ccfa6 feat(service): add Celld service template for Deno Durable Objects
Add compose template and catalog entries for Celld, with unit coverage
for template metadata and required S3/AWS env configuration.
2026-08-07 14:41:11 +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 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 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 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 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
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 BacsaiandGitHub 0b843bb07c fix(compose): normalize service-name keys for domains and env vars (#11040) 2026-08-03 23:08:56 +02:00
Andras BacsaiandGitHub 7b18777f06 feat(mcp): add resource diagnostics and deployment controls (#11000) 2026-08-03 23:08:11 +02:00
Andras BacsaiandGitHub c27a5ec41e fix(backups): pin a single bracket-free IP for mc --resolve (#11028) 2026-08-03 19:28:02 +02:00
Andras BacsaiandGitHub 3ba0e26262 fix(backups): pin all resolved addresses in one CURLOPT_RESOLVE entry (#11061) 2026-08-03 19:27:42 +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
dwiyantop 75d3bd8354 fix(backups): pin all resolved addresses in one CURLOPT_RESOLVE entry
libcurl overrides an existing host:port DNS cache entry each time a new
one is added, so one entry per address left only the last pinned. That is
IPv6 whenever the target has AAAA records, which broke every request on
hosts without IPv6. Join them into one comma separated entry instead.
2026-07-28 04:10:41 +07:00
Marvin 12033e8091 fix(backups): pin a single bracket-free IP for mc --resolve
S3 backup uploads fail when the endpoint has an AAAA record: mc parses
--resolve values with netip.ParseAddr and rejects the bracketed IPv6
form. Its resolver map also keeps only one IP per host, so emit a single
entry, preferring IPv4, without brackets.
2026-07-24 07:24:44 +02:00
Andras BacsaiandGitHub f06bacc8e0 feat(services): add Buzz one-click service template (#11020) 2026-07-23 17:25:53 +02:00
Andras BacsaiandGitHub e560bdf9e0 fix(api): secure proxy config, clone volumes, and rollback tags (#11003) 2026-07-22 14:52:11 +02:00
Andras Bacsai 6f557cf17f fix(security): enforce GitLab App authorization parity with GitHub
GitlabAppPolicy previously allowed any authenticated user to update,
delete, and create GitLab sources. Align it with GithubAppPolicy, require
Application create authorization on the private-repo wizard, and reject
OAuth callbacks from non-admins so members cannot escalate privileges.
2026-07-20 23:21:40 +02:00
Mike ChongandAndras Bacsai a26091de0a feat: self-hosted GitLab Apps OAuth integration
Adds self-hosted GitLab OAuth sources so Coolify can connect to a self-managed GitLab instance, list private repositories, clone over an OAuth token, and deploy (the GitLab counterpart to GitHub Apps).

Hardening: authenticated, one-time team-bound OAuth callback state; token redaction in deploy logs; custom host port/path kept in clone and ls-remote URLs; submodule OAuth auth; system-wide source selection. Covered by unit and feature tests.

cosigned by OpenAI Codex at M1 Max
2026-07-20 23:21:40 +02:00