docs: capture exploration — backend-deployment
This commit is contained in:
34
.planning/notes/go-vs-php-on-plytarium.md
Normal file
34
.planning/notes/go-vs-php-on-plytarium.md
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
---
|
||||||
|
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.
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
title: Nest framework packages under modules/ — same beach names
|
||||||
|
date: 2026-09-28
|
||||||
|
priority: high
|
||||||
|
area: summercms.go
|
||||||
|
---
|
||||||
|
|
||||||
|
Mechanical layout change only. Do not rename packages.
|
||||||
|
|
||||||
|
Move each framework library from the repo root into `modules/<name>/` so `ls` shows `modules/`, `cmd/`, `admin/`, `examples/`, `internal/` instead of `compass` next to `go.mod`.
|
||||||
|
|
||||||
|
In scope (beach-named libs and peers): backpack, boardwalk, bonfire, bouncer, cabana, compass, festival, fetchguard, lagoon, pact, party, phrasebook, postcard, surf, tide, towel, wire, wristband.
|
||||||
|
|
||||||
|
Stay at repo root: `admin/`, `cmd/`, `examples/`, `internal/`, `scripts/`, `go.mod`, `README.md`.
|
||||||
|
|
||||||
|
Import paths become `git.golem15.com/golem15/summercms/modules/<name>`. Rewrite importers in this repo, `../fonoteka.go` (~124 files), and `examples/`. Then `go test ./...` in both repos.
|
||||||
|
|
||||||
|
Do this before Phase 11 adds more root packages. Do not remap onto Winter `system` / `backend` / `cms`.
|
||||||
|
|
||||||
|
After the move is green, run the sibling todo that writes a short `README.md` per module.
|
||||||
14
.planning/todos/pending/per-module-readmes-after-nest.md
Normal file
14
.planning/todos/pending/per-module-readmes-after-nest.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
title: Short README.md per modules/* after the nest
|
||||||
|
date: 2026-09-28
|
||||||
|
priority: medium
|
||||||
|
area: summercms.go/modules
|
||||||
|
---
|
||||||
|
|
||||||
|
Blocked on `.planning/todos/pending/nest-framework-packages-under-modules.md`.
|
||||||
|
|
||||||
|
After the packages live under `modules/`, spawn a GSD explore / researcher pass (one agent, not a hand-written dump) to write a short `README.md` in each `modules/<name>/`.
|
||||||
|
|
||||||
|
Each file: one paragraph on what the package is for, who imports it, and one example entry point (`Package.Type` or file). No architecture essays. No copy-paste of planning docs.
|
||||||
|
|
||||||
|
The top-level `summercms.go/README.md` should then link the directory instead of explaining every beach name inline.
|
||||||
14
.planning/todos/pending/refresh-fonoteka-readme.md
Normal file
14
.planning/todos/pending/refresh-fonoteka-readme.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
title: Refresh fonoteka.go README — short status plus migrate/serve/login
|
||||||
|
date: 2026-09-28
|
||||||
|
priority: high
|
||||||
|
area: ../fonoteka.go/README.md
|
||||||
|
---
|
||||||
|
|
||||||
|
Keep this file a short run card. Do not duplicate the framework story.
|
||||||
|
|
||||||
|
Update status from "Phase 3 vertical slice / 15 genres" to what actually runs: `golem15.user` + `golem15.fonoteka`, Postgres with Polish ICU `pl-PL`, `./bin/fonoteka migrate` then `serve`, admin SPA login at the configured admin prefix.
|
||||||
|
|
||||||
|
Keep the existing DSN / JWT secret / collation block. Add the minimum env and URL needed to log in the way it already worked. Point at `../summercms.go/README.md` for architecture and the plytarium.com cutover picture.
|
||||||
|
|
||||||
|
Lives in the sibling repo; planning docs stay in `summercms.go`.
|
||||||
18
.planning/todos/pending/rewrite-summercms-readme.md
Normal file
18
.planning/todos/pending/rewrite-summercms-readme.md
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
title: Rewrite summercms.go README — onboard, recreate login, honest cutover
|
||||||
|
date: 2026-09-28
|
||||||
|
priority: high
|
||||||
|
area: summercms.go/README.md
|
||||||
|
---
|
||||||
|
|
||||||
|
Replace `README.md`. It currently says pre-alpha / nothing runs. That is false.
|
||||||
|
|
||||||
|
The long story lives here, not in `fonoteka.go`. Include:
|
||||||
|
|
||||||
|
- What this repo is (framework only; app is the sibling `fonoteka.go`).
|
||||||
|
- Two-repo layout and `go.work` replace during development.
|
||||||
|
- How to recreate the Phase 10 admin login that already worked (point at `fonoteka.go` for DSN / migrate / serve; do not pretend this repo is the app binary).
|
||||||
|
- Current status vs the Phase 15 PHP flip — honest "not yet" cutover section drawn from `.planning/notes/go-vs-php-on-plytarium.md`.
|
||||||
|
- After the `modules/` nest lands, point at `modules/<name>/README.md` instead of listing beach-named packages at the repo root.
|
||||||
|
|
||||||
|
Do not invent a production runbook. Operator procedure stays in the PHP `docs/deploy/plytarium.com.md` until Phase 15.
|
||||||
Reference in New Issue
Block a user