Commit graph

1649 commits

Author SHA1 Message Date
rosslh
92ee8d1548 feat(auth): add dashboard-managed Coolify access 2026-09-11 12:55:43 -04:00
Andras Bacsai
fc9e61b7b4 feat(services): open resource settings in a modal with restart limits
Move service application and database settings into an embedded modal with a footer, subtitle helper, and Docker restart-count control. Accept max_restart_count on the service applications API, cap compose YAML collection aliases, and tighten status, backup, and database sidebar layouts.
2026-09-10 17:39:56 +02:00
Andras Bacsai
0134401f7c fix(service): write compose .env files atomically via temp rename
Replace direct .env overwrite with a unique temp file and mv so a
partial write cannot leave a truncated environment file on disk.
2026-09-10 09:24:37 +02:00
Andras Bacsai
424dbd36ff feat(sentinel): make sentinel mandatory on regular servers
Remove the enable/disable toggle from the server UI, logs page, and
Sentinel API so is_sentinel_enabled is derived and read-only. Enable
existing regular servers via migration, start Sentinel after validate-
and-install, and drop the daily ServerManagerJob restart.
2026-09-09 06:30:32 +02:00
Andras Bacsai
83714ea395 fix(git): parse generic scp-style SSH URLs with custom users
Centralize scp-style Git URL parsing so user@host:path (including custom
usernames and embedded ports) is accepted and converted to HTTPS for
public clones, API create, webhooks, validation, and commit/branch links.
2026-09-08 20:33:45 +02:00
Aditya Tripathi
f511921895 fix(teams): guard current_team_id clear against concurrent writes
Make clearStoredTeamIfMatches perform an atomic conditional UPDATE
so a concurrent team switch isn't clobbered, and call it for the
deleting owner in DeleteTeam so their stored team id doesn't point
at a deleted team. refreshSession now falls back to
resolveStoredTeam() instead of an arbitrary first team. Add a
return type to SelectTeam::render() and tests covering owner
deletion and concurrent-selection preservation.
2026-09-08 14:44:39 +02:00
Aditya Tripathi
2b92fb86b5 fix(teams): clear stale current_team_id when membership ends
Reset the user's persisted current_team_id when they are removed from
a team, when their team is deleted, or when refreshSession finds no
team left, so a dangling reference is never restored on next login.
2026-09-08 14:44:39 +02:00
Aditya Tripathi
12498b4b86 feat(teams): persist active team and add team selection screen
Add current_team_id to users so the last active team is restored on
login instead of always defaulting to the personal team. When a user
belongs to multiple teams and has no valid stored choice, redirect
them to a new team.select screen (SelectTeam Livewire component) to
pick one, rather than silently choosing the first team. Update
Fortify and OAuth login flows to use the new resolveStoredTeam()
logic.
2026-09-08 14:44:39 +02:00
Andras Bacsai
183e28682c fix(domains): route Compose domains using service ports
Resolve routing ports per Compose service, preserve legacy embedded ports, and ignore non-TCP declarations.
2026-09-07 15:17:23 +02:00
Andras Bacsai
0b462f6a58
feat(backups): alert when scheduled backups are missing (#11433) 2026-09-07 14:09:42 +02:00
Andras Bacsai
b351e94c98
fix(api): return task execution duration as float (#11636) 2026-09-05 15:18:51 +02:00
Andras Bacsai
47c61feb84 fix(api): persist Docker Compose domain ports as overrides
Normalize Compose domains on create and update, retaining explicit ports in
`domain_port_overrides` while storing port-free domain values. Preserve empty
Compose FQDNs and cover both API flows with feature tests.
2026-09-05 14:24:24 +02:00
Andras Bacsai
3c0e43f482 feat(settings): configure CDN URL for stored images
Add a persisted instance setting for S3 image CDN URLs and use it when building image links. Cache profile avatars and project icons with immutable one-year headers.
2026-09-04 21:15:06 +02:00
Andras Bacsai
2ebbc5113e fix: return null for invalid repository URLs 2026-09-04 15:44:18 +02:00
Andras Bacsai
053b030c42 fix: remove database restart limits and clear stale Traefik state
Drop restart-limit fields and enforcement from database resources, clear cached Traefik version data when proxies change, and show missing service environment variables from disabled deploy actions.
2026-09-04 15:42:26 +02:00
peaklabs-dev
85ec70643f
refactor(notifications): build scheduled task links from the instance url
- replace the taskLink() helpers on Application and Service with links built from base_url() in the task notifications
2026-09-04 15:04:51 +02:00
Andras Bacsai
e2e91fbb85
feat(domains): support per-domain internal port overrides (#11594) 2026-09-02 19:39:19 +02:00
Andras Bacsai
67b33c27a9
fix(applications): persist restart limit state for stopped containers (#11566) 2026-08-31 13:13:26 +02:00
Andras Bacsai
ccea7287bf feat(previews): add preview domain management and DNS status tracking 2026-08-30 16:20:16 +02:00
Andras Bacsai
51a8a97d87 fix(docker): create standalone networks without the swarm driver
Use the default bridge network driver for standalone destinations and bump the Coolify version to 4.3.14.
2026-08-28 10:49:05 +02:00
Andras Bacsai
abeb839a69
fix(deployments): restore commit links in deployment logs (#11495) 2026-08-25 12:12:12 +02:00
Andras Bacsai
53117611e4
fix(teams): allow deletion with system-wide Git sources (#11500) 2026-08-25 11:28:15 +02:00
Andras Bacsai
ac4f5af7c0
fix(teams): allow deletion with unused private keys (#11499) 2026-08-25 11:18:59 +02:00
Andras Bacsai
7fd678d907
fix(previews): remove persistent volumes on deletion (#11455) 2026-08-22 13:16:44 +02:00
Andras Bacsai
7bbd91175f Revert "Merge branch 'next' into main"
This reverts commit 2598f3e4c8, reversing
changes made to 83f1a2e503.
2026-08-21 12:12:56 +02:00
github-actions[bot]
5b749850a3 Merge remote-tracking branch 'origin/main' into next 2026-08-20 07:39:12 +00:00
Andras Bacsai
8f90882875 fix(teams): make membership and source deletions atomic
Wrap team membership changes, invitation revocation, and GitHub source deletion in transactions, with coverage for rollback failures.
2026-08-20 09:38:50 +02:00
github-actions[bot]
7759c9b910 Merge remote-tracking branch 'origin/main' into next 2026-08-20 07:34:23 +00:00
Andras Bacsai
de1d234ea5
fix(auth): require confirmation before accepting magic links (#11413) 2026-08-20 09:34:05 +02:00
peaklabs-dev
afbe4d6fd7
feat(var): add environment variable copy functionality 2026-08-19 15:11:49 +02:00
Andras Bacsai
81227670e6 Reapply "Merge origin/next into main"
This reverts commit 15359833d3.
2026-08-19 12:39:55 +02:00
Andras Bacsai
15359833d3 Revert "Merge origin/next into main"
This reverts commit 541d743907, reversing
changes made to bb1d3f13f2.
2026-08-19 12:33:16 +02:00
Andras Bacsai
38aaf8cb2a
fix(caddy): prevent exact label generation argument error (#11397) 2026-08-19 12:31:36 +02:00
Andras Bacsai
541d743907 Merge origin/next into main 2026-08-19 12:30:09 +02:00
Andras Bacsai
849ba8f34c
fix(email): support custom SMTP EHLO domains (#11398) 2026-08-19 11:25:46 +02:00
Andras Bacsai
85e0821dd4 Merge branch 'main' into third-party-integration-tokens 2026-08-18 16:15:53 +02:00
Andras Bacsai
743f54b317 feat(security): add Cloudflare integration token management
Add encrypted team-scoped integration token storage, admin UI, authorization, and Cloudflare token validation.
2026-08-18 16:15:34 +02:00
Andras Bacsai
f9f26c547c fix(auth): preserve OAuth identity across email changes
Link OAuth logins by provider user ID before matching email, refresh identity
claims on login, and skip password confirmation for SSO-linked users.
2026-08-18 15:27:27 +02:00
Andras Bacsai
dd597d1527 fix(backups): support long-running volume backups 2026-08-18 14:10:23 +02:00
Andras Bacsai
00b7861a8f
fix(services): avoid loading bind-mount file contents (#10960) 2026-08-18 14:05:15 +02:00
Andras Bacsai
288dc98ca7 fix: enforce remote output size limits 2026-08-18 14:03:33 +02:00
Andras Bacsai
253e59e731 Merge remote-tracking branch 'origin/next' into openid-auth-support 2026-08-18 14:03:09 +02:00
Andras Bacsai
ccd7c59abf Merge remote-tracking branch 'origin/next' into pr-10960-compose-settings-memory-crash 2026-08-18 13:58:16 +02:00
Andras Bacsai
861a904992 fix(server): surface pending proxy and outdated Traefik states 2026-08-18 13:53:40 +02:00
Andras Bacsai
d2d6c8ac96 fix(deployments): defer container cleanup and configure dashboard HTTPS 2026-08-18 12:51:54 +02:00
NrwPlay
30da9e96eb
fix(notification): update storage email link in S3 error (#8633) 2026-08-18 11:38:01 +02:00
Prai'ns
05ebba9f1a
fix: compress dashboard over HTTPS (#10828)
Co-authored-by: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com>
2026-08-18 11:30:09 +02:00
Andras Bacsai
17d9d1a370 feat(domains): add configurable HTTPS redirects for service apps 2026-08-18 09:08:18 +02:00
Andras Bacsai
5c6defbc76
fix(backups): honor full dumps and selected storage deletion (#11331) 2026-08-17 18:29:09 +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