Commit graph

795 commits

Author SHA1 Message Date
6db1c5e9e4 style(branding): replace Coolify purple and yellow with MapleDeploy palette
Replace #6b16ed (Coolify purple) with #d52b1e (MapleDeploy red) and
form focus states, dirty indicators, chart colors, and theme tokens.
Also fix warning color scale to use standard Tailwind yellow values.
2026-03-14 00:17:59 -04:00
41c15a240f chore: remove broken feedback form and all entrypoints
The feedback form relies on instance SMTP being configured, which
MapleDeploy customers won't do. Without SMTP it silently logs to
the server and shows a misleading success message. Removed the
navbar button, onboarding modal, subscription page link, API
endpoint, and all associated dead code.
2026-03-14 00:15:55 -04:00
88fab3e119 feat: add update pipeline with MapleDeploy CDN and versioning
Route all Coolify update artifacts (versions.json, upgrade.sh,
compose files) through updates.mapledeploy.ca instead of upstream
cdn.coollabs.io. Extend CI to publish artifacts to Bunny CDN
storage zone and purge cache on each build.

- Point CDN_URL, versions_url, upgrade_script_url to updates.mapledeploy.ca
- Hardcode helper/realtime images to ghcr.io (not mirrored to Forgejo)
- Pass registry_url as 3rd arg to upgrade.sh for main image pulls
- Adopt versioning scheme 4.0.0-beta.X.N (bump to 4.0.0-beta.463.1)
- Add CI steps: generate versions.json, upload to Bunny, purge cache
2026-03-14 00:15:55 -04:00
a8ea8c9548 feat(branding): apply MapleDeploy branding to Coolify
Replace Coolify branding with MapleDeploy throughout the UI: logos,
favicon, fonts (Overlock 900), color scheme, help links, and page
titles. Remove GitHub Actions workflows and add Forgejo CI build
workflow. Strip cloud-only features (subscription prompts, sponsor
links, server creation cloud options).
2026-03-14 00:15:16 -04:00
Andras Bacsai
fd6ac4ef9d version++ 2026-03-12 13:26:59 +01:00
Andras Bacsai
b926f23824 version++ 2026-03-11 12:01:02 +01:00
Andras Bacsai
babc9ff658 chore(release): bump version to 4.0.0-beta.466 2026-03-11 07:10:32 +01:00
Andras Bacsai
1d3dfe4dc8 chore(version): bump coolify, realtime, and sentinel versions 2026-03-10 20:40:49 +01:00
Andras Bacsai
d2744e0cff fix(database): handle PDO constant name change for PGSQL_ATTR_DISABLE_PREPARES
Support both the older PDO::PGSQL_ATTR_DISABLE_PREPARES and newer
Pdo\Pgsql::ATTR_DISABLE_PREPARES constant names to ensure compatibility
across different PHP versions.
2026-03-03 09:04:45 +01:00
Andras Bacsai
d71d91d63e fix(version): update coolify version to 4.0.0-beta.464 and nightly version to 4.0.0-beta.465 2026-02-23 13:47:26 +01:00
Andras Bacsai
b7b0dfeddd chore: prepare for PR 2026-02-23 13:24:49 +01:00
Andras Bacsai
47a3f2e2cd test: add Pest browser testing with SQLite :memory: schema
Set up end-to-end browser testing using Pest Browser Plugin + Playwright.
New v4 test suite uses SQLite :memory: database with pre-generated schema dump
(database/schema/testing-schema.sql) instead of running migrations, enabling
faster test startup.

- Add pestphp/pest-plugin-browser dependency
- Create GenerateTestingSchema command to export PostgreSQL schema to SQLite
- Add .env.testing configuration for isolated test environment
- Implement v4 test directory structure (Feature, Browser, Unit tests)
- Update Pest skill documentation with browser testing patterns, API reference,
  debugging techniques, and common pitfalls
- Configure phpunit.xml and tests/Pest.php for v4 suite
- Update package.json and docker-compose.dev.yml for testing dependencies
2026-02-11 15:25:47 +01:00
peaklabs-dev
4c3253fdf8
chore: bump coolify version 2026-02-04 18:39:02 +01:00
Andras Bacsai
b971440202 fix: update version numbers to 4.0.0-beta.462 and 4.0.0-beta.463 2026-01-16 12:03:31 +01:00
Andras Bacsai
3eacaa325b fix: make PgBouncer prepared statement disabling configurable
Use PDO::PGSQL_ATTR_DISABLE_PREPARES with DB_DISABLE_PREPARES env variable
to prevent "cached plan must not change result type" errors during rolling
deployments with PgBouncer. Defaults to false for normal operation.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 13:16:28 +01:00
Andras Bacsai
84c89a83b8 fix: disable prepared statements for PgBouncer compatibility
Add PDO::ATTR_EMULATE_PREPARES option to prevent "cached plan must not
change result type" errors during rolling deployments with PgBouncer.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 12:04:09 +01:00
Andras Bacsai
7e73058b0a chore: update versions.json for consistency across environments 2026-01-02 17:10:50 +01:00
Andras Bacsai
42633ddc52 fix: update version numbers to 4.0.0-beta.460 and 4.0.0-beta.461 2025-12-31 11:07:04 +01:00
Andras Bacsai
c98f947a0c fix: Update version numbers to 4.0.0-beta.459 and 4.0.0-beta.460 2025-12-23 15:22:39 +01:00
Andras Bacsai
d901306e86 Bump version to 4.0.0-beta.458 and update nightly version to 4.0.0-beta.459 2025-12-18 13:22:08 +01:00
Andras Bacsai
f53027a0a3 chore: update version numbers to 4.0.0-beta.457 and 4.0.0-beta.458 2025-12-18 10:26:27 +01:00
Andras Bacsai
aaa72be58a Bump version to 4.0.0-beta.456 and update nightly version to 4.0.0-beta.457 2025-12-17 11:05:01 +01:00
Andras Bacsai
51ed9b390d Change default session driver from Redis to database
Fixes intermittent 419 "Page Expired" errors on login/logout caused by
a race condition with Redis sessions. Database sessions are synchronous
and don't have this issue.

Users can still use Redis sessions by setting SESSION_DRIVER=redis.

🤖 Generated with Claude Code

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-16 12:11:59 +01:00
Andras Bacsai
de59096c9d
Bump version to v455 (#7601)
Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-12 11:21:54 +01:00
Andras Bacsai
25e295e627 Bump version to 4.0.0-beta.454 2025-12-09 16:15:55 +01:00
Andras Bacsai
bade9186fd fix: change default session driver from database to redis 2025-12-08 14:14:52 +01:00
Andras Bacsai
158d54712f Remove webhook maintenance mode replay feature
This feature stored incoming webhooks during maintenance mode and replayed them
when maintenance ended. The behavior adds unnecessary complexity without clear
value. Standard approach is to let webhooks fail during maintenance and let
senders retry.

Removes:
- Listener classes that handled maintenance mode events and webhook replay
- Maintenance mode checks from all webhook controllers (Github, Gitea, Gitlab, Bitbucket, Stripe)
- webhooks-during-maintenance filesystem disk configuration
- Feature mention from CHANGELOG

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 13:36:32 +01:00
Andras Bacsai
942f14fa7e Fix: Update version numbers for Coolify and nightly releases 2025-12-01 13:21:55 +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