Commit Graph
15540 Commits
Author SHA1 Message Date
Andras Bacsai 635b9732b6 chore: remove DESIGN.md design specification file 2026-05-07 12:22:59 +02:00
dependabot[bot] 4e446559a8 build(deps): bump phpseclib/phpseclib from 3.0.51 to 3.0.52
Bumps [phpseclib/phpseclib](https://github.com/phpseclib/phpseclib) from 3.0.51 to 3.0.52.
- [Release notes](https://github.com/phpseclib/phpseclib/releases)
- [Changelog](https://github.com/phpseclib/phpseclib/blob/master/CHANGELOG.md)
- [Commits](https://github.com/phpseclib/phpseclib/compare/3.0.51...3.0.52)

---
updated-dependencies:
- dependency-name: phpseclib/phpseclib
  dependency-version: 3.0.52
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-06 17:58:22 +00:00
Andras Bacsai 84b0f9ba7a feat(ui): add collapsible sidebar with tooltip and team menu (#9945) 2026-05-06 15:31:12 +02:00
Andras Bacsai b623c9e5be fix(ui): move top padding to collapsed/expanded states in navbar
Padding `lg:pt-6` moved from static class to expanded-state Alpine binding,
and `lg:pt-8` added for collapsed state, so top spacing responds correctly
to sidebar collapse toggle.
2026-05-06 15:01:12 +02:00
Andras Bacsai 02dd8093a3 feat(ui): add collapsible sidebar with tooltip and team menu
Sidebar collapses to icon-only mode on lg breakpoint. State persists
in localStorage. Collapsed state shows logo icon, team initial button
with flyout menu, and hover tooltips for nav items.
2026-05-06 14:56:13 +02:00
Andras Bacsai fe934dd139 Merge remote-tracking branch 'origin/next' into feat/railpack 2026-05-06 14:33:22 +02:00
Andras Bacsai be6604913b fix(scheduled-task): guard against undefined relationships in server() method (#9922) 2026-05-06 14:32:36 +02:00
Andras Bacsai 29d41ba041 Merge remote-tracking branch 'origin/next' into 9916-investigate-undefined-relationship 2026-05-06 14:32:16 +02:00
Andras Bacsai 7e5e046563 feat(mcp): add instance-level MCP server toggle via API and UI (#9862) 2026-05-05 22:09:17 +02:00
Andras Bacsai 45f65481e6 fix(mcp): change enable/disable endpoints from GET to POST and fix service/app listing
- `/mcp/enable` and `/mcp/disable` now use POST (state-mutating ops)
- `ListServices` queries DB directly instead of loading all projects into memory
- `ListApplications` validates tag arg rejects empty string (not just falsy)
2026-05-05 22:07:58 +02:00
Andras Bacsai d5e34c2249 Merge remote-tracking branch 'origin/next' into mcp-server-instance-toggle 2026-05-05 22:04:13 +02:00
Andras Bacsai 10d3657fc1 Merge remote-tracking branch 'origin/next' into feat/railpack 2026-05-05 21:59:30 +02:00
Andras Bacsai 14359490f0 Merge remote-tracking branch 'origin/next' into 9916-investigate-undefined-relationship 2026-05-05 21:59:25 +02:00
Andras Bacsai 2cbb449a06 docs(sponsors): add Capture.page as big sponsor 2026-05-05 21:04:25 +02:00
Andras Bacsai d1a416f256 docs(sponsors): add LumaDock as big sponsor 2026-05-05 20:52:17 +02:00
Andras Bacsai 22a2c05a1d test(railpack): add API, Livewire UI tests and e2e smoke script
Add feature tests covering railpack build pack via REST API and
Livewire UI components, plus a bash smoke test that deploys seeded
railpack-* example apps against the local dev stack and verifies
COOLIFY_*, SOURCE_COMMIT, and RAILPACK_* env vars land correctly.
2026-05-05 15:32:43 +02:00
Andras Bacsai 52f68c22ed Merge remote-tracking branch 'origin/next' into feat/railpack 2026-05-05 15:32:19 +02:00
Andras Bacsai e89820b465 refactor(deployment): move copyLogs to client-side and hide refund when ineligible
Move copyLogs from PHP Livewire method to Alpine.js to avoid
unnecessary server round-trips. Extract collectVisibleLogs()
helper shared by both copy and download actions.

Hide refund section entirely when not eligible instead of
rendering a permanently disabled button.
2026-05-05 15:30:32 +02:00
Andras Bacsai 1849b5903e refactor(scheduled-task): simplify server() with nullsafe operators and add return type
Replace nested null checks with nullsafe operator chains, add ?Server
return type, drop unreachable database branch, and cover all paths with
feature tests.
2026-05-04 12:26:15 +02:00
Romain ROCHAS 1965516cae Merge branch 'next' into update-homarr 2026-05-02 02:47:53 +07:00
Andras Bacsai b6ca6b1b20 feat(railpack): expose COOLIFY_* vars at build time and generalize buildpack control flag
Mirrors Nixpacks behavior: inject COOLIFY_* and SOURCE_COMMIT into
railpack build variables so apps (e.g. SPAs baking public URLs) can
read them via /run/secrets/<KEY>.

Rename is_nixpacks → is_buildpack_control to cover both NIXPACKS_ and
RAILPACK_ prefixed keys. Update the env variable view and appends list
accordingly.

Promote generate_coolify_env_variables to protected for testability.
2026-04-30 18:31:41 +02:00
Andras Bacsai 21eac6654f Merge remote-tracking branch 'origin/next' into feat/railpack 2026-04-30 18:25:06 +02:00
Andras Bacsai 8e22ce4ba7 fix(vite): restrict CORS to known origins instead of wildcard
Add explicit CORS allowlist covering localhost variants, APP_URL env
var, and the configured vite host/port pair. Replaces implicit open
CORS with regex-based origin matching.
2026-04-30 18:23:07 +02:00
peaklabs-dev 1f1fe1f184 fix(dev): disable IP seeding in dev as it does not work 2026-04-30 17:37:46 +02:00
Andras Bacsai ace643d3d8 fix(railpack): query buildtime env vars directly instead of via computed attribute
Replace `railpack_environment_variables_collection()` helper (which returned
pre-filtered Eloquent attribute collections) with inline queries on
`environment_variables()` / `environment_variables_preview()` filtered by
`is_buildtime`. This ensures Railpack build variables are sourced from the
same query path as the rest of the deployment pipeline and avoids relying on
a now-removed accessor that silently included all railpack vars regardless of
build context.
2026-04-30 16:38:58 +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 28320858ca feat(railpack): log generated config and build plan, add multi-language dev examples
Log Railpack config JSON (dev-only) after generation and capture
railpack-plan.json post-prepare step. In prod, strip secrets array
before logging. In dev, log full plan.

Add 10 multi-language seeder examples (Python/Flask, Go/Gin, Rust,
Laravel, Symfony, Rails, Elixir/Phoenix, Bun) targeting v4.x branch.
Support per-example git_branch override in upsertApplication.
2026-04-30 15:22:15 +02:00
Andras Bacsai a51f114a70 fix(standalone-docker): include keydb, dragonfly, clickhouse in databases()
Add missing DB types to StandaloneDocker::databases() concat chain and
cover all 8 standalone database types with feature tests.
2026-04-30 15:01:48 +02:00
Andras Bacsai 79174b749d refactor(helpers): extract STANDALONE_DATABASE_MODELS registry, add tests
Replace 8× repeated per-type if-blocks in `queryDatabaseByUuidWithinTeam`
and `queryResourcesByUuid` with a single loop over the new
`STANDALONE_DATABASE_MODELS` constant.

Add unit tests to guard the registry against drift (keys mirror
`DATABASE_TYPES`, every entry is a valid Eloquent model with `team()`),
and feature tests covering team-ownership, wrong-team, and unknown-UUID
cases for `queryDatabaseByUuidWithinTeam`.
2026-04-30 14:48:48 +02:00
Andras Bacsai 0f830b31f3 Merge remote-tracking branch 'origin/next' into mcp-server-instance-toggle 2026-04-30 14:48:35 +02:00
Andras Bacsai 8e91d627a3 Merge remote-tracking branch 'origin/next' into feat/railpack 2026-04-30 11:47:06 +02:00
Andras Bacsai 1fbc1a5540 feat(horizon): suppress failed job entries for deployment/timeout errors on cloud (#9871) 2026-04-30 11:45:52 +02:00
Andras Bacsai f9b3f89757 Merge remote-tracking branch 'origin/next' into suppress-horizon-job-failures 2026-04-30 11:42:52 +02:00
Andras Bacsai d057ce5172 Merge remote-tracking branch 'origin/next' into mcp-server-instance-toggle 2026-04-30 11:30:45 +02:00
Andras Bacsai ed4f0df4fd fix(sentinel): auto-regenerate invalid or undecryptable tokens (#9874) 2026-04-30 08:38:25 +02:00
Andras Bacsai 4575106f53 feat(sentinel): embed server UUID in encrypted sentinel token
Replace random string with encrypted JSON payload containing
server_uuid, binding token to its server for validation.
Remove double-encrypt test no longer relevant to new token format.
2026-04-30 08:21:30 +02:00
Andras Bacsai 3a42ceb67d Merge remote-tracking branch 'origin/next' into sentinel-token-recovery 2026-04-30 07:09:14 +02:00
Andras Bacsai 22569da738 Merge remote-tracking branch 'origin/v4.x' into next 2026-04-30 07:06:38 +02:00
Andras Bacsai 922950de59 chore(templates): sync service-templates from next (#9884) 2026-04-30 07:05:35 +02:00
Andras BacsaiandClaude Opus 4.7 51d6795eeb chore(templates): sync service-templates from next
Pulls latest service-templates JSON files from `next` so cloud's hourly
PullTemplatesFromCDN job picks up queued template fixes (Jitsi, Plane,
Cap, Beszel, Langfuse, Twenty, Cal.com, etc.).

`templates/**` is in `paths-ignore` of coolify-production-build.yml so
no image rebuild triggered.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-30 07:04:12 +02:00
ShadowArcanist 13a1f86b5b fix(notifications): set default SMTP encryption value to prevent false validation error (#9543) 2026-04-29 19:05:14 +02:00
Emmanuel Odinfono e77e0761db fix(backup): add .dmp to allowed extensions for database import (#9869) 2026-04-29 18:57:50 +02:00
Andras Bacsai 00d6e83e7f fix(sentinel): auto-regenerate invalid or undecryptable tokens
Replace hard validation error with self-healing token logic. Tokens that
are null, empty, or fail decryption are now regenerated automatically
rather than crashing sentinel startup or metrics reads.

Token format changed from encrypted JSON payload to a plain 64-char
random string (Str::random), eliminating double-encryption issues and
simplifying the validation regex to cover the new character set.

New `ensureValidSentinelToken()` method on ServerSetting centralises
the get-or-regenerate contract; both StartSentinel and HasMetrics now
delegate to it. HasMetrics logs a warning when regeneration occurs so
operators know a sentinel container restart is required.

`isValidSentinelToken()` now accepts `?string` (null → false).

Adds feature tests covering: null/empty/undecryptable stored values,
idempotent return of valid tokens, RuntimeException only when
regeneration itself produces an invalid token, no double-encryption of
newly generated tokens, and cast round-trip consistency.
2026-04-29 16:44:12 +02:00
Andras Bacsai fc3ce85f88 feat(horizon): suppress failed job entries for deployment/timeout errors on cloud
On cloud, DeploymentException and TimeoutExceededException are expected
failure modes that pollute the Horizon failed jobs UI. Listen to JobFailed
events and scrub the entry via JobRepository::deleteFailed so operators
are not alerted for noise failures. Self-hosted instances are unaffected.
2026-04-29 15:40:01 +02:00
Andras Bacsai b8e311622a Merge remote-tracking branch 'origin/next' into feat/railpack 2026-04-29 15:22:47 +02:00
Andras Bacsai 3e76390194 fix(deployments): use app git_commit_sha when commit not explicitly set (#9865) 2026-04-29 11:02:50 +02:00
Andras Bacsai 6d1d699595 fix(deployments): resolve commit from app git_commit_sha when not explicitly set
Change `commit` param from `string 'HEAD'` default to `?string null`, then
resolve priority: explicit param > app `git_commit_sha` > `'HEAD'` fallback.

Add feature tests covering all four resolution paths.
2026-04-29 10:59:32 +02:00
Andras Bacsai cdec8c14d6 Merge remote-tracking branch 'origin/next' into mcp-server-instance-toggle 2026-04-29 10:55:59 +02:00
Andras Bacsai 5f89f120a8 docs(design): migrate design system from .ai/ to DESIGN.md (#9863) 2026-04-29 10:43:57 +02:00
Andras Bacsai ec6407a71f docs(design): migrate design system from .ai/ to DESIGN.md
Condense verbose 1666-line AI reference into 752-line structured
YAML/Markdown spec. Move from .ai/design-system.md to repo-root
DESIGN.md for broader visibility.
2026-04-29 10:43:19 +02:00