Files
summercms/.planning/notes/go-vs-php-on-plytarium.md
2026-09-28 01:27:19 +02:00

1.9 KiB
Raw Blame History

title, date, context
title date context
Go vs PHP on plytarium.com — what stays, what swaps, why login is not the flip 2026-09-28 /gsd-explore after a working Phase 10 admin login; asked how deployment of that backend will look

Go vs PHP on plytarium.com

The login that already worked is the Phase 10 admin SPA inside the fonoteka binary, talking to local Postgres. That is not a DNS flip of https://plytarium.com.

What stays on the production box

  • Operator-owned nginx vhost. Merge snippets after nginx -t. Do not overwrite the vhost in the dark (fonoteka/docs/deploy/plytarium.com.md).
  • vue-fonoteka-app and fonoteka-mcp — unchanged. Same origin https://plytarium.com. CORS stays a fallback, not the model.
  • Centrifugo and Typesense — same servers. Go only publishes and issues tokens.

What actually swaps

  • php-fpm / Winter → one fonoteka binary. Admin SPA is already embed.FS in the binary (Phase 10 D-01). No separate admin deploy.
  • MariaDB → Postgres with Polish ICU pl-PL. This is a data move, not a config tweak. Boot already refuses a non-pl-PL database.
  • Redis queue:work → River on that same Postgres (Phase 11, not built yet).

When the flip is allowed

Phase 15, after jobs/search (11) and the remaining API routes (12–14). Success criteria: parity harness green on all 154 routes; Nuxt and MCP complete a real session against Go.

Until then, pointing plytarium.com at this binary would take the public app and MCP offline. A side host running admin-only Go is a different, earlier picture and was not chosen as the first deploy target.

Docs that were stale when this was discussed

  • summercms.go/README.md still said nothing runs.
  • fonoteka.go/README.md still described the Phase 3 genre slice and never mentioned admin login.

Intended split: fonoteka.go stays a short run card; summercms.go is the onboarding README and includes an honest "not a PHP flip yet" cutover section.