340 Commits
Author SHA1 Message Date
033f0c84da v4.7 (#12478)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com>
Co-authored-by: Aditya Tripathi <aditya@climactic.co>
2026-11-06 14:25:02 +01:00
peaklabs-dev 0e30950793 feat(release): streamline versions.json on the CDN
- Every channel has a block of its own, every version after this one reads only these blocks
- Every stable sync also fills the coolify and traefik keys older instances read
- An instance keeps a copy of versions.json and reads upstream.json of the image until it has one
2026-11-02 00:07:20 +01:00
peaklabs-dev 9f21022732 build(image): set every OCI label on the production and development images 2026-11-02 00:06:48 +01:00
peaklabs-dev 90ceb78eda ci: remove unused and temporary workflows 2026-11-02 00:04:49 +01:00
peaklabs-dev 06ad71439c build: move the helper image to coollabsio/coolify-helper
- Docker Compose builds the development helper from the main branch of that repository, scripts/dev-helper from there or from a local checkout
- Remove buildHelperImage from the settings, nothing calls it since its button was removed
2026-11-02 00:03:45 +01:00
peaklabs-dev e0fb2b3897 ci(release): build and release a nightly twice a day
- Remove other/nightly, the nightly channel uses the production files, so there are no longer two copies to keep in sync
- sync-cdn.sh --nightly syncs the files of the commit the nightly is built from to /coolify/nightly on the CDN, with the nightly version in its versions.json and in /coolify/release.json, and pushes them straight to main of coollabs-cdn
- version.sh picks the branch the nightly comes from, the release branch of the next version after the newest stable one or next, and names the version <preview>.<YYYYMMDD>.<N>
- The image is labeled with its version and commit, the nightly workflow reads both from the image nightly points at to count up N and to skip a run without a new commit
2026-11-01 19:37:39 +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
62b2a99a70 chore: merge main into next (#12351)
Co-authored-by: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com>
Co-authored-by: Aditya Tripathi <aditya@climactic.co>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 22:25:43 +01:00
Andras Bacsai 8e3ac385f7 fix(terminal): pass the cloudflared Access service token to SSH
Closes #12312
2026-10-25 23:58:32 +01:00
peaklabs-dev 35e1a05705 chore(docker): bump serversideup PHP image to v5.0.3 2026-10-25 22:48:06 +01:00
peaklabs-dev 57d75d85d4 fix(docker): bump Nginx to 1.31.8 2026-10-25 22:46:49 +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 Bacsai f97398c83c fix(nginx): proxy realtime and terminal WebSockets on the dashboard port
A reverse proxy that forwards only port 8000 (for example Tailscale Serve or a Cloudflare Tunnel without path rules) sent /app/ and /terminal/ws to Laravel. Proxy them to Reverb (6001) and the terminal server (6002) in the container.

Closes #11707
2026-10-23 23:06:51 +02:00
Andras Bacsai b769ae193d fix(php): disable session upload progress 2026-10-23 13:33:51 +02:00
Andras Bacsai b8b82d545f chore(docker): bump cloudflared to 2026.10.3 2026-10-21 21:32:42 +02:00
Andras Bacsai c232e8f68f chore(docker): bump Serversideup PHP image to v5.0.2 2026-10-21 21:29:15 +02:00
Andras Bacsai 666ae60c2c Merge remote-tracking branch 'origin/main' into release/v4.5 2026-10-21 16:49:31 +02:00
🏔️ Peak ff642008f1 fix(security): releease v4.4.7 (#12257) 2026-10-21 16:18:27 +02:00
peaklabs-dev 86c21c0d5b fix(docker): bump cloudflared to 2026.10.3 2026-10-21 16:04:59 +02:00
peaklabs-dev 6a6d33cd04 fix(docker): use Node.js 24.22.1 2026-10-21 15:50:33 +02:00
peaklabs-dev 435b2bcf54 ci: add temporary patched PHP base image build 2026-10-21 14:20:51 +02:00
peaklabs-dev f05609dc11 fix(docker): use the patched PHP base image 2026-10-21 14:05:44 +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
Andras Bacsai 10e93c3751 fix(terminal): stop interactive programs from leaking CPU after close (#12230) 2026-10-19 21:31:26 +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
e3d4411ff2 chore: merge main into release/v4.5 (#12192)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Furox <177975472+Furox-Art@users.noreply.github.com>
Co-authored-by: johandenhollander <johan.den.hollander@finalist.nl>
Co-authored-by: João Cruz <161638790+SrJooJ@users.noreply.github.com>
Co-authored-by: Saim Hashmi <hashmisaim037@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-18 23:43:20 +02:00
Andras BacsaiandClaude Opus 5.5 6b3f60c7d6 fix(docker): ship versions.json in production image
Closes #11868

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 23:38:06 +02:00
Andras Bacsai 8f9c6d10a7 fix(ssh): reap mux orphans by socket ownership, not file existence
Closes #11883
2026-10-15 22:59:02 +02:00
Andras Bacsai ad526a4c32 fix(dev): restore s6 user bundle in user-bundles.d
The MCP merge (#12163) moved the bundle back to s6-rc.d, which overrides
the serversideup v5 bundle and stops php-fpm and nginx from starting.
2026-10-14 14:57:12 +02:00
Andras Bacsai 521b3cb90f feat(mcp): add REST-backed resource management tools (#12163) 2026-10-14 13:26:12 +02:00
Andras Bacsai 5eeae40041 chore(docker): upgrade serversideup PHP images to v5.0.0
Move s6 user bundles to user-bundles.d and update packaging assertions.
Preserve production OPcache timestamp validation and smaller memory limits.
2026-10-14 10:28:53 +02:00
Andras Bacsai 8dfad2c16c fix(dev): define the s6 user bundle in user-bundles.d (#12155) 2026-10-13 11:19:26 +02:00
Aditya Tripathi 5e39010543 fix(dev): define the s6 user bundle in user-bundles.d
The serversideup/php base image now defines its user bundle (nginx,
php-fpm) in /etc/s6-overlay/user-bundles.d. A bundle in s6-rc.d/user
has priority over it, so the dev container started without nginx and
php-fpm and did not become healthy.
2026-10-13 08:27:33 +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 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
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 bf007b9d2d fix(docker): reduce production image size 2026-10-04 09:54:19 +02:00
Andras BacsaiandClaude Opus 5.5 a0fa21b448 fix(reverb): use the uv event loop and raise the open-file limit
The default stream_select() loop fails once a descriptor reaches 1024
(FD_SETSIZE). Install ext-uv and, only when an event loop extension is
available, raise the soft open-file limit of Reverb up to 65536.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 16:01:20 +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 Bacsai 165d2f3dc8 fix: harden traffic analytics, terminal errors and Postgres restores
Traffic analytics:
- Reject enabling unless the server runs a Coolify-managed Traefik or
  Caddy proxy, and show the reason in the settings UI
- Save the proxy configuration before the setting so a failure leaves
  both unchanged; allow disabling after the proxy was removed
- Skip the proxy restart when the proxy is stopped and report that the
  config applies on next start
- Preserve the user's own Traefik --accesslog* flags and restore them
  when analytics is disabled
- Rotate the Traefik access log in the sidecar with BusyBox tools
  (copytruncate, 5 gzip rotations)
- Create the access log before starting Sentinel, which opens it once

Terminal:
- Detect and surface WebSocket connection rejections in the browser
  terminal, with shared helpers in terminal-connection.js and
  terminal-utils.js

Database import:
- Restore PostgreSQL backups in a single transaction; SQL replace
  restores go into a temporary database and swap in only on success,
  leaving the current database untouched on failure
2026-09-25 22:58:07 +02:00
Andras BacsaiandClaude Opus 5.5 338f1f837f feat(dev): run one isolated dev instance per git branch
Merge scripts/dev-instances into scripts/dev. Each branch gets its own
Compose project, container, volumes, port block, libvirt network, and
KVM VMs, so stop and start reuse the same data and worktrees do not
collide.

- Name instances after the branch; keep slots and APP_KEYs in the main
  checkout's .dev-instances/ so they survive worktree removal
- Reuse existing QEMU VMs instead of recreating them; add dev:qemu --fresh
- Give each instance an isolated libvirt network (10.221.<slot>.0/24)
  and VM names coolify-dev-<branch>--<profile>
- Publish per-instance browser ports and publish them with tailscale
  serve when APP_URL is a tailnet host
- Add urls, exec, logs, container, destroy, and teardown commands; run
  teardown from jean.json before Jean deletes a worktree
- Fix Reverb/terminal browser ports and the testing-host alias in the
  instance compose file
- Keep fresh worktree instances working: pre-create laravel.log, log the
  host dev:qemu call to stderr, and stop Vite from watching vendor/

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 11:55:49 +02:00
Andras Bacsai a5564320ab fix: improve terminal and realtime session handling
Commit creation was blocked because the shared Git metadata is read-only in this session. All 14 changes remain staged and ready to commit.
2026-09-22 20:17:14 +02:00
Andras Bacsai 29b93c7ef0 fix(reverb): always start Reverb service in containers 2026-09-21 22:59:20 +02:00
Andras Bacsai 67dd34bce7 Merge remote-tracking branch 'origin/next' into reverb-realtime-migration 2026-09-21 21:32:19 +02:00
github-actions[bot] 69d1e89ac2 Merge remote-tracking branch 'origin/main' into next 2026-09-16 03:14:20 +00:00
Andras Bacsai ede9d8417a build(minio): use packaged mx client in development images 2026-09-15 23:00:45 +02:00
github-actions[bot] b903def71b Merge remote-tracking branch 'origin/main' into next 2026-09-14 11:33:22 +00:00
Andras Bacsai b692b27b4e chore(docker): pin AIStor MinIO client release 2026-09-14 13:32:30 +02:00
Andras Bacsai 2c1744fbd2 Merge remote-tracking branch 'origin/next' into pr-11784-automation/sync-main-to-next 2026-09-14 13:30:17 +02:00
Andras Bacsai fde274c358 chore(development): switch MinIO client to AIStor image 2026-09-14 13:02:49 +02:00