Commit Graph
278 Commits
Author SHA1 Message Date
Andras Bacsai 76030a30d4 chore(v5): archive V5 implementation and remove runtime integration
Move V5 source, migrations, UI, scripts, and tests into documentation, then remove V5 routes, models, jobs, configuration, dependencies, and application hooks.
2026-08-15 19:13:30 +02:00
Juan Torchia 6ff6615600 fix(docker): keep MinIO client versions consistent 2026-08-14 21:06:13 +00:00
Andras Bacsai b3aa1fd232 feat(backups): use parallel gzip for volume backups
Add pigz to the helper image, select it when available with gzip fallback, and log the selected compressor in development.
2026-08-14 00:00:23 +02:00
Andras Bacsai 5e0e76df4b feat(release): rebuild stable images from reviewed draft releases
Add manual fix-release validation and stable image rebuilds, inject traceable development versions into SHA builds, and suppress invalid release links for development versions.
2026-08-11 16:11:13 +02:00
peaklabs-dev 494ca05239 fix(terminal): new function name of cookie package 2026-08-10 12:22:31 +02:00
peaklabs-dev 6877ef186b chore(deps): update php and node dependencies 2026-08-10 12:10:59 +02:00
JuanTorchiaandJuanTorchia 2aae718dcc chore(docker): bump cloudflared to 2026.7.3
The pinned cloudflared 2025.7.0 is built with Go 1.24.4 and grpc
v1.72.2, which carry two CRITICAL vulnerabilities:

- CVE-2025-68121 (crypto/tls: incorrect certificate validation
  during TLS session resumption), fixed in Go 1.24.13
- CVE-2026-33186 (grpc-go authz: authorization bypass due to
  improper HTTP/2 path validation), fixed in grpc 1.79.3

cloudflared 2026.7.3 ships patched Go/grpc; a Trivy scan of the
official linux-amd64 binary reports zero CRITICAL findings.
2026-08-06 18:11:49 +00:00
Andras Bacsai 32f9b48406 fix(v5): defer production runtime activation
Remove Flux token provisioning and container role handling from production.
Restore private server IP support and document the activation checklist.
2026-07-19 16:47:29 +02:00
Andras Bacsai d0247d3b09 feat(v5): gate V5 to development environments only
Introduce V5Feature and config so V5 routes, jobs, commands, morph maps,
and model queries run only when enabled. Move V5 migrations to
migrations-v5 (loaded only when enabled), remove Flux from production
Docker/install paths, and add isolation tests.
2026-07-19 11:44:12 +02:00
Andras Bacsai 0342185445 Merge remote-tracking branch 'origin/next' into v5-parallel-inertia-react 2026-07-18 20:57:08 +02:00
Andras Bacsai e2c2180f4f fix(dev): support root bind mounts and LAN Vite access
Keep the dev container as root for s6 init so composer can create
vendor/ on root-owned mounts, then chown writable paths to www-data.
Move init-setup into a shell script and expose VITE_HOST/PORT for
remote HMR (LAN/Tailscale) with Vite listening on 0.0.0.0.
2026-07-18 20:56:01 +02:00
Andras Bacsai ae32ab5d7b Merge remote-tracking branch 'origin/next' into v5-parallel-inertia-react 2026-07-18 15:57:26 +02:00
Andras Bacsai 47a292486c chore(deps): bump NGINX package to 1.31.2-r1 2026-07-13 10:54:31 +02:00
Andras Bacsai 6ae45684f9 feat(v5): add server reconciliation and canvas APIs
Split V5 dashboard behavior into domain controllers and policies,
add agent token rotation/revocation, status reconciliation jobs,
ingress firewall syncing, and canvas connection APIs.

