Skip to content

Spec 5 deploy guide - #2

Merged
odenirdev merged 16 commits into
mainfrom
spec-5-deploy-guide
Jun 14, 2026
Merged

Spec 5 deploy guide#2
odenirdev merged 16 commits into
mainfrom
spec-5-deploy-guide

Conversation

@odenirdev

Copy link
Copy Markdown
Contributor

No description provided.

…ddy)
Broaden .gitignore to un-ignore *.example template files (the kit ships
.env.deploy.example and the cms ships .env.production.example, both caught
by the existing .env.* rule).
The deploy/* kit and cms/.env.production.example land via the existing
wholesale template copies; scaffold only renames .dockerignore.template ->
.dockerignore (kept .template so it stays inert inside the CLI package).
Two defects that would break a real Postgres self-hosted deploy:
- cms host had no `pg` dependency; Strapi 5 doesn't bundle DB drivers, so
`strapi start` with DATABASE_CLIENT=postgres throws 'Cannot find module pg'.
- the compose seed one-shot ran `node content/seed.mjs` from working_dir
/app/cms, resolving the wrong path; seed.mjs lives at the project root, and
`press dev` runs it as `node <root>/content/seed.mjs` with cwd=cms. Fixed to
`../content/seed.mjs`.
…te path
press create uses the name argument as the package name; an absolute path
yielded an invalid Strapi cms package name ("/tmp/.../site-cms") that broke
strapi build. Invoke create with a bare name and cwd=parent (mirrors
cli-e2e.mjs). Surfaced by the first end-to-end smoke run.
…gers
Review follow-ups:
- .dockerignore now excludes deploy/.env.deploy + cms/.env(.production) so the
build-then-ship COPY does not bake filled-in secrets into image layers (runtime
env is injected by compose env_file/environment, so nothing is lost).
- deploy-smoke.yml also triggers on the seed + press.config.ts templates whose
literal strings the smoke asserts, so a change there re-gates.
- README project tree now lists deploy/.
- Deleted baseline.mjs, leak-snapshot.mjs, and their associated test files.
- Removed seed-e2e script for reproducible end-to-end testing.
- Added .dockerignore and .gitignore files for the playground app.
- Introduced Callout component and its corresponding block configuration.
- Created CMS configuration files for Strapi, including database, server, and middleware settings.
- Added Docker configuration for deploying the CMS and web applications.
- Implemented sample content seeding script for the playground CMS.
- Updated package.json files for playground and cms with necessary dependencies and scripts.
- Established project zone configuration in press.config.ts.
…egration
- Add TypeScript configuration for server and host-template.
- Create .gitignore and .npmignore files to manage ignored files.
- Implement sync-types script to generate TypeScript types from CMS schema.
- Develop catch-all page routing with metadata generation.
- Establish layout component for consistent page structure.
- Configure Next.js settings for TypeScript and custom block rendering.
- Introduce reference blocks and custom block rendering logic.
- Create generator for TypeScript types based on CMS schema.
- Implement tests for block key generation and metadata building.
- Add configuration types and resolve configuration logic for the engine.
- Ensure generated types are properly exported and integrated.
- Updated paths in cli-e2e and deploy-smoke scripts to reflect new package structure.
- Created a new package '@press/shared' to hold framework-agnostic contract types.
- Added TypeScript definitions for PressSchema and Attr interfaces in the shared package.
- Configured TypeScript settings for the shared package.
@odenirdev
odenirdev merged commit f6298ee into mainJun 14, 2026
1 check failed
odenirdev added a commit that referenced this pull request Jul 11, 2026
Closes the BASE/CLI review's two "looks done but isn't" defects.
CI gate (DONE #4): `gen:versions --check` was a silent no-op. It filtered
on `@ogs-tech/press-cli` — no such package (it's `@ogs-tech/create-press`),
and `pnpm --filter` exits 0 when it matches nothing. Even with the right
name it ran AFTER `pnpm build`, whose cli build script is `gen:versions &&
tsc` (write mode), which regenerated the file and masked any drift. Fixed
the filter and moved the step above `pnpm build`, so a stale
versions.generated.ts now fails CI.
press build (DONE #2): a failing subprocess (strapi/next build) collapsed
to a generic exit 1. `util/run.ts` now rejects with a SubprocessError
carrying the real code/signal and bin/press.ts re-exits with it — matching
dev.ts's crash-aware guarantee. dev's pre-boot seed/sync-types become
truthful for free.
Robustness/cleanup gaps from the review are tracked as follow-ups in
docs/superpowers/plans/2026-07-11-base-cli-followups.md.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@odenirdev