18386 Commits
Author SHA1 Message Date
Andras BacsaiandClaude Opus 5.5 9e0823becc fix(ui): give the terminal target picker a solid background so it stays readable
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 21:43:52 +02:00
Andras Bacsai ae492a2497 fix(ui): link user menu Appearance to its page so the menu fits short screens 2026-10-23 21:40:04 +02:00
Andras BacsaiandClaude Opus 5.5 c6fbeb84eb Merge branch 'fix/server-transfer-cloud-hardening' into main
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 21:25:28 +02:00
Andras BacsaiandClaude Opus 5.5 9e52c6a140 fix(server-transfer): accept legacy database port values and allow the kit VM network
- Do not check database port mappings in a bundle: the UI checks them
  only since March 2026, so older servers could not be transferred, and
  the values stay on the server owner's own host.
- The dev .env runs Cloud mode, where the import check refuses private
  addresses. reset.sh now allows the VM network of A on both instances.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 21:23:40 +02:00
Andras BacsaiandClaude Opus 5.5 cf9f254507 fix(server-transfer): close security holes in import, claim, and archives
Import:
- Check every uuid in a bundle against a strict id format before any
  write, and quote the SSH mux socket and key paths in local shell
  commands. A bundle uuid could run commands in the Coolify container.
- Validate bundle fqdns, git source URLs, paths, networks, cron
  expressions, and database ports; cap the number of items.
- Do not confirm that another team has a uuid.
- Refuse a project icon path with a uuid that is not a plain id.

Claim, finish, and migrate:
- Pass checklist step keys to wire:click with Js::from (stored XSS).
- Link only to https target server URLs.
- Validate target_instance_url in /transfer/complete; never prefill an
  unverified URL for a transfer back; scope the transfer-back token to
  write+deploy for 1 hour.
- Release on an owner marker only when it is newer than the own claim.
- Do not touch apps that only use the server as an additional
  destination when an archive is released or deleted.
- Give Sentinel a new token on claim.
- Add a checklist step to remove the previous instance's SSH key.
- Block a transfer while backups or scheduled tasks run.
- Authorize refreshMigration and PrivateKey checkConnection, clear
  tokens from Livewire state, hide migration log/error from members.

Archives:
- Refuse ip, user, port, private key, and Cloudflare tunnel changes.
- Throttle Enable management and require a free server slot for it and
  for a transfer back.
- Skip cloud provider calls.
- Re-read force_disabled before each SSH command, so running jobs stop.
- Probe the import check target at the resolved address only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 21:02:32 +02:00
Andras BacsaiandClaude Opus 5.5 7fa3110f0b feat(canvas): let admins drag project zones on the projects canvas
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 20:57:56 +02:00
Andras BacsaiandClaude Opus 5.5 c410f355e7 fix(ui): declutter domains toolbar with DNS menu and card header
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 20:28:02 +02:00
Andras BacsaiandClaude Opus 5.5 95a3a22fdf fix(server-transfer): harden import on Cloud and stop archives from using server slots
- Rate limit the import check probe and refuse private, loopback, and
  link-local targets on Cloud.
- Rate limit the SSH validation that an import starts, like other
  server validations.
- Count only managed servers for the server limit, the limit check job,
  and the subscription page. Archives of transferred servers are left out.
- Do not show the name of another team's archived server in the import check.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 20:12:59 +02:00
Andras Bacsai 6022073519 fix(notifications): use instance URL in volume backup notification links
Volume backup notifications built links with route(), which uses APP_URL
in queue jobs and gave http://localhost links. Build them from base_url().

Closes #12285
2026-10-23 20:05:23 +02:00
Andras Bacsai 30d840f1c6 fix(theme): fall back to default color for invalid stored theme color
Closes #12287
2026-10-23 20:05:08 +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 c24022b015 chore(dev): add script to generate traffic analytics data 2026-10-23 19:48:21 +02:00
Andras Bacsai dcbad815fe fix(previews): keep compose preview data out of production pending changes
Closes #12284
2026-10-23 19:46:44 +02:00
Andras BacsaiandClaude Opus 5.5 cb561d3d9c fix(ui): match dark terminal box to card colors
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 19:34:27 +02:00
Andras BacsaiandClaude Opus 5.5 9f017bf8a0 fix(ui): restore grid layout in card wells
The card rule gave wells display:flex, which overrode Tailwind grid
classes and collapsed the resource picker to one column. Share only
the color variables with wells.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 19:34:27 +02:00
Andras Bacsai b3bac27630 fix(ui): disable server menus that need a validated server 2026-10-23 19:32:03 +02:00
Andras BacsaiandClaude Opus 5.5 50243278fd fix(ui): show traffic analytics loading state on the button
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 19:31:57 +02:00
Andras BacsaiandClaude Opus 5.5 7de0e4cee8 fix(ui): quiet the dark sidebar and theme brand surfaces
- Make the dark sidebar a flat neutral #0d0d0d with neutral tiles, text,
  search, and account button; only the current item stays purple.
