# 2026-02-07 — Host controls + delete failsafe

## Problem

- The frontend gained a **Delete Server** button with confirmation.
- Backend has a **failsafe**: do not allow deleting a container unless the host (LXC) is stopped.
- At the time, the portal only had "server" controls (game server process), not host controls (LXC start/stop).

## Decision

✅ Keep the failsafe.

Instead of removing safety checks, add **Host Controls** to the UI and wire them to the API:
- Start Host
- Stop Host
- Restart Host

This keeps the deletion gate meaningful, and also gives users a way to stop compute spend / idle containers.

## UX wording

Avoid saying "container" in the user-facing UI if possible.

Use:
- "Host Controls" or "Server Host"
- "Start Host / Stop Host / Restart Host"

(Internally it is Proxmox LXC lifecycle, but the UI doesn't need to expose that.)

## Backend wiring (high-level)

Routes in `servers.js`:

- `POST /servers/:id/host/start`
- `POST /servers/:id/host/stop`
- `POST /servers/:id/host/restart`

Implementation calls `proxmoxClient.startContainer(vmid)`, `stopContainer(...)` or `shutdownContainer(...)`.

## Delete gate

Delete endpoint should enforce something like:

- refuse delete if host is still running
- or auto-stop then delete (only if you explicitly want that behavior)

Current stance:
- keep it strict to avoid accidental data loss.
- make the user stop the host first, then delete.

## Testing checklist

- Start Host → LXC goes running
- Stop Host → LXC shuts down
- Restart Host → stop then start
- Delete Server:
  - while running → denied (expected)
  - after stop → allowed (expected)