Add migrations for V5 status tracking, server capabilities, resource
connection aliases, and revoked agent tokens.
2026-07-06 17:40:37 +02:00
Andras Bacsai df854feee8 Merge remote-tracking branch 'origin/next' into v5-parallel-inertia-react 2026-07-03 10:59:49 +02:00
Andras BacsaiandGitHub 58f6f9e05b feat(dev): add Lima testing server fixtures (#10844) 2026-07-03 10:07:55 +02:00
Andras Bacsai a42785189e fix(dev): cache bust mutable coold nightly assets 2026-06-21 18:15:47 +02:00
Andras Bacsai 86156b6f7a feat(v5): add mesh app canvas 2026-06-20 09:23:16 +02:00
Andras Bacsai c884aaaeea feat(v5): add coolify CLI version check 2026-06-16 13:57:42 +02:00
Andras Bacsai 762daf83a1 feat(container): support comma-separated roles
Allow s6 services to start for specific roles like horizon,
scheduler, nightwatch, and flux while keeping all as the default.
2026-06-15 23:36:47 +02:00
Andras Bacsai dcd325dc44 feat(v5): add Inertia app shell with Flux health
Adds v5 routing, middleware, home page rendering, team context sharing,
project model/table support, and Flux health reporting. Installs Flux in
container builds with role-aware s6 services and documents runtime roles.
2026-06-15 23:09:49 +02:00
Andras BacsaiandGitHub 257cabaecb fix(dev): testing host downloads wrong arch docker binaries on linux (#10462) 2026-06-03 10:19:53 +02:00
Andras Bacsai 53f24df0a0 fix(terminal): enforce eight hour session expiry
Add a visible countdown in the terminal UI and terminate realtime PTY
sessions after the fixed maximum lifetime.
2026-06-01 09:45:56 +02:00
Andras Bacsai 4d3182c938 fix(terminal): allow debug logging via env override 2026-06-01 09:08:20 +02:00
Andras Bacsai b46d8e2601 fix(terminal): keep sessions alive without hard timeouts 2026-05-31 21:52:46 +02:00
ShadowArcanistandGitHub 9503d42ca6 fix(dev): testing host downloads wrong arch docker binaries on linux 2026-05-30 13:52:48 +05:30
Andras BacsaiandGitHub 7c28d339c8 chore(deps): bump ws from 8.19.0 to 8.20.1 in /docker/coolify-realtime (#10424) 2026-05-29 15:24:35 +02:00
Andras Bacsai 20f9bb4305 perf(realtime): reduce push update churn
Cache destination lookups and skip empty resource queries during push
server updates. Add database indexes and Postgres storage tuning for
hot-update tables, and make the realtime entrypoint forward process
failures and signals reliably.
2026-05-27 19:38:23 +02:00
dependabot[bot]andGitHub 98b36c1ff7 chore(deps): bump ws from 8.19.0 to 8.20.1 in /docker/coolify-realtime
Bumps [ws](https://github.com/websockets/ws) from 8.19.0 to 8.20.1.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/8.19.0...8.20.1)

---
updated-dependencies:
- dependency-name: ws
  dependency-version: 8.20.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-27 07:27:47 +00:00
Andras Bacsai 6ceb444cf4 fix(docker): remove default nginx configs
Delete the packaged nginx config files after installing nginx so the
image uses the application-provided configuration.
2026-05-16 20:09:25 +02:00
Andras Bacsai 0917bb7b8e fix(docker): install patched nginx from official repository
Pin nginx to the official nginx.org Alpine mainline package in development and production images so patched releases can be installed consistently.
2026-05-16 19:06:39 +02:00
Andras Bacsai 7056a1cae1 chore(helper): bump railpack and mise versions 2026-05-13 10:50:50 +02:00
Andras Bacsai c8185c8336 fix(realtime): replace axios with native HTTP client
Remove axios from the realtime server dependencies to avoid header injection risk,
switch Docker builds to npm ci, and bump the realtime image version to 1.0.15.
2026-05-11 21:43:52 +02:00
Andras Bacsai a37c39e6c1 Merge remote-tracking branch 'origin/next' into feat/railpack 2026-05-11 12:57:58 +02:00
Andras Bacsai 14679e73b2 fix(docker): use HTTPS for nginx apk repository 2026-05-11 12:57:17 +02:00
Andras Bacsai ec71d33f5e fix(railpack): pin frontend image version via config constant
Remove RAILPACK_FRONTEND_IMAGE env var from helper Dockerfile and resolve
the image ref at runtime using a new `railpack_version` constant in config.
Eliminates Docker build-time env interpolation for BUILDKIT_SYNTAX arg.
2026-04-30 16:27:08 +02:00
Andras Bacsai b3339d1034 feat(railpack): add buildpack control var filtering and dev seeder
Extract NIXPACKS_/RAILPACK_ prefix filtering into a reusable
`scopeWithoutBuildpackControlVariables` query scope on EnvironmentVariable.
Apply scope consistently to runtime vars, runtime preview vars, and
buildtime var generation in ApplicationDeploymentJob.

Refactor `generate_railpack_env_variables` to return a Collection.
Add `RAILPACK_FRONTEND_IMAGE` constant and bake it into the
coolify-helper Dockerfile as a build arg.

Add DevelopmentRailpackExamplesSeeder (dev/local env only) for
seeding example Railpack apps, wired into DatabaseSeeder.

Add tests:
- ApplicationDeploymentControlVarFilteringTest: verifies control vars
  are excluded from runtime and buildtime envs
- DevelopmentRailpackExamplesSeederTest: verifies seeder behavior
- ApplicationDeploymentRailpackEnvParityTest: parity checks for env
  handling across build/runtime paths
2026-04-28 14:37:31 +02:00
Andras Bacsai 5cef7cc092 Merge remote-tracking branch 'origin/next' into feat/railpack 2026-04-28 14:36:54 +02:00
Andras BacsaiandGitHub fbed9063d8 build(deps): bump follow-redirects from 1.15.11 to 1.16.0 in /docker/coolify-realtime (#9690) 2026-04-28 14:30:21 +02:00
Andras Bacsai 1368026f20 fix(terminal): remove verbose websocket message logging 2026-04-28 12:29:32 +02:00
Andras Bacsai cabcd8f699 fix(terminal): add idle timeout, reconnect replay, and scrollback preservation
- Kill PTY and notify client after 30 min of inactivity (IDLE_TIMEOUT_MS)
- Buffer client messages during async auth/IP fetch to prevent race-condition
  message loss on fast reconnects
- Replay last sent command after transient reconnect so PTY respawns without
  user interaction
- Preserve scrollback on disconnect/reconnect; write visible timestamp markers
  instead of wiping term state
- Handle idle-timeout sentinel on client with user-facing error message
2026-04-28 12:26:31 +02:00
Andras Bacsai 9408620d5f fix(terminal): add WS heartbeat and fix proxy idle disconnects
Proxies (Cloudflare, nginx) drop idle WebSocket connections before the
application notices, leaving clients typing into dead sockets.

- Add server-side ping/pong heartbeat (30s) in terminal-server.js;
  terminate unresponsive clients instead of letting connections go stale
- Move client keepAlive interval start to the connect event so it
  restarts correctly after reconnects
- Remove hidden-tab keepalive short-circuit — server pings now own
  liveness; suppressing client pings while hidden masked proxy drops
- Fix clearAllTimers to use clearTimeout for one-shot timers
- On visibility resume, probe with a 5s timeout instead of the default
  35s so half-open sockets are detected quickly
- Bump coolify-realtime to 1.0.14 across all compose files
2026-04-28 10:35:32 +02:00
dependabot[bot]andGitHub f1f53a31ab build(deps): bump follow-redirects in /docker/coolify-realtime
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.11 to 1.16.0.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.11...v1.16.0)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-version: 1.16.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-21 10:31:57 +00:00
Andras Bacsai 451b7376ed Merge remote-tracking branch 'origin/next' into feat/railpack 2026-04-17 07:01:27 +02:00
dependabot[bot]andGitHub 942e1baaec build(deps): bump axios in /docker/coolify-realtime
Bumps [axios](https://github.com/axios/axios) from 1.13.6 to 1.15.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.13.6...v1.15.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.15.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-12 11:13:23 +00:00
Andras Bacsai f573ad28a0 Merge remote-tracking branch 'origin/next' into feat/railpack 2026-04-09 17:12:26 +02:00
Andras Bacsai acd07abcce fix(security): run apk upgrade in development Dockerfile
Add `apk upgrade --no-cache` before installing GnuPG and PostgreSQL
repository keys to ensure base Alpine packages are patched.
2026-04-05 18:18:58 +02:00
Charles Dabard 7d9a0748bf fix(security): add apk upgrade to helper and realtime Dockerfiles
The production Dockerfile already runs apk upgrade at build time.
The helper and realtime Dockerfiles were missing this step.

The helper (Alpine 3.21) ships with CVE-2025-15467 in OpenSSL 3.3.5.
The realtime (Alpine 3.18) has outdated OpenSSL 3.1.2 with HIGH CVEs.

Adding apk upgrade before apk add makes both images consistent
with the production Dockerfile.
2026-04-05 00:23:17 +02:00
Andras Bacsai c28fbab36a style(docker): standardize service startup log message format
Align log messages across all service startup scripts (horizon, nightwatch-agent,
scheduler-worker) in both development and production environments to use a
consistent "   INFO  " prefix format.
2026-03-27 19:05:36 +01:00
Andras Bacsai 9b0088072c refactor(docker): migrate service startup from Artisan commands to shell scripts
Remove custom Artisan console commands (Horizon, Nightwatch, Scheduler) and
refactor service startup logic directly into s6-overlay shell scripts. Check
environment variables from .env instead of routing through Laravel config.

Services now sleep when disabled instead of exiting immediately. Both
development and production environments updated consistently.
2026-03-27 14:12:30 +01:00