Andras Bacsai
d9774d2968
Fix: Prevent version downgrades and centralize CDN configuration ( #7383 )
...
## Root Cause
Between Nov 25-26, a CDN redirect was added without curl's `-L` flag,
causing version cache corruption and automatic downgrades.
## Three Critical Bugs Fixed
### Bug #1 : CheckForUpdatesJob could overwrite newer cached version
- Problem: CDN serving older version would overwrite local cache
- Solution: Smart version merge - keep max Coolify version, update other components
- Location: app/Jobs/CheckForUpdatesJob.php:33-52
### Bug #2 : Manual updates bypassed downgrade protection
- Problem: Downgrade guard only applied to auto-updates
- Solution: Always block downgrades for both manual and auto-updates
- Location: app/Actions/Server/UpdateCoolify.php:65-75
### Bug #3 : Updates used stale local cache
- Problem: Never validated cache against CDN at update time
- Solution: Fetch fresh CDN data before executing updates
- Location: app/Actions/Server/UpdateCoolify.php:34-49
## Additional Improvement: Centralized CDN Configuration
Added three new config keys for easy CDN management:
- `cdn_url` - Base CDN URL (default: https://cdn.coollabs.io )
- `versions_url` - Full versions.json URL
- `upgrade_script_url` - Full upgrade.sh URL
All configurable via environment variables:
```bash
CDN_URL=https://cdn.coolify.io
VERSIONS_URL=https://custom-cdn.example.com/versions.json
UPGRADE_SCRIPT_URL=https://custom-cdn.example.com/upgrade.sh
```
## Files Modified
- config/constants.php - CDN configuration
- app/Jobs/CheckForUpdatesJob.php - Smart version merge + centralized URL
- app/Actions/Server/UpdateCoolify.php - Downgrade protection + fresh fetch + centralized URLs
- app/Jobs/CheckHelperImageJob.php - Centralized URL
- bootstrap/helpers/shared.php - Centralized URL
## Testing
- ✅ All modified files pass Pint formatting
- ✅ 78 unit tests pass (2 pre-existing failures unrelated to changes)
## Impact
- No breaking changes - defaults to current CDN
- Easy CDN migration via environment variables
- Prevents all downgrade scenarios
- Maintains independent Sentinel/Helper/Traefik updates
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 15:20:33 +01:00
Andras Bacsai
29135e00ba
feat: enhance prerequisite validation to return detailed results
2025-11-21 13:14:48 +01:00
Andras Bacsai
01957f2752
feat: implement prerequisite validation and installation for server setup
2025-11-21 09:49:33 +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 Bacsai
f315e4bd9c
feat: add dev_helper_version to instance settings and update related functionality
2025-11-03 08:38:43 +01:00
Andras Bacsai
84b0ec1e94
Update app/Actions/Server/InstallDocker.php
...
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-10-28 09:31:32 +01:00
Andras Bacsai
fc49b9284a
Add repository-based Docker installation fallbacks for all major Linux distros
...
This commit adds official Docker repository installation methods as fallbacks
when Rancher and get.docker.com convenience scripts fail, providing more
reliable Docker installation across all supported operating systems.
Changes:
- Add apt repository fallback for Debian-based systems (Ubuntu, Debian, Raspbian)
- Fixes installation on Debian 13 (Trixie) where get.docker.com fails
- Uses VERSION_CODENAME for automatic OS version detection
- Add dnf repository fallback for RHEL-based systems (CentOS, Fedora, Rocky, AlmaLinux)
- Add zypper repository fallback for SUSE-based systems (SLES, OpenSUSE)
- Refactor installation methods into dedicated private methods for better maintainability
Installation fallback chain:
1. Rancher install-docker script (preserves version pinning)
2. Docker get.docker.com convenience script
3. Official repository method (new, most reliable)
Benefits:
- Future-proof: Works with new OS releases automatically
- Production-ready: Uses Docker's recommended installation method
- Comprehensive: Covers 95%+ of Linux servers in production
- Maintainable: Clean code structure with single-responsibility methods
Fixes issue where Debian 13 (Trixie) servers fail validation because
get.docker.com script incorrectly uses numeric version "13" instead of
codename "trixie" in repository URLs.
2025-10-26 12:41:50 +01:00
Andras Bacsai
513f6b54f7
feat: implement Hetzner deletion failure notification system with email and messaging support
2025-10-10 09:35:58 +02:00
Andras Bacsai
f4e5c195fe
refactor: replace direct SslCertificate queries with server relationship methods for consistency
2025-10-09 17:00:05 +02:00
Andras Bacsai
bf5c08d071
work work on hetzner integration
2025-10-09 16:54:13 +02:00
Andras Bacsai
704ddf2968
improved hetzner features
2025-10-09 12:53:57 +02:00
Andras Bacsai
215301fa8f
basics of adding / removing hetzner servers
2025-10-09 10:41:29 +02:00
Andras Bacsai
393745b68c
Revert "refactor(file-transfer): replace base64 encoding with direct file transfer method across multiple database actions for improved clarity and efficiency"
...
This reverts commit 18068857b1 .
2025-09-15 17:55:08 +02:00
Andras Bacsai
4027c1426c
feat(sentinel): add support for custom Docker images in StartSentinel and related methods
2025-09-14 19:21:55 +02:00
Andras Bacsai
a6a4fd39bb
chore(cleanup): remove deprecated ServerCheck and related job classes to streamline codebase
2025-09-13 18:35:39 +02:00
Andras Bacsai
18068857b1
refactor(file-transfer): replace base64 encoding with direct file transfer method across multiple database actions for improved clarity and efficiency
2025-09-08 14:04:24 +02:00
Andras Bacsai
852b2688d9
refactor(error-handling): remove ray debugging statements from CheckUpdates and shared helper functions to clean up error reporting
2025-09-08 14:03:27 +02:00
Andras Bacsai
83f2e856ec
feat(sentinel): implement SentinelRestarted event and update Livewire components to handle server restart notifications
2025-08-26 10:27:38 +02:00
🏔️ Peak
2a526c54d5
fix(docker): volumes get delete when stopping a service if Delete Unused Volumes is activated ( #6317 )
2025-08-04 21:15:56 +02:00
Andras Bacsai
f9a0ca2ca6
refactor(proxy): update StartProxy calls to use named parameter for async option
2025-06-16 13:13:01 +02:00
Andras Bacsai
ddcb14500d
refactor(proxy-status): refactored how the proxy status is handled on the UI and on the backend
...
feat(cloudflare): improved cloudflare tunnel automated installation
2025-06-06 14:47:54 +02:00
Andras Bacsai
c272a770e2
refactor(error-handling): change Exception to RuntimeException for clearer error reporting
2025-05-29 10:54:35 +02:00
Andras Bacsai
6ea6d2742b
feat(server): implement server patch check notifications
...
- Added a new job, ServerPatchCheckJob, to handle server patch checks and notifications.
- Introduced a new notification class, ServerPatchCheck, for sending updates via email, Discord, Slack, Pushover, and Telegram.
- Updated notification settings models to include server patch notification options for email, Discord, Slack, Pushover, and Telegram.
- Created a migration to add server patch notification fields to the respective settings tables.
- Enhanced the UI to allow users to enable/disable server patch notifications across different channels.
2025-05-26 14:03:59 +02:00
peaklabs-dev
84c773f7a2
chore(core): remove unused function
2025-05-20 13:17:43 +02:00
peaklabs-dev
24d949b91e
fix(patches): DNF reboot logic is flipped
2025-05-20 13:17:12 +02:00
Andras Bacsai
e7536d3fb8
feat(security): implement server patching functionality
...
- Add CheckUpdates and UpdatePackage actions for managing server updates.
- Create ServerPackageUpdated event for broadcasting update status.
- Introduce Patches Livewire component for user interface to check and apply updates.
- Update navigation and sidebar to include security patching options.
2025-05-15 22:21:54 +02:00
Andras Bacsai
24b7b53973
Revert "fix(dev): mount points?!"
...
This reverts commit 365bf3cbf0 .
2025-05-05 08:55:44 +02:00
Andras Bacsai
365bf3cbf0
fix(dev): mount points?!
2025-05-03 09:59:42 +02:00
Andras Bacsai
e190004682
refactor(logdrain): consolidate log drain stopping logic to reduce redundancy
2025-04-30 21:14:37 +02:00
Andras Bacsai
4c5dd3db3c
fix(ServerCheck): set default proxy status to 'exited' to handle missing container state
2025-04-30 16:50:23 +02:00
Andras Bacsai
eaba726b9c
fix(ServerCheck): enhance proxy container check to ensure it is running before proceeding
2025-04-30 09:59:19 +02:00
Andras Bacsai
324e0d1cd8
feat(CleanupDocker): add support for realtime image management in Docker cleanup process
2025-04-10 18:20:46 +02:00
Andras Bacsai
3f9fd1404b
refactor(docker): update image references to use centralized registry URL
2025-03-25 08:17:13 +01:00
peaklabs-dev
225f24e650
chore: improve code quality suggested by code rabbit
2025-02-19 18:04:58 +01:00
peaklabs-dev
a539bfd765
fix(ssl): server id
2025-02-07 18:45:12 +01:00
peaklabs-dev
836006798f
fix(ssl): remove caCert even if it is a folder by accident
2025-02-07 18:28:58 +01:00
peaklabs-dev
d6a39f2ed3
fix(ssl): always create ca crt on disk even if it is already there
2025-02-04 16:57:40 +01:00
peaklabs-dev
a1e650e699
chore: rename ca crt folder to ssl
2025-02-03 21:42:28 +01:00
peaklabs-dev
7406ee67c2
chore(ssl): rename CA cert to coolify-ca.crt because of conflicts
2025-01-31 18:27:20 +01:00
peaklabs-dev
0915303769
feat(ssl): Add Coolify CA Certificate when adding a new server
2025-01-31 12:27:29 +01:00
peaklabs-dev
7bdef134e6
feat: get command and output for logs from CleanupDocker
2025-01-15 19:54:58 +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
Andras Bacsai
319c3023dc
fix
2024-12-02 22:50:03 +01:00
Andras Bacsai
58988d3686
fix: a few inputs
2024-12-02 22:50:03 +01:00
Andras Bacsai
37d4d5f98c
fix: version should come from constants + fix stripe webhook error reporting
2024-11-25 11:28:08 +01:00
Andras Bacsai
7dc65dfd79
fix: make sure important jobs/actions are running on high prio queue
2024-11-22 11:16:01 +01:00
peaklabs-dev
1c5ddab30d
use one constants file
2024-11-12 15:18:48 +01:00
peaklabs-dev
408ba9cc7a
fix docker minimum version
2024-11-12 13:27:26 +01:00
Andras Bacsai
47e9e69ce0
fixes
2024-11-10 22:07:41 +01:00