Skip to content
Server settings Identity, IP, tags and the danger zone for a single server — rename, set hostname/timezone, reboot, clear caches, or remove it.

Server settings

The Settings section of a server (/servers/:id/settings) holds the handful of options that are genuinely server-scoped and have no other home: its identity (label, hostname, timezone, notes, tag), its published IP address, and a Danger zone for reboot, cache-clearing and removal. Everything else that used to live here — PHP, DNS/TLS, mail, security, disk — now has its own dedicated section. Available on all plans.

  1. Open Server basics (top card). It shows the Server ID (click to copy) in the header.
  2. Change any of the fields:
    • Server label — a friendly name shown across MZPanel. Control-plane only.
    • Hostname — the machine’s real hostname; running Save applies it on the box.
    • Tag — group and classify servers by purpose (use the + button to create or manage tags).
    • Timezone — the box’s system timezone.
    • Notes — private notes only your team sees.
  3. Click Save Changes. The button shows a spinner, then Saved. Label, notes and tag save instantly; hostname and timezone run on the server through the agent, so they need it online — an inline note tells you when a change will apply on the box.
  • Confirm a new server IP — the Server IP card compares the Stored IP (what MZPanel publishes for DNS, WireGuard and load balancers) against the Detected IP the control plane saw on the agent’s last connect. If they differ, an IP changed badge appears; click Confirm new IP to adopt it. MZPanel then re-applies the dependent jobs (WireGuard mesh peers, load-balancer backends) and refreshes DNS A/AAAA records automatically. A blast-radius line tells you exactly how many peers and backends will be re-run before you confirm. Only IPv4 is editable here; IPv6 is read-only.
  • Clear all caches (Danger zone) — restart PHP-FPM (flushing OPcache) and purge the Nginx FastCGI/proxy cache. Redis data is left intact.
  • Reboot server (Danger zone) — restarts the box; all sites go offline for ~30s and in-flight jobs are interrupted. A confirmation dialog names the server first.
  • Remove from account (Danger zone) — de-authorises the agent so the VPS leaves MZPanel. Your websites, databases and files keep running untouched. You confirm by typing the server’s IP (or its name if no IP is known).

The page splits cleanly between control-plane edits and on-box operations:

ActionWhere it runsDrives
Label / notes / tagControl planePATCH /v1/servers/:id
HostnameBox, then persistedsystem.set-hostname job → PATCH /v1/servers/:id/hostname
TimezoneBoxsystem.set-timezone job
Confirm new IPControl planePATCH /v1/servers/:id/ip (reads GET /v1/servers/:id/ip)
Clear all cachesBoxsystem.clear-caches job
Reboot serverBoxsystem.reboot job
Remove from accountControl planeDELETE /v1/servers/:id
  • Identity that lives only in MZPanel (label, notes, tag) is a Postgres update — no agent needed. The label is unique per account, so a duplicate name is rejected.
  • Hostname is a two-step operation: the agent runs hostnamectl on the box, then MZPanel stores the hostname the box actually applied. Without that second write the value would revert on reload.
  • Confirm new IP never disconnects the server — the agent dials out by token, so the box’s public IP is cosmetic to the connection. Confirming exists purely to re-run the jobs that hard-code the address (mesh endpoints, LB backends); DNS glue refreshes on the next pull, so it’s reported as a flag, not a job.
  • Remove is a soft-delete: the token is revoked and the name freed for reuse. If the agent is online at the time, MZPanel also tells it to self-uninstall (removing mzagent and mz from the VPS — sites and data are left alone).

The identity, tag and remove actions are control-plane operations with no mz equivalent, but the on-box operations map to real mz system commands — the same engine the dashboard drives. SSH in and run them directly, or let an on-box AI (ClaudeCode) run them:

Terminal window
mz system set-hostname vps1.example.com --json # hostnamectl on the box
mz system set-timezone Europe/Amsterdam --json # set the system timezone
mz system clear-caches # restart FPM + purge Nginx cache
mz system reboot # reboot the machine

See The mz CLI and the command catalog. For fleet-wide identity/tag automation across many servers, use the control-plane API (Max plan).

  • Save is partly held locally. Label, notes, tag, hostname and timezone are all persisted; there is no “power off” action by design — a cloud VPS won’t come back without the provider’s console, so the panel never exposes it. Only reboot is offered.
  • Hostname reverts after refresh? That only happens if the second persistence step didn’t run (agent dropped mid-save). Re-save with the agent online; MZPanel stores the exact hostname the box reports back.
  • “Confirm new IP” did nothing visible. That’s expected when nothing references the old IP — with zero mesh peers and zero LB backends there are no jobs to re-run, and DNS refreshes silently on the next pull. The Stored value still updates.
  • Removing a server doesn’t wipe the VPS. It de-authorises the agent and, if the box is online, self-uninstalls the agent binary. Your sites and data stay live. If the box was offline when you removed it, the agent is not auto-uninstalled — run the uninstall command on the VPS yourself afterwards.
  • Type-to-confirm uses the IP. The remove dialog asks you to type the server’s IP (harder to fat-finger than a name); it falls back to the server name only when no usable IPv4 is known.
  • Storage — disk usage and cleanup, moved out of Settings.
  • OS updates — patching and reboot history.
  • Services — the daemons a reboot restarts.
  • The mz CLI — driving the box from the command line.