Commit Graph
16918 Commits
Author SHA1 Message Date
Aditya Tripathi 726e724a98 Merge remote-tracking branch 'origin/next' into native-file-browser-app-management 2026-09-08 04:20:15 +00:00
Andras Bacsaiandpeaklabs-dev ddb7b71a37 chore: merge main into next (#11613)
Co-authored-by: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com>
Co-authored-by: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com>
2026-09-07 21:06:47 +02:00
Andras Bacsai 1be0347685 Merge remote-tracking branch 'origin/next' into automation/sync-main-to-next 2026-09-07 21:05:27 +02:00
Vinicius Cruz ce7d17b7c5 feat(auth): autofocus auth form fields and profile 2FA OTP (#11324) 2026-09-04 17:48:04 +02:00
🏔️ Peak 4ee460cfd0 chore(storage): remove dead storages show component (#11615) 2026-09-03 18:22:18 +02:00
peaklabs-dev 2fc73bc357 fix(ux): show api token description inline 2026-09-03 17:23:17 +02:00
github-actions[bot] cc084235c1 Merge remote-tracking branch 'origin/main' into next 2026-09-03 15:13:46 +00:00
🏔️ Peak 4f5b39b748 fix: update livewire to fix wire:dirty reactivity (#11612) 2026-09-03 17:13:30 +02:00
peaklabs-dev ba19435af3 fix: update livewire to fix wire:dirty reactivity 2026-09-03 17:05:35 +02:00
peaklabs-dev a1a2d7551c chore(deps): cleanup version constraint 2026-09-03 17:05:06 +02:00
Andras Bacsai e70972496a chore: merge main into next (#11598) 2026-09-03 07:25:24 +02:00
Andras Bacsai 9ef1ab7649 Merge remote-tracking branch 'origin/next' into automation/sync-main-to-next
# Conflicts:
#	app/Actions/Database/StartDatabase.php
#	app/Jobs/ApplicationDeploymentJob.php
#	app/Livewire/Project/Shared/EnvironmentVariable/Show.php
#	app/Models/Application.php
#	app/Models/Service.php
#	app/Models/StandaloneClickhouse.php
#	app/Models/StandaloneDragonfly.php
#	app/Models/StandaloneKeydb.php
#	app/Models/StandaloneMariadb.php
#	app/Models/StandaloneMongodb.php
#	app/Models/StandaloneMysql.php
#	app/Models/StandalonePostgresql.php
#	app/Models/StandaloneRedis.php
#	resources/views/livewire/project/application/heading.blade.php
#	resources/views/livewire/project/service/heading.blade.php
#	tests/Feature/PersistentStorageVolumesLayoutTest.php
2026-09-02 21:19:57 +02:00
Andras Bacsai b8866b87e8 fix(livewire): authorize exposed resource mutations (#11596) v4.3.15 2026-09-02 19:58:28 +02:00
Andras Bacsai e2e91fbb85 feat(domains): support per-domain internal port overrides (#11594) 2026-09-02 19:39:19 +02:00
Andras Bacsai 7a7564e6b3 fix(ui): improve compose editor layout on mobile screens 2026-09-02 10:22:44 +02:00
Andras Bacsai 8ace0d18e3 fix(database): warn about PostgreSQL password overwrite on full restore 2026-09-01 20:48:39 +02:00
Andras Bacsai f06aadc4a0 fix(service): warn before removing required ports 2026-09-01 20:33:50 +02:00
Andras BacsaiandClaude Fable 5 7c3b05e2d2 refactor(livewire): make data-sync helpers private (#11578)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-09-01 18:44:18 +02:00
Andras BacsaiandClaude Opus 4.8 2018e7f329 Validate build-time environment variable names before writing the build .env file (#11575)
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-01 11:14:24 +02:00
Andras Bacsai e4146a6314 feat(backups): unify service backup management (#11574) 2026-08-31 22:51:30 +02:00
Andras Bacsai ff8b019296 fix(application): defer Docker Compose loading and preserve domains
Load the compose file only after the user confirms its location, initialize the default compose path when switching build packs, and retain existing application domains.
2026-08-31 21:12:28 +02:00
Andras Bacsai c97649bda2 docs(security): require scoped authorization checks and regression tests 2026-08-31 17:57:29 +02:00
Andras Bacsai 2bce16e4d4 fix(resources): remove empty-domain placeholder from grid 2026-08-31 17:37:10 +02:00
Andras Bacsai d67d42039a fix(ui): keep sponsorship reminder listeners functional 2026-08-31 16:52:53 +02:00
Andras Bacsai adb255dc5c Merge remote-tracking branch 'origin/main' 2026-08-31 13:16:48 +02:00
Andras Bacsai 44bb132833 feat(settings): add development sponsorship reminder preview 2026-08-31 13:16:35 +02:00
Andras Bacsai 67b33c27a9 fix(applications): persist restart limit state for stopped containers (#11566) 2026-08-31 13:13:26 +02:00
Andras Bacsai e514a2d61f fix(resources): dispatch deletion cleanup after response 2026-08-30 20:37:05 +02:00
Devin DissanayakaandAndras Bacsai e0d233f933 fix(deployments): keep every domain intact in COOLIFY_URL and COOLIFY… (#11527)
Co-authored-by: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com>
2026-08-30 16:53:23 +02:00
Andras Bacsai ccea7287bf feat(previews): add preview domain management and DNS status tracking 2026-08-30 16:20:16 +02:00
Andras Bacsai 8d675f2e21 fix: update resource forms 2026-08-28 15:08:25 +02:00
Andras Bacsai 0dfbc42c0f chore(release): bump Coolify to 4.3.15 and realtime to 1.0.18 2026-08-28 14:51:30 +02:00
Andras Bacsai 78f9c676ba chore: prepare v4.3.15 2026-08-28 14:46:57 +02:00
Andras Bacsai aff581043f fix(realtime): harden terminal command handling 2026-08-28 14:41:48 +02:00
Andras Bacsai 51a8a97d87 fix(docker): create standalone networks without the swarm driver
Use the default bridge network driver for standalone destinations and bump the Coolify version to 4.3.14.
v4.3.14
2026-08-28 10:49:05 +02:00
Andras Bacsai 28fb694fcb fix: preserve custom names and use Livewire redirects
Resolve custom container names consistently, clean up legacy container names during deployments, and route Livewire resource redirects through the navigation helper.
v4.3.13
2026-08-28 09:46:57 +02:00
Andras Bacsai 1639941da7 fix(domains): reject single-label hostnames for app and service domains 2026-08-28 09:34:10 +02:00
Andras Bacsai b357522f94 fix(livewire): prevent stale keys and refresh races
Use stable identities for dynamic rows and nested components so reordering does not target the wrong item. Scope storage count and volume-list refreshes, preserve PostgreSQL script identity when renaming files, use Livewire-aware destination redirects, and bump the version to 4.3.13.
2026-08-28 09:26:57 +02:00
Andras Bacsai 97831ef06e feat(media): serve avatars and project icons from S3 or CDN 2026-08-27 22:32:16 +02:00
Andras Bacsai ac9b1c68c1 fix(server): allow sentinel startup migrations to finish 2026-08-27 19:38:01 +02:00
Aditya Tripathi e050ea339c refactor(files): Monaco editor, single-stat listing, kebab actions, hardening
Address review feedback and UX issues on the file browser.

Editor
- Replace the TipTap editor with Monaco, reusing the self-hosted assets. The
  editor is kept mounted (wire:ignore) and preloaded on page init, and receives
  content + language via the load-file-editor event, applying the language with
  setModelLanguage so highlighting is correct without recreating the instance.
- Keep the Monaco instance on the DOM node, not in Alpine reactive state, so its
  object graph is never proxied (that hung and crashed the tab).
- Drop @tiptap/*, lowlight and highlight.js; remove the TipTap CSS and JS.
- Broaden guessLanguage to Monaco ids and common extension-less/dotfiles.

Listing / read (perf)
- List a directory in one stat call instead of a per-entry loop (embedding a
  real tab, since stat -c does not expand \t), and surface owner/group columns.
- Fold the read size-cap, binary probe and base64 into one SSH round trip.

Actions
- Collapse the per-row Edit/Download/Rename/Delete buttons into a 3-dots menu.
- Fix actions silently failing on names with apostrophes: the entry name now
  lives in the row's Alpine scope instead of passing @js() through a component
  attribute (which double-encodes the quotes).

Hardening
- Lock client-controllable state (container/type/resource) with #[Locked].
- Re-check guard() in open/goTo/refresh; sanitize upload filenames; clean up the
  download temp file and report errors; route >96KiB writes through docker cp.

Tests updated and extended (32 passing). Frontend rebuild (npm run build) is
still needed only to drop TipTap from the bundle; the editor works without it.
2026-08-27 16:31:39 +00:00
Aditya Tripathi f93d73cfc1 fix(files): harden file browser against tampering and large writes
- Escape dynamic file/path names with @js() in Livewire click handlers
  instead of interpolating raw strings, and lock resource/container
  properties to prevent client-side property tampering
- Route writes over ~96 KiB through docker cp instead of an inline
  base64 shell argument, which was capped by MAX_ARG_STRLEN
- Treat empty files as editable text instead of misclassifying them
  as binary
2026-08-27 14:34:12 +00:00
Andras Bacsai 7b7d5a0aad fix(services): add CDN and default logo fallbacks 2026-08-27 13:45:26 +02:00
Andras Bacsai c2a23466ca feat(services): add Executor one-click deployment template (#11530) 2026-08-27 10:39:38 +02:00
Aditya Tripathi 6366c1e8e3 fix(files): use matching header buttons for upload and refresh 2026-08-26 20:08:05 +00:00
Aditya Tripathi b22cb987fd feat(files): IDE-style editor with line-number gutter, active line, and Ln/Col status bar 2026-08-26 18:12:54 +00:00
Aditya Tripathi 90b31be258 fix(files): recreate TipTap editor per open to avoid mismatched-transaction error 2026-08-26 18:04:54 +00:00
Aditya Tripathi b218792606 fix(files): load editor content via dispatched event; correct TipTap v3 setContent signature 2026-08-26 17:51:07 +00:00
Aditya Tripathi d70e548f85 fix(files): adopt standard settings-workspace layout; nav shown by default with animated toggle 2026-08-26 17:33:27 +00:00
Aditya Tripathi d00e1c013e feat(files): toggle to reveal the full resource sidebar on demand 2026-08-26 17:24:30 +00:00