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

35 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Go vs PHP on plytarium.com — what stays, what swaps, why login is not the flip
date: 2026-09-28
context: /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.