Commit graph

5736 commits

Author SHA1 Message Date
Andras Bacsai
d7524a743d fix(env-vars): show single empty state for searches
Move the environment variable search field above the production section
and hide production and preview headings when a search has no results.
2026-06-03 12:54:50 +02:00
Andras Bacsai
d300ddf902 Merge remote-tracking branch 'origin/next' into feat/search-to-envs 2026-06-03 12:47:37 +02:00
Andras Bacsai
b3f3ddf0ce Merge remote-tracking branch 'origin/next' into fix/api-update-server-private-key 2026-06-03 12:44:31 +02:00
Andras Bacsai
9dabaabdf1 fix(git): force HTTP/1.1 for repository imports
Apply HTTP/1.1 transport config to HTTPS git clone and submodule commands,
including GitHub App credential rewrites, to avoid flaky large repo imports.
2026-06-03 12:42:04 +02:00
Andras Bacsai
8b8ec9c4f9 Merge remote-tracking branch 'origin/next' into fix/api-update-server-private-key 2026-06-03 12:27:41 +02:00
Andras Bacsai
ec7a8b5ea9 fix(scheduled-jobs): link skipped service database backups
Render skipped service database backups with the service database backup route while preserving standalone database backup links.
2026-06-03 12:25:13 +02:00
Andras Bacsai
419a551d76 fix(server): return SSH username validation messages 2026-06-03 11:57:46 +02:00
Andras Bacsai
1ca472d549 Merge remote-tracking branch 'origin/next' into fix/api-update-server-private-key 2026-06-03 11:43:32 +02:00
Andras Bacsai
d525c12457 fix(env): keep dev view env saves independent of search
Search environment variables case-insensitively by key, add accessible search
labeling, and ensure switching to developer view after searching loads the full
variable set so non-matching entries are not removed on save.
2026-06-03 11:40:54 +02:00
Andras Bacsai
ad4a21d15f Merge remote-tracking branch 'origin/next' into feat/search-to-envs 2026-06-03 11:40:38 +02:00
Andras Bacsai
9aa40bb5f0 Merge remote-tracking branch 'origin/next' into jean/allow-dots-username 2026-06-03 11:38:55 +02:00
Andras Bacsai
bc2afdf02e fix(server): share SSH username validation
Centralize SSH username rules and sanitization so dotted usernames are
accepted consistently across API, onboarding, and Livewire server forms.
2026-06-03 11:38:48 +02:00
Andras Bacsai
13e94a499d feat(destinations): split Docker resources into separate page
Move standalone Docker destination resource listings out of the general
settings view and add a searchable resources page with team-scoped tests.
2026-06-03 11:24:36 +02:00
Andras Bacsai
128464e77c Merge remote-tracking branch 'origin/next' into jean/docker-network-ui 2026-06-03 11:13:29 +02:00
Andras Bacsai
c0c8fd7f11 Merge remote-tracking branch 'origin/next' into jean/sentinel-ux 2026-06-03 11:10:19 +02:00
Andras Bacsai
d892d0ad10 fix(sentinel): refresh server nav after toggles
Dispatch server show refreshes after Sentinel and metrics toggles, preserve editable Sentinel form fields during restart events, and gate custom image editing by update permission.
2026-06-03 11:10:13 +02:00
Andras Bacsai
1fc224cd75 Merge remote-tracking branch 'origin/next' into jean/docker-network-ui 2026-06-03 11:01:29 +02:00
Andras Bacsai
aaa540421f feat(application): preserve crash restart limit status
Stop applications after they hit the crash restart limit without clearing
restart tracking, surface the stopped-limit warning in status UI, and use
the application link in restart limit notifications.
2026-06-03 11:01:28 +02:00
Andras Bacsai
2d2634f87b Merge remote-tracking branch 'origin/next' into jean/sentinel-ux 2026-06-03 10:57:36 +02:00
Andras Bacsai
d581abb284 Merge remote-tracking branch 'origin/next' into jean/add-restart-loop-limit 2026-06-03 10:43:57 +02:00
Andras Bacsai
07f381b88c Merge remote-tracking branch 'origin/next' into jean/port-exposes-improvement 2026-06-03 10:32:57 +02:00
Andras Bacsai
be6ed4377d
feat(ui): add resource details view (#9756) 2026-06-03 10:21:15 +02:00
Andras Bacsai
63be45b21b
fix(ui): configuration changes modal doesn't go away after redeployment for git based compose apps (#10461) 2026-06-03 10:19:03 +02:00
Andras Bacsai
a047971bc1 fix(github): use provided app for installation URLs
Generate GitHub App installation links and setup cache state from the
current app instance, and keep the Livewire app name in sync after
permission checks.
2026-06-03 10:07:57 +02:00
Andras Bacsai
858b1906ec Improve GitHub App setup flow 2026-06-03 09:33:46 +02:00
Ömer Faruk ŞAHİN
903f7a7177
Merge branch 'next' into fix/deploy-key-dedicated-path-race 2026-06-03 10:28:34 +03:00
Andras Bacsai
d681e656c7 fix(server): preserve remote HOME in Railpack buildx prune 2026-06-02 16:36:00 +02:00
Andras Bacsai
67687efc65 Merge remote-tracking branch 'origin/next' into 10507-railpack-cache-volume 2026-06-02 15:14:13 +02:00
Andras Bacsai
a75dc07567 fix(server): prune Railpack buildx cache via helper container 2026-06-02 15:14:01 +02:00
Andras Bacsai
d87ab279fb fix(log-drain): connect drain to service networks
Ensure the log drain container joins enabled service destination networks
when services start or the log drain restarts.
2026-06-02 14:33:57 +02:00
Andras Bacsai
5eec212ade fix(deploy): persist Railpack buildx metadata
Mount the host buildx metadata directory into helper containers so the
Railpack builder can be pruned during Docker cleanup.
2026-06-02 14:30:49 +02:00
Andras Bacsai
40294bc3b3 chore: inspect staged changes 2026-06-02 14:05:26 +02:00
Andras Bacsai
cd06e10b1b fix(auth): bind magic links to their invitation
Include the invitation UUID in generated magic link tokens and validate the
matching stored invitation link before logging the user in, preventing stale
or same-email invitations from being reused.
2026-06-02 12:57:30 +02:00
Andras Bacsai
40d570f195 chore: update team invitation handling 2026-06-02 12:22:27 +02:00
Andras Bacsai
252a4a702c Merge remote-tracking branch 'origin/next' into audit-policies 2026-06-02 12:08:35 +02:00
Andras Bacsai
973632b49c Merge remote-tracking branch 'origin/next' into audit-policies 2026-06-02 12:03:38 +02:00
Andras Bacsai
93aa8894a8
fix(service): Garage doesn't start due to RPC secret being wrong length (#10425) 2026-06-02 12:01:41 +02:00
Andras Bacsai
1bad82cf43 Merge remote-tracking branch 'origin/next' into chore/update-deployment-validation 2026-06-02 11:28:42 +02:00
Andras Bacsai
fb4c3aa22e fix(applications): allow repeated hyphens in image names 2026-06-02 11:27:25 +02:00
Andras Bacsai
098b098509 Merge remote-tracking branch 'origin/next' into chore/update-deployment-validation 2026-06-02 11:20:29 +02:00
Andras Bacsai
507ecfdf54 Merge remote-tracking branch 'origin/next' into fix/application-image-validation 2026-06-02 11:14:35 +02:00
Andras Bacsai
6dae53a0e5 Merge remote-tracking branch 'origin/next' into fix/application-image-validation 2026-06-02 11:13:36 +02:00
Andras Bacsai
d72c1e2a47 fix(applications): harden image validation 2026-06-02 11:11:33 +02:00
Andras Bacsai
c7c8107dcd Merge remote-tracking branch 'origin/next' into fix/application-branch-validation 2026-06-02 11:10:33 +02:00
Andras Bacsai
62caa30056 Merge remote-tracking branch 'origin/next' into chore/update-deployment-validation 2026-06-02 11:10:32 +02:00
Andras Bacsai
1ce36926f6 Merge remote-tracking branch 'origin/next' into fix/proxy-config-validation 2026-06-02 11:07:07 +02:00
Andras Bacsai
51894d9c05 chore: defer server policy changes 2026-06-02 10:57:14 +02:00
Andras Bacsai
a511bd9b67 fix(api): validate token team context 2026-06-01 15:17:55 +02:00
Andras Bacsai
5e4873322e chore: improve deployment input handling 2026-06-01 15:15:38 +02:00
Andras Bacsai
419593e7d4 fix(proxy): tighten config validation 2026-06-01 15:14:28 +02:00
Andras Bacsai
2bb07bbe9e fix: validate application branch updates 2026-06-01 15:13:04 +02:00
Andras Bacsai
4b2dfa7c77 Merge remote-tracking branch 'origin/next' into 2731-investigate-failed-git-clone 2026-06-01 11:44:09 +02:00
Andras Bacsai
92d6b577fd Merge remote-tracking branch 'origin/next' into 7616-conditional-image-tags 2026-06-01 11:15:55 +02:00
Andras Bacsai
e7483f591f fix(deployments): scope submodule git credentials per command
Use per-command git config for GitHub App HTTPS credentials so private submodules authenticate without persisting global git config. Preserve configured git options for checkout, fetch, submodule, and LFS commands, and cover GitLab PR submodule checkout with tests.
2026-06-01 10:54:14 +02:00
Andras Bacsai
bc8928fdc4 Merge remote-tracking branch 'origin/next' into 2731-investigate-failed-git-clone 2026-06-01 10:40:02 +02:00
Andras Bacsai
a5313a78cf
fix(deployments): filter generated compose service env vars (#10186) 2026-06-01 10:38:36 +02:00
Andras Bacsai
e37f9401bc Merge remote-tracking branch 'origin/next' into 7552-pr-previews-not-working 2026-06-01 10:35:37 +02:00
Andras Bacsai
8e30035031 Merge remote-tracking branch 'origin/next' into s3-backup-validation 2026-06-01 10:32:17 +02:00
Andras Bacsai
d4ff7ea791 Merge remote-tracking branch 'origin/next' into s3-backup-validation 2026-06-01 10:02:12 +02:00
Andras Bacsai
3db41a83a8 Merge remote-tracking branch 'origin/next' into terminal-long-session-disconnects 2026-06-01 09:52:34 +02:00
Andras Bacsai
51062e73a6 fix(database): honor disabled standalone health checks
Skip Docker healthcheck configuration when standalone database health checks are disabled, and document default health check settings in the database API schema.
2026-06-01 08:55:03 +02:00
Andras Bacsai
094e64ed2d Merge remote-tracking branch 'origin/next' into terminal-long-session-disconnects 2026-06-01 06:56:11 +02:00
Andras Bacsai
4f053bf5b4 Merge remote-tracking branch 'origin/next' into 10444-database-healthchecks 2026-06-01 06:55:40 +02:00
Jérémy Derdaele
b5416859e5 fix(templates): generate valid Garage RPC secret
Garage requires a 32 bytes secret (which is a 64 char hex string)
2026-05-31 23:57:46 +02:00
Andras Bacsai
b46d8e2601 fix(terminal): keep sessions alive without hard timeouts 2026-05-31 21:52:46 +02:00
Andras Bacsai
8a52307255
fix(cleanup): preserve self-hosted server IPs (#10480) 2026-05-31 21:50:28 +02:00
Andras Bacsai
d423223d38 feat(database): configure standalone health checks
Add configurable health check settings for standalone databases and apply them to generated Docker Compose services. Allow disabling health checks and cover the behavior with feature tests.
2026-05-31 21:50:10 +02:00
Andras Bacsai
1b68f11ec0 fix(cleanup): disable unreachable self-hosted servers
Preserve self-hosted server IPs during unreachable cleanup and force-disable them instead. Keep cloud cleanup behavior overwriting the IP, with test coverage for both paths.
2026-05-31 21:47:18 +02:00
Andras Bacsai
34f15c106c fix(webhook): match GitLab SSH repos with custom ports
Strip leading port segments from scp-style GitLab repository URLs so manual webhook matching compares the repository path consistently. Cover both ported and unported SSH URL forms.
2026-05-31 21:46:23 +02:00
Andras Bacsai
c9fcc0bc44 fix(service): defer stop when pulling latest images
Ensure restart actions flow through StartService so pull-latest restarts can
avoid stopping the service before image pulls. Also raise the changelog modal
above the desktop sidebar toggle.
2026-05-31 21:19:18 +02:00
ShadowArcanist
84eb9d31bb
feat(ui): improve configuration changes modal 2026-05-30 13:16:37 +05:30
Andras Bacsai
38e855b20e
fix(webhook): skip preview deployments for fork PRs (#10457) 2026-05-29 20:43:29 +02:00
ShadowArcanist
ab4b2045d4
fix(webhook): skip preview deployments for fork PRs when public previews are off 2026-05-29 23:53:51 +05:30
Andras Bacsai
b81bfc7f32 feat(profile): add appearance preferences page
Add a profile appearance section for theme, page width, and zoom preferences.
Move changelog access into the sidebar and bump the Coolify version to 4.1.2.
2026-05-29 13:59:01 +02:00
Andras Bacsai
c5fbf78bd8 fix(database): quote S3 restore temp paths
Escape generated restore file paths before composing docker and shell cleanup commands so paths with spaces or metacharacters cannot break command execution. Update import form security coverage to target ImportForm directly.
2026-05-29 12:27:33 +02:00
Andras Bacsai
bbbd46ca26 fix(database): always include MongoDB archive path in restores 2026-05-29 08:27:45 +02:00
Andras Bacsai
322bf7c1b2 refactor(database): split import form into Livewire child
Extract the database import form into its own component and add realtime
status refresh components for application server badges and service resource
cards.
2026-05-28 19:30:12 +02:00
Ömer Faruk ŞAHİN
ddd84e5adc fix(git): write deploy key to per-deployment path, not root's id_rsa 2026-05-28 19:13:29 +03:00
Andras Bacsai
4401bee941 Merge remote-tracking branch 'origin/next' into fix/form-state 2026-05-28 17:34:52 +02:00
Andras Bacsai
dd8a0d501d fix(s3): cap connection checks at 15 seconds
Return a friendly timeout error for failed S3 endpoint checks while
preserving the original exception as the previous throwable.
2026-05-28 17:31:11 +02:00
Andras Bacsai
c35d28f99b fix(database): guard proxy listeners without a team 2026-05-28 17:13:18 +02:00
Andras Bacsai
20f9bb4305 perf(realtime): reduce push update churn
Cache destination lookups and skip empty resource queries during push
server updates. Add database indexes and Postgres storage tuning for
hot-update tables, and make the realtime entrypoint forward process
failures and signals reliably.
2026-05-27 19:38:23 +02:00
Andras Bacsai
90aa4e7e73 chore(sentinel): remove stale resource exit check 2026-05-27 16:55:03 +02:00
Andras Bacsai
626cfb4a22 fix(sentinel): reduce resource churn from health flaps
Ignore health status changes in Sentinel push deduplication when the container lifecycle state is unchanged.

Scope stale resource checks to Sentinel servers whose heartbeat is stale, and avoid refreshing resource last_online_at on unchanged statuses.
2026-05-27 16:48:38 +02:00
Andras Bacsai
1c5d5676ef fix(crons): dispatch due schedules across chunks
Interleave due backups and tasks so one schedule type cannot starve the
other, and defer task job context loading until execution.
2026-05-27 16:35:41 +02:00
Andras Bacsai
9d1ede0733 fix(github): require opt-in custom webhook endpoint 2026-05-27 09:11:23 +02:00
Andras Bacsai
a07cee7ad6 fix(github): support custom webhook override 2026-05-27 09:05:55 +02:00
Andras Bacsai
499a8666db fix(github): allow custom webhook endpoint input 2026-05-27 08:37:10 +02:00
Andras Bacsai
9b996b4dc9 chore: inspect commit message guidance 2026-05-27 07:14:54 +02:00
Andras Bacsai
d443758b03 fix(github): allow system-wide private apps across teams
Use the shared GitHub app scope when listing and loading private apps so system-wide apps owned by another team remain available. Update coverage for mounting and loading repositories through those apps.
2026-05-26 17:36:02 +02:00
Andras Bacsai
9f29df4cc3 fix(sentinel): accept empty container heartbeats
Allow Sentinel pushes with an empty containers array so servers with no
running containers still refresh their heartbeat and enqueue an update.
2026-05-26 17:31:27 +02:00
Andras Bacsai
081bd6ef8c fix(seeding): ensure root user joins root team
Create the root team before production seeding depends on it, reuse the
existing root team when creating root users, and cover the production seeder
flow with a feature test.
2026-05-26 17:05:54 +02:00
Andras Bacsai
6da907f1c8 chore: inspect commit message guidance 2026-05-26 15:35:09 +02:00
Andras Bacsai
8e033c5bc3 fix(destination): promote networks atomically
Wrap destination promotion in a transaction so the main destination swap and additional network updates stay consistent. Add coverage for promoting an owned team network while preserving the previous main destination as an additional network.
2026-05-26 14:50:29 +02:00
Andras Bacsai
f44ace3965 fix(destination): validate network server pairing
Ensure destination attach and promote operations only accept networks that belong to the selected server, preventing mismatched same-team server/network pairs.
2026-05-26 14:48:36 +02:00
Andras Bacsai
579ce3064f chore(schedule): type scheduled task job input 2026-05-26 14:47:11 +02:00
Andras Bacsai
097efd14ce fix(storage): clear stale disk usage cache
Forget cached storage threshold state when reported disk usage drops below the alert threshold, allowing future threshold crossings to dispatch a fresh storage check.
2026-05-26 14:45:49 +02:00
Andras Bacsai
43884823c6 chore(ssh): remove stale mux cleanup job
Drop the scheduled stale multiplexed connection cleanup job, its SSH mux
health/orphan config, and the tests that covered that cleanup path.
2026-05-26 14:40:38 +02:00
Andras Bacsai
b5be9fe9e8 fix(sentinel): lock push dedupe decisions
Guard Sentinel push hash checks and cache updates with a server-scoped atomic cache lock to prevent concurrent duplicate dispatches.
2026-05-26 14:12:56 +02:00
Andras Bacsai
7677fac2f5 fix(sentinel): validate push containers payload
Reject malformed sentinel push payloads before updating heartbeat state,
dispatching jobs, or writing deduplication cache entries.
2026-05-26 14:07:41 +02:00