Commit Graph
16340 Commits
Author SHA1 Message Date
Andras BacsaiandGitHub e560bdf9e0 fix(api): secure proxy config, clone volumes, and rollback tags (#11003) 2026-07-22 14:52:11 +02:00
Andras BacsaiandGitHub 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 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
Andras BacsaiandGitHub 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 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
Andras BacsaiandGitHub 9b284973e1 feat(backups): add scheduled storage volume backups (#10946) 2026-07-20 12:04:50 +02:00
Andras Bacsai bf72fd5d88 refactor(backups): centralize storage deletion guard 2026-07-19 23:20:46 +02:00
Andras Bacsai 68d719d02f Merge remote-tracking branch 'origin/next' into v5-parallel-inertia-react 2026-07-19 23:17:51 +02:00
Andras Bacsai 4e03be755d Merge remote-tracking branch 'origin/next' into volume-backups-server-s3 2026-07-19 23:16:00 +02:00
Andras Bacsai 72a0a57f0e fix(backups): enforce authorization and safe retention
- Gate volume backup retention and S3 controls by update permission
- Preserve backup records when S3 deletion fails
- Share SFTP download streaming with consistent missing-file handling
- Handle schedule creation errors and link service database backups
2026-07-19 23:15:55 +02:00
Andras Bacsai 24bc4b0462 docs(release): document SHA image promotion workflow 2026-07-19 23:13:33 +02:00
Andras Bacsai 99a8a96e7f Merge remote-tracking branch 'origin/next' into volume-backups-server-s3 2026-07-19 23:02:59 +02:00
Andras BacsaiandGitHub b53ae426b8 ci(release): promote SHA-tagged images on release (#10988) 2026-07-19 23:01:52 +02:00
Andras Bacsai 7716e65eea ci(release): promote SHA-tagged images on release
Publish branch builds under immutable commit SHA tags, then promote the
released image to its version tag and stable releases to latest.
2026-07-19 23:00:47 +02:00
Andras Bacsai 994eee8377 fix(backups): retain volume backups without server 2026-07-19 22:35:33 +02:00
Andras Bacsai b97a97e955 Merge remote-tracking branch 'origin/next' into volume-backups-server-s3 2026-07-19 21:45:26 +02:00
Andras Bacsai 55bc13b3bf Merge remote-tracking branch 'origin/next' into v5-parallel-inertia-react 2026-07-19 21:40:13 +02:00
Andras BacsaiandGitHub f715fb69bb v4.2 (#10872) 2026-07-19 21:21:40 +02:00
Andras Bacsai a92ca6e3b8 version ++ 2026-07-19 21:18:55 +02:00
Andras Bacsai 32f9b48406 fix(v5): defer production runtime activation
Remove Flux token provisioning and container role handling from production.
Restore private server IP support and document the activation checklist.
2026-07-19 16:47:29 +02:00
Andras Bacsai d0247d3b09 feat(v5): gate V5 to development environments only
Introduce V5Feature and config so V5 routes, jobs, commands, morph maps,
and model queries run only when enabled. Move V5 migrations to
migrations-v5 (loaded only when enabled), remove Flux from production
Docker/install paths, and add isolation tests.
2026-07-19 11:44:12 +02:00
Andras Bacsai 1cb1d028de Merge remote-tracking branch 'origin/next' into resolve-vite-package-conflicts 2026-07-19 11:42:20 +02:00
Andras Bacsai 0633b543ee feat(api): require POST for state-changing endpoints
Make start/stop/restart, deploy, enable/disable, and server validate
POST-only, with GET returning 405. Server validate accepts optional
install and uses ValidateAndInstallServerJob. Update OpenAPI and tests.
2026-07-19 11:42:04 +02:00
Andras Bacsai 0342185445 Merge remote-tracking branch 'origin/next' into v5-parallel-inertia-react 2026-07-18 20:57:08 +02:00
Andras Bacsai e2c2180f4f fix(dev): support root bind mounts and LAN Vite access
Keep the dev container as root for s6 init so composer can create
vendor/ on root-owned mounts, then chown writable paths to www-data.
Move init-setup into a shell script and expose VITE_HOST/PORT for
remote HMR (LAN/Tailscale) with Vite listening on 0.0.0.0.
2026-07-18 20:56:01 +02:00
Andras Bacsai 662633399f Merge remote-tracking branch 'origin/next' into volume-backups-server-s3 2026-07-18 16:07:26 +02:00