Commit graph

789 commits

Author SHA1 Message Date
peaklabs-dev
feb2200db4
chore(config): expire idle sessions after 1 day 2025-12-09 17:51:02 +01:00
peaklabs-dev
3a2dd35c41
chore(config): remove unused session options 2025-12-09 17:51:02 +01:00
peaklabs-dev
cf081bba5b
chore(config): use redis for sessions
- switch from database stored sessions to redis for improved performance and session TTL
- this allows us to remove the session DB table cleanup job needed on v4
2025-12-09 17:51:02 +01:00
peaklabs-dev
53c2046a9f
chore(config): remove unused caching options 2025-12-09 17:51:01 +01:00
peaklabs-dev
e10096bffe
chore(config): use redis for caching 2025-12-09 17:51:01 +01:00
peaklabs-dev
70b9b33e64
chore(config): configure redis connections
- configure separate redis connections for cache, jobs and sessions which use separate redis databases for easier debugging and separation
2025-12-09 17:51:01 +01:00
🏔️ Peak
adf3598d26
[v5.x] chore(config): configure logging (#7490) 2025-12-04 14:58:05 +01:00
peaklabs-dev
0114ffac3e
chore(config): setup production logging
- use stderr in addition to the daily logging channel so the laravel logs are passed to the container logs (docker logs)
- use the daily channel with local laravel.log to persist logs to disk for 10 days, ensuring a persistent copy even if the coolify container is removed/ updated
- rotate the logs in production every 10 days and only log warnings, to prevent an excessively large laravel.log file
- keep LOG_LEVEL=debug for the single channel as it will be used in development
2025-12-04 14:47:22 +01:00
peaklabs-dev
9a6d315292
chore(config): remove unused logging options 2025-12-04 14:40:25 +01:00
peaklabs-dev
5a20d9fe01
chore(config): add v4 DB as old_pqsql for the upgrade migration 2025-12-03 15:50:33 +01:00
peaklabs-dev
59f9b1a957
chore(config): configure v5 postgres DB 2025-12-03 15:44:14 +01:00
peaklabs-dev
36a22ba582
chore(config): remove unused DBs from database.php 2025-12-03 15:27:51 +01:00
peaklabs-dev
1582320651
chore(config): update config files to the latest skeleton version 2025-12-01 23:11:33 +01:00
peaklabs-dev
dab768211b
refactor: apply rector refactors 2025-11-30 16:58:58 +01:00
peaklabs-dev
09ca5040ec
chore(config): encrypt sessions 2025-11-30 16:58:58 +01:00
peaklabs-dev
e2f2885f42
chore(config): update config files to the latest skeleton version 2025-11-30 16:58:58 +01:00
peaklabs-dev
196054c543
style: apply pint to full codebase 2025-11-30 16:58:58 +01:00
peaklabs-dev
80d2b0f06f
chore(tooling): add ray for local debugging 2025-11-30 16:50:04 +01:00
peaklabs-dev
a55ad5a1da
chore(config): remove unused auth config option 2025-11-30 16:50:04 +01:00
peaklabs-dev
e28e346b7e
chore(config): improve app config 2025-11-30 16:50:04 +01:00
peaklabs-dev
be45e94c39
chore(config): switch from bcrypt to argon2id 2025-11-30 16:50:04 +01:00
peaklabs-dev
3cb36b0c41
chore(setup): create core skeleton 2025-11-30 16:50:04 +01:00
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
2921fe907d version++ 2025-11-28 09:41:01 +01:00
Andras Bacsai
e5c7459284 fix: update version numbers to 4.0.0-beta.451 and 4.0.0-beta.452 2025-11-26 14:46:52 +01:00
Andras Bacsai
4f87b251b0 fix: update version number to 4.0.0-beta.450 2025-11-26 10:50:03 +01:00
Andras Bacsai
68c5ebf221 fix: update version numbers to 4.0.0-beta.449 and 4.0.0-beta.450 2025-11-26 10:00:00 +01:00
Andras Bacsai
f460bb63cc feat: update version numbers to 4.0.0-beta.448 and 4.0.0-beta.449 2025-11-25 17:06:37 +01:00
Andras Bacsai
99e8aeb6f8 fix: update coolify version to 4.0.0-beta.447 and nightly version to 4.0.0-beta.448 2025-11-25 09:34:43 +01:00
Andras Bacsai
8d3a564cfe fix: update coolify version to 4.0.0-beta.446 and nightly version to 4.0.0-beta.447 2025-11-24 15:10:31 +01:00
Andras Bacsai
1270136da9 merge: merge next branch into feat-traefik-version-checker
Merged latest changes from the next branch to keep the feature branch
up to date. No conflicts were encountered during the merge.

Changes from next branch:
- Updated application deployment job error logging
- Updated server manager job and instance settings
- Removed PullHelperImageJob in favor of updated approach
- Database migration refinements
- Updated versions.json with latest component versions

All automatic merges were successful and no manual conflict resolution
was required.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 14:56:24 +01:00
Andras Bacsai
8f7ae2670c fix(versions): update coolify version to 4.0.0-beta.445 and nightly to 4.0.0-beta.446 2025-11-17 14:27:13 +01:00
Andras Bacsai
6593b2a553 feat(proxy): enhance Traefik version notifications to show patch and minor upgrades
- Store both patch update and newer minor version information simultaneously
- Display patch update availability alongside minor version upgrades in notifications
- Add newer_branch_target and newer_branch_latest fields to traefik_outdated_info
- Update all notification channels (Discord, Telegram, Slack, Pushover, Email, Webhook)
- Show minor version in format (e.g., v3.6) for upgrade targets instead of patch version
- Enhance UI callouts with clearer messaging about available upgrades
- Remove verbose logging in favor of cleaner code structure
- Handle edge case where SSH command returns empty response

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 09:59:17 +01:00
Andras Bacsai
f731ec74e6 feat(proxy): upgrade Traefik image to v3.6
Upgrade default Traefik proxy configuration from v3.5 to v3.6, with Coolify version bump to beta.444.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 09:31:07 +01:00
Andras Bacsai
b22e79caec feat(jobs): improve scheduled tasks with retry logic and queue cleanup
- Add retry configuration to CoolifyTask (3 tries, 600s timeout)
- Add retry configuration to ScheduledTaskJob (3 tries, configurable timeout)
- Add retry configuration to DatabaseBackupJob (2 tries)
- Implement exponential backoff for all jobs (30s, 60s, 120s intervals)
- Add failed() handlers with comprehensive error logging to scheduled-errors channel
- Add execution tracking: started_at, retry_count, duration (decimal), error_details
- Add configurable timeout field to scheduled tasks (60-3600s, default 300s)
- Update UI to include timeout configuration in task creation/editing forms
- Increase ScheduledJobManager lock expiration from 60s to 90s for high-load environments
- Implement safe queue cleanup with restart vs runtime modes
  - Restart mode: aggressive cleanup (marks all processing jobs as failed)
  - Runtime mode: conservative cleanup (only marks jobs >12h as failed, skips deployments)
- Add cleanup:redis --restart flag for system startup
- Integrate cleanup into Dev.php init() for development environment
- Increase scheduled-errors log retention from 7 to 14 days
- Create comprehensive test suite (unit and feature tests)
- Add TESTING_GUIDE.md with manual testing instructions

Fixes issues with jobs failing after single attempt and "attempted too many times" errors
2025-11-10 11:11:18 +01:00
Andras Bacsai
73985350ec fix: update version numbers to 4.0.0-beta.443 and 4.0.0-beta.444 2025-11-07 08:26:58 +01:00
Andras Bacsai
2768805996 fix: update helper_version to 1.0.12 in constants configuration 2025-11-06 14:33:42 +01:00
Andras Bacsai
fed01ab1a2 fix: update releases URL to use correct domain
The releases URL in the configuration was updated to use the correct domain 'coolify.io' instead of 'coollabs.io'. This change ensures that the application points to the right resource for fetching release information, which is crucial for maintaining accurate and up-to-date deployment processes.
2025-11-05 14:31:53 +01:00
Andras Bacsai
ac2a199c7b chore: update coolify version to 4.0.0-beta.442
This update increments the version of coolify to 4.0.0-beta.442 to reflect the latest changes and improvements. Additionally, the nightly version has been updated to 4.0.0-beta.443 to ensure consistency across the project. Keeping version numbers up to date is essential for tracking releases and ensuring that users are aware of the latest features and fixes.
2025-11-05 14:31:09 +01:00
Andras Bacsai
a89413bdbe fix: update version numbers to 4.0.0-beta.441 and 4.0.0-beta.442 2025-11-04 13:48:31 +01:00
Andras Bacsai
7520d6ca97 feat: Update version numbers to 4.0.0-beta.440 and 4.0.0-beta.441 2025-11-04 09:24:37 +01:00
Andras Bacsai
6fc5b01edc chore: update version numbers to 4.0.0-beta.439 and 4.0.0-beta.440 2025-10-29 20:38:48 +01:00
Andras Bacsai
a474dcb3b0 version++ 2025-10-21 20:40:32 +02:00
Andras Bacsai
3593d941af bump version to 4.0.0-beta.437 and update nightly version to 4.0.0-beta.438 2025-10-20 13:57:48 +02:00
Andras Bacsai
837a0f4545 Merge branch 'next' into andrasbacsai/livewire-model-binding
Resolved merge conflicts between Livewire model binding refactoring and UI/CSS updates from next branch. Key integrations:

- Preserved unique HTML ID generation for form components
- Maintained wire:model bindings using $modelBinding
- Integrated new wire:dirty.class styles (border-l-warning pattern)
- Kept both syncData(true) and validateDockerComposeForInjection in StackForm
- Merged security tests and helper improvements from next

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-16 11:05:29 +02:00
Andras Bacsai
733c20fc9d fix: update version numbers to 4.0.0-beta.436 and 4.0.0-beta.437 2025-10-16 10:14:20 +02:00
Andras Bacsai
53b605c4b2 Disable legacy_model_binding flag in Livewire config
All components have been migrated from legacy model binding to explicit
public properties with syncData() pattern. Safe to disable the flag.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-13 15:44:23 +02:00
Andras Bacsai
50383c7a35 chore(versions): update Coolify version numbers to 4.0.0-beta.435 and 4.0.0-beta.436
- Incremented the stable version in constants.php and versions.json to 4.0.0-beta.435.
- Updated the nightly version in versions.json and other/nightly/versions.json to 4.0.0-beta.436.
- Ensured consistency across versioning files for the latest release.
2025-10-03 10:28:29 +02:00
Andras Bacsai
da6c7ed7d5 chore(versions): bump Coolify stable version to 4.0.0-beta.434
- Updated the stable version number in constants.php to reflect the latest release.
- Ensured consistency with the previous versioning scheme.
2025-10-02 08:49:35 +02:00
Andras Bacsai
33aa32d1e6 chore(versions): update coolify version to 4.0.0-beta.433 and nightly version to 4.0.0-beta.434 in configuration files 2025-09-29 14:04:14 +02:00