Commit graph

16617 commits

Author SHA1 Message Date
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
c27a5ec41e
fix(backups): pin a single bracket-free IP for mc --resolve (#11028) 2026-08-03 19:28:02 +02:00
Andras Bacsai
3ba0e26262
fix(backups): pin all resolved addresses in one CURLOPT_RESOLVE entry (#11061) 2026-08-03 19:27:42 +02:00
Andras Bacsai
5c49dfab88
fix(sources): prevent 500 when deleting GitLab/GitHub apps (#11105) 2026-08-01 18:50:22 +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
940571e16f
feat(services): shared Redis cache for service templates (#11094) 2026-07-30 22:27:25 +02:00
Andras Bacsai
a460a399d7 chore: prepare for PR 2026-07-30 21:15:39 +02:00
Andras Bacsai
5711930189
fix(domains): allow clearing resource domains without TypeError (#11083) 2026-07-29 16:49:43 +02:00
Andras Bacsai
37d0699aae chore: prepare for PR 2026-07-29 16:27:52 +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
Andras Bacsai
2180a5e7ef
fix(traefik): track v3.7 and security patch updates (#11029) 2026-07-24 09:02:30 +02:00
Andras Bacsai
f8df830e5e fix(traefik): track v3.7 security updates
Track v3.7 and patch releases for supported Traefik branches.
Set the stable Coolify v4 version to 4.1.2.
2026-07-24 09:00:18 +02: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 Bacsai
da29fdcc69
ci(images): add edge tag for v4.x SHA builds (#11022) 2026-07-23 19:15:48 +02:00
Andras Bacsai
1fc294b908
refactor(ui): remove deploy confirmation modals (#11023) 2026-07-23 19:13:08 +02:00
Andras Bacsai
ee86c69f15 ci: tag v4.x SHA images as edge
Also publish the moving edge tag on GHCR and Docker Hub when the SHA build runs on v4.x, so edge always points at the latest production-line multi-arch image.
2026-07-23 19:11:20 +02:00
Andras Bacsai
ec1762b083 chore: prepare for PR 2026-07-23 19:10:58 +02:00
Andras Bacsai
f06bacc8e0
feat(services): add Buzz one-click service template (#11020) 2026-07-23 17:25:53 +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
16972f6483
feat: GitLab App source (#10538) 2026-07-21 22:22:10 +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
Andras Bacsai
b2fed043c5 feat(api): add GitLab Apps CRUD endpoints
There was no API for creating GitLab sources. Add /api/v1/gitlab-apps
list/create/update/delete with OpenAPI docs, sensitive-field redaction,
and feature coverage mirroring the GitHub Apps API.
2026-07-21 21:35:59 +02:00
Andras Bacsai
bce4f8d7b2 Merge remote-tracking branch 'origin/next' into fix/gitlab-self-hosted-oauth-clone 2026-07-21 21:31:43 +02:00
Andras Bacsai
add7d6ac10 fix(ui): show only Connected for finished GitLab sources 2026-07-21 21:23:44 +02:00
Andras Bacsai
53a42530d0 fix(ui): unify incomplete source status as Setup required
Use the same warning label for unfinished GitHub and GitLab sources,
and drop the host URL from the GitLab incomplete state line.
2026-07-21 21:22:57 +02:00
Andras Bacsai
3772a55458 fix(ui): show GitHub icon next to GitHub sources
Match the GitLab source cards by rendering the shared git-icon next to
GitHub App names on the sources index.
2026-07-21 21:21:58 +02:00
Andras Bacsai
43919ef4e0 fix(security): encrypt GitLab webhook token and mask input
Webhook secret was stored and shown as plaintext. Use a password field,
encrypt at rest (with legacy plaintext read support), and look up tokens
via findByWebhookToken so encrypted values still authenticate webhooks.
2026-07-21 21:21:04 +02:00
Andras Bacsai
94c3129ad1 fix(ui): show GitLab Connected badge beside title
Match application status layout by placing the Connected badge next to
the page heading, and drop the redundant Disconnect action (re-auth is
done via Connect after tokens expire or credentials are updated).
2026-07-21 21:19:48 +02:00
Andras Bacsai
9299340944 fix(ui): remove Public endpoint heading on GitLab setup 2026-07-21 21:16:10 +02:00
Andras Bacsai
1d63c1eaa2 fix(ui): move GitLab public endpoint controls into step 2
Keep OAuth app instructions first; put endpoint selection with the
credentials form so setup flows top-to-bottom without a separate section.
2026-07-21 21:13:22 +02:00
Andras Bacsai
eaa0b0156d feat(gitlab): add custom public endpoint for OAuth redirect
Match the GitHub App endpoint picker so self-hosted / tunnel setups can
select FQDN, IP, app URL, or a custom base. Redirect URI is derived as
{base}/webhooks/source/gitlab/redirect and persisted for token exchange.
2026-07-21 21:11:20 +02:00
Andras Bacsai
e962b81c4e fix(gitlab): reload application secret after save
The secret was always stored encrypted, but the setup form wiped the
input on every load. Load it back for admins (GitHub App parity) so a
reload no longer looks like a failed save.
2026-07-21 21:07:16 +02:00
Andras Bacsai
2450a32d6c fix(ui): rename GitLab setup submit button to Save 2026-07-21 21:02:41 +02:00
Andras Bacsai
ef4a18833e fix(ui): put Save Credentials beside Step 2 heading
Match the page action pattern used elsewhere by placing the submit
button next to the credentials step title instead of under the form.
2026-07-21 21:02:04 +02:00
Andras Bacsai
8782079dcc fix(ui): place GitLab group name after application secret
Keep the primary setup/credentials flow ordered as name, OAuth
credentials, then group name, with self-hosted URL fields advanced-only.
2026-07-21 21:00:34 +02:00
Andras Bacsai
fda8e91396 fix(ui): simplify GitLab source setup view
Use the red incomplete-setup alert like GitHub, keep name + OAuth
credentials front-and-center, and tuck GitLab URL / API / SSH / system
wide options into an Advanced accordion for self-hosted users.
2026-07-21 20:59:09 +02:00
Andras Bacsai
418287d511 fix(ui): align GitLab App create modal with GitHub
Match the GitHub create modal layout: intro copy, name/group row,
system-wide warning, self-hosted accordion (URL/API/SSH), and a
bottom Continue button instead of a duplicate header Save.
2026-07-21 20:54:59 +02:00
Andras Bacsai
253714a23e chore(dev): add npm clean script for docker compose teardown
Replace manual docker rm steps in DEVELOPMENT.md with `npm run clean`.
2026-07-21 12:13:13 +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 Chong
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
Andras Bacsai
9d341d0bb9
feat(v5): add Inertia React infrastructure management (#10987) 2026-07-20 21:46:40 +02:00
Andras Bacsai
960bd0150e Merge remote-tracking branch 'origin/next' into v5-parallel-inertia-react 2026-07-20 13:44:02 +02:00
Andras Bacsai
004c3ab3bc
internal stuffs (#10992) 2026-07-20 12:56:16 +02:00
Andras Bacsai
160278c7eb ci: support main branch build and changelog workflows 2026-07-20 12:54:25 +02:00
Andras Bacsai
94a95cdf54 docs(release): clarify branch strategy and SHA build flow 2026-07-20 12:39:42 +02:00
Andras Bacsai
bd71b09946 fix(helpers): prevent warnings when loading database helpers 2026-07-20 12:18:06 +02:00
Andras Bacsai
ee36124300 Merge remote-tracking branch 'origin/next' into v5-parallel-inertia-react 2026-07-20 12:09:17 +02:00