- Migration: added subdomain, server_ip, server_port columns
- Seed: rewritten with hardcoded identifiers + full subdomain/IP/port data
from Chronicler #87 audit (no more Pterodactyl API dependency)
- Route: POST /:id/provision-subdomain creates A + SRV records via
Cloudflare API, saves subdomain to server_config
- Card: subdomain section shows FQDN if provisioned, provision button
with inline input if not
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>