Commit Graph
10 Commits
Author SHA1 Message Date
Andras Bacsai 0d2c2a7701 Merge origin/main into v5-progress
Resolve conflicts between main's 4.5 changes and the v5 Node work:
- GetLogs: keep main's browser-side log viewer; read cluster logs from
  Sentinel, with since_unix_seconds for streaming.
- Terminal: keep main's session-failure events and attach mode; keep
  the Node terminal target.
- Dashboard: keep main's layout; add the cluster map as a third servers view.
- Remove the settings sidebar accordion from Node, cluster, and cluster
  application sidebars, as main did for servers.
- Replace removed x-forms.select with x-forms.listbox.
- Node factory creates its SSH key in the node team (main scopes key lookup).
- Add v5 models to the server transfer coverage and app key re-encrypt review.
2026-10-22 08:01:32 +02:00
Andras BacsaiandClaude Opus 5.5 7c14c0098e feat(server-transfer): run instance migration as a background job (#12180)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 22:03:45 +02:00
Andras Bacsai e7025612b8 feat(hostinger): add cloud provider integration (#11176) 2026-10-07 13:14:04 +02:00
Andras Bacsai e678a224fb feat(nodes): add HTTP ingress for cluster workloads
Allow cluster workloads to configure domains and HTTP ports, and enable
individual nodes as ingress proxies. Reconcile Caddy routes and firewall
rules as network revisions so domain changes apply without redeploying.

Refresh ingress routing when workload placements change and merge node
metadata under a row lock to preserve concurrent updates.

Add ingress controls, domain links, and regression and end-to-end coverage.
2026-10-05 13:32:29 +02:00
Andras BacsaiandClaude Opus 5.5 fd85b740f5 feat(github-runners): add ephemeral self-hosted runners on build servers (#12054)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 12:13:11 +02:00
Andras Bacsai 5f6fb5dcc2 feat(dev): run localhost dev server in a Lima VM on macOS
Add a Lima backend to scripts/dev. Auto mode picks it on macOS when
limactl (Lima >= 2.0) is installed, and COOLIFY_DEV_SERVER_BACKEND=lima
forces it. Lima VMs are named coolify-dev-<slot>-<profile>. Coolify
connects to them through Lima's forwarded SSH port on
host.docker.internal, and only guest ports 80/443 are forwarded to
the host.

dev:qemu:seed now takes --ip and --port options, so the seeded server
can use a forwarded SSH address instead of the profile IP.

Add tests for the Lima start flow and for seeding with an overridden
address, and document the macOS setup in AGENTS.md.
2026-09-28 09:45:29 +02:00
Andras Bacsai 9f5a95e02a feat(nodes): edit cluster workload command, ports and environment
Add UpdateNodeWorkloadConfiguration to create a new workload revision
when the command, ports or environment change. Revisions now store the
environment separately, and a shared NodeWorkload::createRevision helper
builds them. The cluster application page can edit these settings.

Deployments take a pull policy ('missing' or 'newer'), which is passed
through to Sentinel. User redeploys use 'newer' so mutable tags pull the
latest image. Before a move starts, the source node must support
workload.lifecycle.v1 and the target must support workload.deploy.v1.
The coordinated workload.move.v1 command no longer needs its own
capability. Adds a migration for Sentinel capabilities on nodes.

Adds a 'naked' dev QEMU profile runtime. These VMs boot with the
coolify-flux hosts entry and are not seeded, so they can be added
through the Node onboarding UI. Removes the standalone scripts/dev-qemu
script in favour of scripts/dev.
2026-09-25 13:53:34 +02:00
Andras BacsaiandClaude Opus 5.5 6ffd730011 Merge origin/next into v5-progress
Conflict resolution:
- Development QEMU: keep next's instance mode and prepared template images;
  re-add v5 Podman worker Node profiles, Node seeding, Podman templates, and
  the node-dev compose overlay through ./scripts/dev.
- Terminal: use next's token-based TerminalSessionService; add Node targets
  with the v5 readiness and team checks at issue and redeem time.
- Sentinel: keep v5 Flux imports and next's SentinelSynchronized event; use
  next's viewSentinel policy.
- Clusters page: follow next's no-placeholder rule for empty descriptions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 13:18:58 +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 f35de6b3b2 feat(dev): support KVM-backed localhost development servers 2026-09-24 13:04:44 +02:00