- Remove the resource row and spacer at the top of the main menu, so
  Dashboard sits under Search, and drop the unused nav context name.
- Route hard-coded brand purple, canvas, and card colors through tokens
  that the custom theme overrides, so sidebar, buttons, accents, cards,
  and tables follow the picked color.
- Paint page-level button and view-toggle tints over the canvas so the
  floating navigation dots do not show through.
- Document the new sidebar and token rules in DESIGN.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 19:15:32 +02:00
Andras BacsaiandClaude Opus 5.5 9a8b4eb53c fix(metrics): keep reachable servers online when Sentinel has no summary
Closes #12289

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 19:05:48 +02:00
Andras BacsaiandClaude Opus 5.5 ade4bae265 ci: remove temporary release image rebuild workflow
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 13:52:15 +02:00
Andras BacsaiandClaude Opus 5.5 5ca69705d6 ci: add temporary workflow to rebuild a published release image
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v4.5.0
2026-10-23 13:42:57 +02:00
Andras Bacsai b769ae193d fix(php): disable session upload progress 2026-10-23 13:33:51 +02:00
Andras Bacsai debde16c9d chore(versions): bump Coolify and helper release versions 2026-10-23 12:49:34 +02:00
Andras Bacsai 8b7434370e docs(traefik): link update instructions in alerts 2026-10-23 12:38:08 +02:00
Andras Bacsai 717a915485 fix(logs): show fullscreen logs above the sidebar and topbar 2026-10-23 12:34:20 +02:00
Andras BacsaiandClaude Opus 5.5 95d796e922 feat(deployments): compact history beside logs with in-place switching
- Fit the embedded history to the logs height and page size to the screen
- Show status as a dot with short start time; add source, duration, and
  server as a second line; make whole rows clickable
- Switch the logs viewer to another deployment without a page load
- Use View and Export menus and the runtime logs search in the toolbar
- Export visible logs from the server with secrets hidden; redact app
  secrets in the full log download

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 12:34:08 +02:00
Andras Bacsai 3bfeb14b7d style(logs): show deployment status dots like the service menu
Deployment options get the same status dot and Stopped caption as
services instead of colored badges, so the listbox no longer needs
labelClass.
2026-10-23 12:25:57 +02:00
Andras BacsaiandClaude Opus 5.5 a90be6aa93 chore(versions): bump Traefik to 3.7.16 and 2.11.60
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 12:11:15 +02:00
Andras Bacsai e5a23a1725 fix(logs): keep deployment and service menus open on updates
Use stable wire:keys and let the listbox take new options and keep its
panel position through Livewire morphs. Preview badges reuse the link
menu colors.
2026-10-23 12:09:29 +02:00
Andras Bacsai 2e7cf8633b feat(logs): pick runtime log streams from service selectors
Replace the container accordion with Deployment and Service selectors
that show one stream, merging replica containers by timestamp. The
viewer fills the page, opens in text view, keeps whitespace, and only
lets grid rows expand when the detail shows more than the row.

