mirror of
https://github.com/jhd3197/ServerKit.git
synced 2026-11-09 05:24:49 +09:00
Turns "point myblog.com at this site" into one action that consumes the URL-swap tool. New DNSProviderService.find_zone_for_domain (longest zone-suffix match across connected providers) + ensure_a_record upsert the A record via Cloudflare/ Route53, or return the exact record to add when nothing manages the zone. WordPressService.attach_custom_domain orchestrates it: auto-create DNS (server IP from SiteDomainService), optionally obtain a Let's Encrypt cert (the host vhost is written first so certbot --nginx can validate), then migrate the site URL to the domain via change_site_url. External steps degrade to warnings; only a requested migration that errors aborts. POST /wordpress/sites/<id>/domain (admin). Frontend: "Add Domain" button + AttachDomainModal — enter a domain, optional HTTPS, and the result shows the auto-created record or the exact A record to add manually. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>