Commit Graph

41 Commits

Author SHA1 Message Date
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 Bacsai 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 Bacsai 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
Thijmen 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
Andras Bacsai f2228cec7b testing php storm code cleanup and styling 2023-08-08 11:51:36 +02:00
Andras Bacsai 7e4b1a8f8f refactor 2023-07-28 10:55:26 +02:00
Andras Bacsai 9c393ff6bc fix: migrate db schema for smtp + discord 2023-07-27 21:26:15 +02:00
Andras Bacsai 9f4342bd19 wip 2023-07-14 12:09:56 +02:00
Andras Bacsai cbefbb7927 wip 2023-07-14 11:27:08 +02:00
Andras Bacsai 9f0ca1cc2e wip 2023-06-20 19:08:43 +02:00
Andras Bacsai a97d22b81b updates 2023-06-12 12:00:01 +02:00
Andras Bacsai 5d864f5888 test transactional emails 2023-06-06 17:50:13 +02:00
Andras Bacsai 4156ba8908 fix instanceSettings 2023-05-16 17:09:50 +02:00
Andras Bacsai 6135c139da add new public repo 2023-04-25 14:43:35 +02:00
Andras Bacsai 07c952d75b rename instance settings 2023-04-25 09:38:05 +02:00