mirror of
https://github.com/jhd3197/ServerKit.git
synced 2026-11-09 21:43:05 +09:00
Make WordPressService.create_site a single one-click orchestrator. It now accepts php_version / enable_page_cache / enable_object_cache and: - Bakes the chosen PHP version into the INITIAL image tag (concrete 6.4-php<x.y>-apache) so the site boots on the right PHP with no post-create container recreate, then finalizes + _harden_docker_site, then best-effort enables page cache (#22) and Redis object cache (#23) AFTER `wp core install` (redis already ships in the stack). Cache enablement never fails the create — failures degrade to a non-fatal warning; the one-time admin password is still surfaced once. - The live create modal (inline in WordPress.jsx) gains a PHP version selector (Default / 8.1 / 8.2 / 8.3) and page-cache / object-cache toggles, threaded through createForm -> POST /sites as phpVersion / enablePageCache / enableObjectCache (PHP validated server-side). Mechanism: declare a hidden VERSION template var and switch the image line to bare ${VERSION} in wordpress.yaml + wordpress-external-db.yaml so a concrete tag is written at install. This also fixes a latent #24 bug where the unresolved ${VERSION:-...} literal made set_php_version drop the WP-core pin; set_php_version now also falls back to the known core for legacy compose files. No DB migration — PHP/object-cache/SSL read live; the page-cache flag rides the existing sync_config column. Deferred: SSL/TLS + custom-domain at create. Managed sites are http://localhost:PORT containers with no per-site reverse proxy and no domain attached at create — the same missing public-domain/routing infra that blocks #21 and that #8 left frontend-only. TLS remains operable post-create via SiteSSLPanel (#8) once a domain is routed. Verified: backend py_compile, frontend lint-clean + production build, a 3-lens adversarial review (no blockers), and Docker Hub confirms all 6.4-php8.{1,2,3}-apache tags exist. Not runtime-exercised on a real Docker host (Windows dev). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>