1.9 KiB
1.9 KiB
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-appandfonoteka-mcp— unchanged. Same originhttps://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
fonotekabinary. Admin SPA is alreadyembed.FSin 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-PLdatabase. - 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.mdstill said nothing runs.fonoteka.go/README.mdstill 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.