983 Commits
Author SHA1 Message Date
Andras BacsaiandClaude Opus 5.5 997396b926 feat(cloud): save deleted users' emails and keep unsubscribed teams for 60 days
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 23:12:34 +01:00
peaklabs-dev 8d1776bdcf chore: remove Windows support
- Removes coolify-testing-host.yml too, it published the testing host to Docker Hub for docker-compose.windows.yml alone, the development setup builds it locally
2026-11-02 00:04:49 +01:00
peaklabs-dev 911e68ab27 feat(release): add release.json and upstream.json
- config/constants.php reads the Coolify and helper versions from them
- The image and sync-cdn.sh write versions.json from upstream.json, install.sh reads it by key
2026-11-01 15:15:33 +01:00
peaklabs-dev 7560d0745d feat(release): add sync-cdn.sh to sync a release to the CDN
- Replaces php artisan sync:cdn and its sync:cdn task in scripts/run
- --purge clears the Cloudflare cache sooner than the 10 minutes it keeps a file, with the token and zone from the environment or .env
2026-11-01 15:13:43 +01:00
Andras BacsaiandClaude Opus 5.5 06747f9954 chore(release): bump Coolify version to 4.5.4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 22:14:12 +01:00
Andras Bacsai 2e874576e1 chore(release): bump Coolify version to 4.5.3 2026-10-28 13:59:51 +01:00
Andras Bacsai 7e6de3872f chore(release): bump Coolify version to 4.5.2 2026-10-28 12:16:17 +01:00
Andras BacsaiandClaude Opus 5.5 1e4431f53d fix(helper): verify download checksums and update bundled tools
Pin every helper download by SHA256 and the base images by digest, drop
the curl | bash installers, and add scripts/helper-checksums to refresh
the checksums. Update Alpine to 3.24, Docker CLI 29.9.2, Compose 5.6.1,
Buildx 0.38.1, pack 0.40.10, Railpack 0.43.0, and mise 2026.10.14.
Bump the helper to 1.0.19.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 23:19:08 +02:00
Andras BacsaiandClaude Opus 5.5 0eb78dcf9b feat(dev): pass the host NVIDIA GPU through to the KVM dev VM
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 11:16:47 +02:00
Andras Bacsai 16222f3588 chore(release): bump version to 4.5.1 and refine search styling 2026-10-23 19:48:39 +02:00
Andras Bacsai f5c8cb6ab4 chore(versions): set Coolify release version to 4.5.0 2026-10-20 15:02:17 +02:00
Andras BacsaiandClaude Opus 5.5 65a7bd5c05 chore: merge main into release/v4.5
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 13:37:20 +02:00
e0f6b41dac chore: merge main into release/v4.5 (#12206)
Co-authored-by: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Andras Bacsai <andrasbacsai@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 13:26:07 +02:00
Andras BacsaiandClaude Opus 5.5 63153aa8b4 fix(cloud): rework unsubscribed team cleanup and account deletion (#12210)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 17:32:16 +02:00
Andras BacsaiandClaude Opus 5.5 fb317d7129 chore: remove Sentry integration
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 11:14:35 +02:00
22a8c09dd6 Next (#12202)
Co-authored-by: Aditya Tripathi <aditya@climactic.co>
Co-authored-by: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: rosslh <ross@rosshill.ca>
Co-authored-by: Abdulfetah Suudi <suudiabdulfetah@gmail.com>
Co-authored-by: Dharmveer <51308779+dharmveer97@users.noreply.github.com>
Co-authored-by: Maxwell <136101+mxswd@users.noreply.github.com>
2026-10-19 10:07:23 +02:00
Andras Bacsai fa1895c99a feat(dashboard): add canvas view with active deployment overlay
Add a /dashboard/canvas page that renders every team server with its
resources and their running or queued deployments, backed by a new
ServerCanvasController::dashboard endpoint and a per-server usage
endpoint for zone headers. The dashboard remembers the list/canvas
choice and each section (projects, servers) its own table/grid view.

- Show Deploying/Queued pills on canvas cards and a foldable recent
  deployments panel; add shared CanvasControls component
- Allow backup downloads from the server host via the S3 download
  storage (PrepareFileDownloadJob accepts a null container)
- Extract backup toggle/run actions into ManagesDatabaseBackup and
  surface them in backup execution headers; merge S3 and retention
  sections into the general backup settings
- Move deployments indicator to the top bar and add a main nav
  resource menu with submenus; simplify breadcrumbs and settings
  layouts
- Add shared variables overview canvas and scheduled task modals
- Add feature tests for dashboard canvas, view modes, navbar
  submenus, backup S3 downloads and scheduled task modals
2026-10-14 23:55:28 +02:00
Andras Bacsai 448dc8ea0a feat(logging): strengthen secret redaction and add admin controls (#12151) 2026-10-13 20:43:19 +02:00
Andras Bacsai f63726279c Merge remote-tracking branch 'origin/release/v4.5' into sentinel-metrics-sidebar-page 2026-10-13 11:57:47 +02:00
Andras Bacsai d77580cb35 fix(metrics): fetch fleet data concurrently and refresh server access
Run metric requests in batches of eight workers, isolate endpoint failures,
and preserve CPU and memory history when Sentinel lacks a summary endpoint.
Repair Sentinel tokens before creating workers and bound SSH fetch timeouts.

Reauthorize team servers on refresh and hydration, clear stale metrics after
transfers or deletions, and resolve container metadata for team ID zero.

Use only root filesystem samples when mount fields are present, while
supporting legacy disk data. Add regression coverage for concurrent workers,
access changes, endpoint failures, and disk mapping.
2026-10-13 11:56:39 +02:00
Andras Bacsai f37761253d feat(server): set up Cloudflare tunnels with API tokens (#12157) 2026-10-13 11:32:26 +02:00
Andras Bacsai 4f92d3c094 feat(auth): add passkey sign-in (#12154) 2026-10-13 10:10:03 +02:00
Aditya Tripathi 7bed78c81e feat(auth): add passkey sign-in
Enable Fortify passkeys (laravel/passkeys) with the @laravel/passkeys
client. Users can sign in with a passkey, confirm sensitive actions with
one, and add, rename, and delete passkeys on the Profile page.

- Resolve the relying party for each request from the instance URL, then
  APP_URL, then localhost. Passkey routes return 404 on other hosts.
- Add the is_passkey_enabled instance setting (Settings > Advanced).
- Use a hex user handle (laravel/passkeys-server#41).
- Rate limit the passkey routes by client IP.
- Record audit events for registered, verified, and deleted passkeys.
2026-10-13 04:01:40 +00:00
Andras Bacsai 83384a7b95 Merge remote-tracking branch 'origin/release/v4.5' into automation/sync-main-to-release-v4.5 2026-10-12 22:30:41 +02:00
Andras BacsaiandClaude Opus 5.5 b13ecb0542 chore(seeding): seed railpack examples from new repo layout
Move all git examples into ApplicationSeeder on railpack, using the
reorganized coollabsio/coolify-examples main branch, and drop the
separate Railpack Examples project. Add DEV_SEED_IP to set the IP for
seeded sslip.io domains (e.g. a Tailscale IP).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 14:26:19 +02:00
Andras Bacsai 90c2e58e52 feat(build-packs): mark Nixpacks as deprecated and recommend Railpack 2026-10-11 18:39:45 +02:00
Andras Bacsai f55efc859d fix(docker): pin PHP base image to prevent startup failures
Pin development and production images to serversideup PHP v4.5.1 to
avoid the v5 user-bundle relocation that breaks startup.

Bump Coolify to 4.4.6 in the default config and version manifests.
2026-10-09 20:36:48 +02:00
Andras Bacsai 5246427b03 fix(upgrade): remove disk space checks that block Coolify updates 2026-10-09 20:03:49 +02:00
Andras Bacsai 5cece62545 feat: add Hostinger VPS, multi-destination backups and maintenance pages
- Add Hostinger server provisioning, API endpoints and lifecycle controls.
- Support multiple S3 destinations for database and volume backups.
- Add proxy error pages and application and service maintenance mode.
- Detect repository configuration and support environment imports.
- Add HTTP basic auth hash options and Redis-compatible database flushing.
- Improve Railpack builder cleanup and development instance backups.
2026-10-09 19:30:26 +02:00
Andras Bacsai a963f95612 fix(railpack): match frontend version to the helper's CLI
Use the helper's RAILPACK_VERSION, falling back to the installed CLI
version, instead of a hardcoded frontend version. Add regression tests
for both version sources and application-variable isolation.
2026-10-09 16:15:49 +02:00
Andras Bacsai d07bc9c0ff fix(docker): preserve resource containers during cleanup 2026-10-09 08:22:08 +02:00
Andras Bacsai b4ad8fa0f8 Merge remote-tracking branch 'origin/release/v4.5' into automation/sync-main-to-release-v4.5
# Conflicts:
#	config/constants.php
#	tests/Feature/Api/ApplicationSettingsApiTest.php
2026-10-08 08:36:19 +02:00
Andras Bacsai 5db069109a chore(release): bump Coolify version to 4.4.3 2026-10-07 16:48:01 +02:00
Aditya TripathiandAndras Bacsai 3bc90995da fix(railpack): stop the idle BuildKit builder and update Railpack to 0.40.1 (#12097)
Co-authored-by: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com>
2026-10-07 13:48:16 +02:00
Andras Bacsai 49b954efa2 chore(versions): bump coolify to 4.4.2 2026-10-07 12:20:24 +02:00
Andras Bacsai d54c03730d feat(scheduler): make scheduled job dispatch mode configurable
Default to sequential dispatch on self-hosted instances and concurrent
per-type dispatch on Coolify Cloud. Allow SCHEDULED_JOBS_DISPATCH_MODE
to override the default, falling back for invalid values.

Cover defaults, overrides, and fallback behavior in scheduler tests.
2026-10-06 23:16:40 +02:00
Andras Bacsai be72005980 fix(deployments): expire missing Horizon jobs after deployment timeout
Keep reserved jobs active and bound missing Horizon records by the server's
 deployment timeout. Add regression coverage for active and finished jobs.

Use UTC PostgreSQL sessions and bump the release version to 4.4.1.
2026-10-06 21:51:58 +02:00
Andras Bacsai e09876adcd fix(config): use docker.io as the default registry
A merge brought back ghcr.io as the default registry and helper image
registry. The install and upgrade scripts and the compose files use
docker.io.

- Default REGISTRY_URL and the helper image registry to docker.io
2026-10-05 21:24:30 +02:00
Andras Bacsai 22900b6d12 fix(proxy): stop automatic proxy network reconnects on status checks
Remove the periodic ConnectProxyToNetworksJob dispatch from
PushServerUpdateJob, the synchronous connect in ServerCheckJob when the
proxy is found running, and the connect-on-add in the server
Destinations component. Drop the now-unused
proxy.connect_networks_interval_seconds config option.

Replace the rate-limit/interval tests with a test asserting that no
jobs are pushed when the proxy is running.
2026-10-04 00:36:28 +02:00
Andras Bacsai b081673c98 fix(server): skip Sentinel checks on unreachable servers
- CheckAndStartSentinelJob returns early when the server is not
  functional. It now reads the container state with `docker ps --filter`,
  so an SSH failure throws and is no longer treated as a missing
  container that needs a restart.
- ServerManagerJob only dispatches the Sentinel version check for
  functional servers.
- On cloud, ServerPatchCheckJob runs on the maintenance queue and
  ServerLimitCheckJob runs on the webhooks queue.
- The default number of cloud maintenance workers goes from 10 to 60.
- excludeCertainErrors drops its unused ignore list and is typed as
  `never`.
- Docs and the Horizon config comments are updated, and tests cover the
  new behavior.
2026-10-03 23:39:38 +02:00
Andras Bacsai 083e71c481 fix(horizon): route webhook jobs to a dedicated cloud webhooks queue
On cloud, GitHub pull request webhooks and Stripe events now run on a
dedicated `webhooks` queue so a busy `high` queue cannot delay them.
Self-hosted instances keep these jobs on `high`.

- Add webhooks_queue() helper and use it in ProcessGithubPullRequestWebhook
  and StripeProcessJob
- Provision a `webhooks` Horizon pool in cloud production, sized by
  HORIZON_WEBHOOKS_PROCESSES (default 10)
- Document the new pool, rollout and rollback steps
- Cover pool provisioning and job queue routing in tests
2026-10-03 21:37:09 +02:00
Andras Bacsai e144b990c3 feat(horizon): add fixed-size per-queue worker pools on Coolify Cloud
Cloud production now runs one supervisor per queue (deployments, crons,
high, default, maintenance), so a busy queue cannot starve the others.
Add maintenance_queue() for slow Docker cleanups and a shared
horizon.worker_timeout config value. Self-hosted keeps the s6 supervisor.
2026-10-03 21:24:54 +02:00
Andras BacsaiandClaude Opus 5.5 332a970b27 feat(cdn): add Cloudflare cache purge to sync:cdn
Add a --purge option that purges the synced CDN files (and the legacy
/coolify-nightly/ paths for nightly) from the Cloudflare cache, and remind
the operator to run it after the CDN pull request is deployed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 16:00:29 +02:00
Andras Bacsai a14ef2d4ee chore(cdn): remove BunnyCDN sync and rename sync:bunny to sync:cdn
CDN files are synced through the coollabs-cdn GitHub repository only.
Remove the --bunny direct upload path, the BUNNY_API_KEY and
BUNNY_STORAGE_API_KEY settings, and rename the command to sync:cdn.
2026-10-02 11:36:04 +02:00
Andras Bacsai bef08d84de chore(horizon): lower job trim times
Keep completed and recent jobs for 10 minutes, pending for 30 minutes,
and failed and monitored jobs for 1 day.
2026-10-02 07:19:39 +02:00
Andras Bacsai e8337c73eb chore(release): set the version to 4.4.0
The release workflow only accepts vX.Y.Z tags that match the config version.
The nightly versions.json now matches versions.json, as the workflow test
requires.
2026-09-30 19:23:35 +02:00
Andras Bacsai 4f8bf46feb fix(auth): remove the unused Fortify profile route that bypassed the SSO email lock
PUT /user/profile-information changed the email with no SSO check and no
verification. The profile page has its own verified email change, so the
Fortify feature, its action and its binding are removed.
2026-09-30 18:10:18 +02:00
Andras BacsaiandClaude Opus 5.5 fd85b740f5 feat(github-runners): add ephemeral self-hosted runners on build servers (#12054)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 12:13:11 +02:00
Andras Bacsai abf9915995 chore(deps): remove Laravel Nightwatch integration
Drop the laravel/nightwatch package and its agent service from the
development and production s6-overlay configs. Remove the related
environment variables, constants, phpunit setting, Boost skill
registration, and configure-nightwatch agent skills. Update the
container role script test to stop expecting the nightwatch-agent
service.
2026-09-28 21:16:11 +02:00
Andras BacsaiandClaude Opus 5.5 714b09fa24 fix(ssh): never disable the SSH command timeout
SSH_COMMAND_TIMEOUT=0 (or an invalid value) removed the time limit of every
remote command, and imports could then be marked stale while still running.
Use the default of 3600 seconds for values that are not positive.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 10:29:01 +02:00