Commit Graph
61 Commits
Author SHA1 Message Date
Andras Bacsai ca5fcce39b Reapply "Merge branch 'next' into main"
This reverts commit 7bbd91175f.
2026-08-21 12:15:46 +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
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 541d743907 Merge origin/next into main 2026-08-19 12:30:09 +02:00
Andras BacsaiandGitHub 849ba8f34c fix(email): support custom SMTP EHLO domains (#11398) 2026-08-19 11:25:46 +02:00
Andras Bacsai fe9e1e46f5 Merge remote-tracking branch 'origin/main' into next 2026-08-18 16:17:26 +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 d2d6c8ac96 fix(deployments): defer container cleanup and configure dashboard HTTPS 2026-08-18 12:51:54 +02:00
Andras Bacsai 51561e4bee feat(profile): add uploadable avatars with local/S3 storage
Users can upload and remove profile pictures on the profile page.
Admins choose local or instance S3 storage in advanced settings.
Avatars are compressed to JPEG and served via a private cached route.
2026-08-07 21:39:56 +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 Bacsai bdc7e53fac Merge remote-tracking branch 'origin/next' into openid-auth-support 2026-07-14 13:55:35 +02:00
Andras Bacsai ff976a134f Merge remote-tracking branch 'origin/next' into api-sensitive-data-scrubber 2026-07-07 12:56:19 +02:00
Andras Bacsai 0bf97df9af feat: add internal endpoint controls 2026-07-02 16:35:39 +02:00
Andras Bacsai e354840e5a feat(auth): add OIDC SSO and registration controls
Add OIDC discovery, JWKS validation, Socialite integration, OAuth identity linking, and configurable registration policy for password and SSO signups. Update related settings/profile UI and tests.
2026-06-04 13:59:08 +02:00
Andras Bacsai 81a3bb0f07 fix(api): hide sensitive fields by default
Add model-level hidden fields for secrets, tokens, keys, notification
credentials, deployment logs, and environment values. Allow explicit
read:sensitive API access to reveal gated private keys and deployment logs,
and cover the behavior with feature and unit tests.
2026-05-11 21:18:07 +02:00
Andras Bacsai 7ab16ad7b5 feat(mcp): add MCP server with read-only tools for Coolify resources
Add Model Context Protocol server exposing Coolify infrastructure data
to AI assistants. Includes tools for listing/fetching servers, projects,
applications, databases, and services, scoped to authenticated team tokens.

- Add CoolifyServer with 10 read-only tools (list/get for all resource types)
- Add BuildsResponse and ResolvesTeam traits for shared tool logic
- Add EnsureMcpEnabled middleware guarding /mcp routes
- Add enable/disable MCP API endpoints (root-only)
- Add is_mcp_server_enabled toggle in instance settings and advanced UI
- Add migration for is_mcp_server_enabled column
- Add feature tests for MCP endpoints and toggle API
- Scrub sensitive keys (passwords, tokens, raw IDs) from all responses
2026-04-29 10:30:43 +02:00
Andras BacsaiandClaude Opus 4.6 9f46586d4a refactor: define explicit fillable attributes on all Eloquent models
Replace $guarded usage with explicit $fillable arrays across all models.
Sync fillable definitions with current database schema and add tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 21:25:41 +02:00
Andras Bacsai 95091e918f fix: optimize queries and caching for projects and environments 2026-01-16 11:51:26 +01:00
Andras BacsaiandClaude Haiku 4.5 e709e2c131 Add toggleable wire:navigate SPA navigation with prefetching
Implement instance-wide SPA navigation toggle that enables smooth page transitions with prefetching on hover. Excludes terminal links which require full page lifecycle for WebSocket connections. Adds defensive checks to global-search component for SPA navigation compatibility.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-17 12:09:13 +01:00
Andras Bacsai 318cd18dde fix: remove PullHelperImageJob and mass server scheduling
Stop dispatching PullHelperImageJob to thousands of servers when the helper image version changes. Instead, rely on Docker's automatic image pulling during actual deployments and backups. Inline the helper image pull in UpdateCoolify for the single use case.

This eliminates queue flooding on cloud instances while maintaining all functionality through Docker's built-in image management.
2025-11-14 11:31:08 +01:00
Andras BacsaiandClaude 3c799df887 fix: use wasChanged() instead of isDirty() in updated hook
Critical Bug Fix:
- isDirty() always returns false in the updated() hook
- Changes are already persisted when updated() runs
- wasChanged() correctly tracks what was modified during save

Affected Code:
- helper_version check: Now properly triggers PullHelperImageJob
- fqdn check: Now properly clears TrustHosts cache

Impact:
 Cache invalidation now works when FQDN changes
 Helper image updates now trigger correctly
 Security fix cache is properly cleared on config changes

This also fixes an existing bug where helper_version updates
never triggered the PullHelperImageJob dispatch.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-15 22:20:52 +02:00
Andras BacsaiandClaude 922884e6d3 feat: implement TrustHosts middleware to handle FQDN and IP address trust logic
This commit fixes a critical Host Header Injection vulnerability in the password reset flow that could lead to account takeover.

Security Issue:
- Attackers could inject malicious host headers (e.g., legitimate.domain.evil.com)
- Password reset emails would contain links to attacker-controlled domains
- Attackers could capture reset tokens and takeover accounts

Changes:
- Enable TrustHosts middleware in app/Http/Kernel.php
- Update TrustHosts to trust configured FQDN from InstanceSettings
- Add intelligent caching (5-min TTL) to avoid DB query on every request
- Automatic cache invalidation when FQDN is updated
- Support for domains, IP addresses (IPv4/IPv6), and ports
- Graceful fallback during installation when DB doesn't exist

Test Coverage:
- Domain validation (with/without ports)
- IP address validation (IPv4, IPv6)
- Malicious host rejection
- Cache creation and invalidation
- Installation edge cases

Performance:
- 99.9% reduction in DB queries (1 query per 5 minutes vs every request)
- Zero performance impact on production workloads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-15 22:00:21 +02:00
Andras Bacsai e7f32a1c44 refactor(notifications): standardize getRecipients method signatures 2025-03-24 17:55:10 +01:00
Andras Bacsai 1fe4dd722b Revert "rector: arrrrr"
This reverts commit 16c0cd10d8.
2025-01-07 15:31:43 +01:00
Andras Bacsai 16c0cd10d8 rector: arrrrr 2025-01-07 14:52:08 +01:00
peaklabs-dev d3ce6d814c feat: use encryption in instance settings model 2024-12-10 13:45:52 +01:00
peaklabs-dev e36ccd3d78 chore: remove resale license reference 2024-12-09 14:29:41 +01:00
peaklabs-dev 4428b95a65 chore: fix typo 2024-12-09 12:36:33 +01:00
Lucas Michot 8e1444eaa7 Get rid of many useless blank lines 2024-10-31 17:44:01 +01:00
Andras Bacsai f0d5639956 fancier notifications 2024-10-21 22:40:43 +02:00
Andras Bacsai 2809083f61 Refactor Redis password handling and migration to use environment variables 2024-10-21 13:43:34 +02:00
Andras Bacsai e8c7d7f972 fix: pull helper image on helper_version change 2024-10-21 12:06:13 +02:00
Andras Bacsai 1f193d465d sentinel updates 2024-10-14 12:07:37 +02:00
Andras Bacsai 4db50bd025 chore: Refactor instanceSettings() function to improve code readability 2024-10-01 10:33:56 +02:00
Andras Bacsai a660117015 use latest helper in dev 2024-09-30 11:14:53 +02:00
Andras Bacsai 68169f75d1 refactor: Remove unused server timezone seeder and related code 2024-08-26 15:26:08 +02:00
ayntk-ai 38976dac12 fixes and check for valid cron expressions 2024-08-05 20:05:38 +02:00
Andras Bacsai da6f2da3d0 feat: lots of api endpoints 2024-07-01 16:26:50 +02:00
Thijmen Stavenuiter 76a0659335 Improved name creation 2024-06-22 10:41:15 +02:00
Thijmenandgithub-actions[bot] d86274cc37 Fix styling 2024-06-10 20:43:34 +00:00
Andras Bacsai d79da996d3 fix 2023-12-11 20:01:54 +01:00
Andras Bacsai a19a58338c debug on 2023-12-11 19:39:27 +01:00
Andras Bacsai 8a80dbd5d8 fix 2023-12-11 19:36:44 +01:00
Andras Bacsai ce721c1764 fix 2023-12-11 19:30:37 +01:00
Andras Bacsai 40716550ec fix 2023-12-11 19:16:17 +01:00
Andras Bacsai 423dfc6280 fix 2023-12-11 19:02:06 +01:00
Andras Bacsai 17c8872130 fix: realtime connection?! 2023-12-11 18:06:29 +01:00
Andras Bacsai d058e04213 Add fqdn attribute to InstanceSettings model 2023-11-28 12:11:03 +01:00
Andras Bacsai 2538890b52 feat: add resend as transactional emails 2023-08-31 13:10:39 +02:00