Based on the proposal in discussion #12176 by PhilippMolitor.
2026-10-23 11:55:44 +02:00
Andras BacsaiandClaude Opus 5.5 47bfe5e6a6 style(ui): give split action buttons 3D depth and drop logs empty icon
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 11:55:22 +02:00
Andras Bacsai 9acc8defca docs(sponsors): remove inactive sponsors from README 2026-10-23 11:10:16 +02:00
Andras Bacsai 6012232e97 fix(server): rate limit failed server validations on cloud 2026-10-23 11:10:02 +02:00
Andras BacsaiandClaude Opus 5.5 6977d454ed style(ui): group small settings cards into sub-sections
Add a settings-subsection component and merge small cards on the
advanced settings, application advanced, healthcheck, Docker cleanup,
and GitLab/Gitea source pages. Update outdated tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 10:55:30 +02:00
Andras Bacsai 56c7c9c685 fix(ui): show Nixpacks deprecation notice in application heading 2026-10-23 10:15:37 +02:00
Andras Bacsai 1d309b1219 fix(templates): improve service defaults and Mixpost setup 2026-10-23 09:53:25 +02:00
Andras Bacsai 0b2e931a42 fix(ui): blend mobile sidebar branding and default FreeScout database 2026-10-22 21:46:20 +02:00
Andras Bacsai 45a24f7fa2 chore(templates): regenerate service templates
Add the 9 PHP-based services that were re-enabled with patched image
versions.
2026-10-22 20:39:23 +02:00
Andras Bacsai 624bc098c6 fix(service): bump PHP templates to patched images and re-enable them
Update the templates that pinned images with a PHP release vulnerable
to CVE-2026-109618 and CVE-2026-109619, and remove their ignore flag:

- appwrite 2.6.1 (console 1.2.97, orchestrator 2.2.4, exiftool service)
- castopod 1.15.6
- freescout: move to nfrastack/freescout:2.2.21 (tiredofit image removed)
- grocy 4.7.1
- opnform 2.6.1 (nginx route for Nuxt icons)
- paymenter v1.5.9
- pterodactyl panel v1.15.2, wings v1.13.4
- snipe-it v8.8.3
2026-10-22 20:39:08 +02:00
Andras Bacsai 7acfcdff24 feat(ui): reorganize resource settings and domain port editing 2026-10-22 20:26:41 +02:00
Andras Bacsai e89fd7e9df chore(templates): regenerate service templates
Add the 38 PHP-based services that were re-enabled after their images
received the patched PHP release.
2026-10-22 20:26:17 +02:00
Andras Bacsai 0ebb1a1da8 fix(service): re-enable PHP templates with patched images
Remove the ignore flag from 38 PHP-based service templates whose
current images ship a PHP release fixed for CVE-2026-109618 and
CVE-2026-109619 (8.5.12, 8.4.27, 8.3.36, 8.2.35, or the patched
Debian and Ubuntu packages).
2026-10-22 20:26:09 +02:00
Andras Bacsai 6c6fff5d26 style(ui): use brand accents for dark-mode controls and feedback 2026-10-22 16:34:40 +02:00
Andras Bacsai 61e46da88d style(source): align dark source selection with brand colors 2026-10-22 16:04:30 +02:00
Andras Bacsai eeaeacbe3f style(ui): refine canvas layouts and rollback settings 2026-10-22 15:54:02 +02:00
Andras Bacsai c454f84545 fix(server-transfer): keep imported data exact and guard archived servers
- Skip TrimStrings and ConvertEmptyStringsToNull on the import route; an empty shared variable failed the whole import
- Keep compose parser versions, static ports, legacy variable keys, and only the bundle's variables and destinations
- Give the transfer back token the deploy permission that the import needs
- Move the Cloudflare tunnel DNS record with the server and park it on the source
- Refuse cloud server deletes, power on, tunnel and DNS changes, and scp for archives; skip their backup alerts and provider polling
- Add a column-level round-trip test, archive guard tests, and a live full-coverage transfer test
- Advance the GitLab App sequence in the dev seeder
2026-10-22 15:52:20 +02:00
Andras BacsaiandClaude Opus 5.5 dff2674466 style(sidebar): add resource menu return row and refine dark UI details
- Add a main-menu row that reopens the resource menu, with a placeholder row
- Show only the other view as an icon in the view switcher
- Remove the active tile glow and the collapsed Search frame
- Tint the dark command palette purple and whiten focused-row details
- Soften the toast edge and give the toast icon tile 3D depth
- Document the decisions in DESIGN.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 14:02:18 +02:00
Andras Bacsai 59928035b7 feat(forms): add copy button to password inputs by default 2026-10-22 13:43:44 +02:00
Andras Bacsai ab531972d2 style(sidebar): apply dark theme styles to mobile sidebar 2026-10-22 10:08:50 +02:00
Andras Bacsai d88b58ccc1 fix(breadcrumb): sync title after Livewire navigation 2026-10-22 10:04:21 +02:00