clusev/resources/views/livewire
boban c253e79c0c feat(docker): show the Clusev host's own containers (host target)
The Docker page only ever targeted fleet servers, so an operator whose
containers run ON the Clusev host itself (the clusev stack + anything
else on that machine) saw nothing — the page has "nothing to do with
the fleet" from their point of view. It now has a target switch:

  • Clusev host (default when a host SSH login exists) — lists the
    containers on the machine Clusev runs on, reached over the local
    Docker gateway with the existing encrypted HostCredential, the same
    login the host terminal uses.
  • the active fleet server — the previous behaviour, still available.

Mechanics:
- HostCredential::toServer() builds a TRANSIENT Server (never persisted)
  carrying the host login; DockerService/FleetService run unchanged
  against it. The logs modal resolves serverId 0 to this host server.
- VerifiesHostKey only pins (writes ssh_host_key) for persisted fleet
  servers now; a transient host connection no longer spawns a junk
  fleet row on every request. The host is the local gateway — no
  network path to MITM — so skipping the pin there is safe.
- The `app` service (dev + prod compose) gains the
  host.docker.internal:host-gateway mapping the terminal sidecar already
  had, so the PHP layer can reach the host's sshd. Without it the app
  container cannot resolve the host at all — the real reason host Docker
  never worked.
- Absent runtime still renders the clean "not installed" state; a
  host target with no login yet shows a setup hint.

Verified end-to-end in a browser: the page defaults to the host and
lists the full running stack (clusev-app/mariadb/redis/… + others) with
Logs/Restart/Stop actions. 748 tests green (5 new host-target tests).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 22:43:36 +02:00
..
alerts fix(ui,docker): normalise oversized buttons + surface the real Docker error 2026-07-05 21:22:49 +02:00
audit fix(rbac,honeypot): gate audit-retention + email sendTest; honeytoken scans JSON body 2026-07-05 02:28:13 +02:00
auth feat(auth): make password rotation optional + correct the 2FA copy 2026-06-25 19:47:17 +02:00
certs fix(ui,docker): normalise oversized buttons + surface the real Docker error 2026-07-05 21:22:49 +02:00
commands fix(ui,docker): normalise oversized buttons + surface the real Docker error 2026-07-05 21:22:49 +02:00
docker feat(docker): show the Clusev host's own containers (host target) 2026-07-05 22:43:36 +02:00
files fix(security): close file-read RBAC gap + fail2ban arg-injection + update/HMAC hardening 2026-07-05 16:05:16 +02:00
health fix(ui,docker): normalise oversized buttons + surface the real Docker error 2026-07-05 21:22:49 +02:00
help docs: fix stale first-login copy (random initial password, rotation optional) 2026-07-02 22:50:35 +02:00
modals feat(docker): container management over SSH (feature 3/8) 2026-07-05 20:23:56 +02:00
onboarding feat(onboarding): first-run spotlight tour — dimmed backdrop, sidebar highlights, relaunchable 2026-07-02 20:00:19 +02:00
patch fix(ui,docker): normalise oversized buttons + surface the real Docker error 2026-07-05 21:22:49 +02:00
posture feat(security): fleet security-posture score (feature 5/8) 2026-07-05 20:43:56 +02:00
release refactor(release): single stable channel — cut internal release candidates (-rc), remove all beta wording 2026-07-05 13:13:09 +02:00
servers fix(ui,docker): normalise oversized buttons + surface the real Docker error 2026-07-05 21:22:49 +02:00
services feat(rbac): hide gated controls in the UI with @can (operator/viewer see no dead buttons) 2026-07-05 01:49:38 +02:00
settings fix(ui,docker): normalise oversized buttons + surface the real Docker error 2026-07-05 21:22:49 +02:00
system feat(rbac): hide gated controls in the UI with @can (operator/viewer see no dead buttons) 2026-07-05 01:49:38 +02:00
terminal feat(rbac): hide gated controls in the UI with @can (operator/viewer see no dead buttons) 2026-07-05 01:49:38 +02:00
threats harden honeypot/ban path: close evasions, unmask & audit-DoS vectors 2026-07-05 15:05:35 +02:00
versions feat(rbac): hide gated controls in the UI with @can (operator/viewer see no dead buttons) 2026-07-05 01:49:38 +02:00
wireguard harden honeypot/ban path: close evasions, unmask & audit-DoS vectors 2026-07-05 15:05:35 +02:00
dashboard.blade.php perf(fleet,wg) + i18n(dashboard,update) + a11y(btn): re-audit design/perf cleanups 2026-07-05 17:10:19 +02:00
server-switcher.blade.php feat(i18n): bilingual foundation (DE/EN) + localize auth/dashboard/servers/fleet/account 2026-06-13 22:36:16 +02:00