[F0][BE] PK-69: Monorepo skeleton — pnpm workspace + docker-compose + CI #1

Merged
forge-admin merged 3 commits from feature/f0-monorepo-skeleton into main 2026-05-17 12:36:23 +00:00
Owner

Summary

Bootstrap monorepo skeleton: pnpm workspace, Docker Compose stack (postgres + backend/frontend placeholders), CI matrix skeleton, DESIGN_REFERENCE layout, PROJECT.md/STYLE_GUIDE.md.

Tracking issue: PK-69[F0][BE] Monorepo skeleton: pnpm workspace + docker-compose + CI
(Multica: mention://issue/3445b28b-d9e4-4eb3-8feb-5909ec3ce01e)

Commit: 4c3ee34 chore(repo): bootstrap pnpm workspace + docker compose + CI skeleton

Štruktúra repa (oproti PROJECT.md §4)

.
├── PROJECT.md, STYLE_GUIDE.md, README.md, .gitignore, .env.example
├── package.json (packageManager pnpm@9.12.0, Node ≥22)
├── pnpm-workspace.yaml (apps/*, packages/*)
├── docker-compose.yml, docker-compose.dev.yml
├── .github/workflows/ci.yml (lint + typecheck matrix, no-op)
├── DESIGN_REFERENCE/ (README + 6× NOTES.md placeholdre)
├── apps/{frontend,backend}/ (.gitkeep + placeholder nginx Dockerfile)
└── packages/{drl-generator,shared-types}/ (.gitkeep)

Placeholder Dockerfile-y v apps/{backend,frontend}/nginx:1.27-alpine (počúvajú na 8080/3000) — odôvodnená odchýlka, aby docker compose up prešiel celý stack ešte pred PK-70 (Spring Boot) a PK-71 (Next.js).

Test plan

  • cp .env.example .env && docker compose up -d zdvihne všetky 3 kontajnery: postgres healthy do ~10 s, backend placeholder vracia 200 na :8080, frontend placeholder vracia 200 na :3000.
  • pnpm install v koreni prejde bez chyby (Node ≥ 22, pnpm pinned cez packageManager).
  • git ls-files neukáže node_modules/, .env, target/, IDE súbory (.idea/, .vscode/), .next/.
  • .github/workflows/ci.yml sa naparsuje (lint + typecheck × [frontend, backend, drl-generator, shared-types], zatiaľ no-op echo).
  • Repo štruktúra zodpovedá PROJECT.md §4 a DESIGN_REFERENCE/README.md je prítomný.

Notes

Žiadne biznis endpointy — tento PR je čisto infraštruktúrny skelet. Backend (PK-70) a frontend (PK-71) bootstrap landujú v samostatných PR-och.

## Summary Bootstrap monorepo skeleton: pnpm workspace, Docker Compose stack (postgres + backend/frontend placeholders), CI matrix skeleton, DESIGN_REFERENCE layout, PROJECT.md/STYLE_GUIDE.md. Tracking issue: **PK-69** — `[F0][BE] Monorepo skeleton: pnpm workspace + docker-compose + CI` (Multica: `mention://issue/3445b28b-d9e4-4eb3-8feb-5909ec3ce01e`) Commit: `4c3ee34 chore(repo): bootstrap pnpm workspace + docker compose + CI skeleton` ## Štruktúra repa (oproti PROJECT.md §4) ``` . ├── PROJECT.md, STYLE_GUIDE.md, README.md, .gitignore, .env.example ├── package.json (packageManager pnpm@9.12.0, Node ≥22) ├── pnpm-workspace.yaml (apps/*, packages/*) ├── docker-compose.yml, docker-compose.dev.yml ├── .github/workflows/ci.yml (lint + typecheck matrix, no-op) ├── DESIGN_REFERENCE/ (README + 6× NOTES.md placeholdre) ├── apps/{frontend,backend}/ (.gitkeep + placeholder nginx Dockerfile) └── packages/{drl-generator,shared-types}/ (.gitkeep) ``` Placeholder Dockerfile-y v `apps/{backend,frontend}/` sú `nginx:1.27-alpine` (počúvajú na 8080/3000) — odôvodnená odchýlka, aby `docker compose up` prešiel celý stack ešte pred PK-70 (Spring Boot) a PK-71 (Next.js). ## Test plan - [ ] `cp .env.example .env && docker compose up -d` zdvihne všetky 3 kontajnery: `postgres` healthy do ~10 s, `backend` placeholder vracia 200 na `:8080`, `frontend` placeholder vracia 200 na `:3000`. - [ ] `pnpm install` v koreni prejde bez chyby (Node ≥ 22, pnpm pinned cez `packageManager`). - [ ] `git ls-files` neukáže `node_modules/`, `.env`, `target/`, IDE súbory (`.idea/`, `.vscode/`), `.next/`. - [ ] `.github/workflows/ci.yml` sa naparsuje (lint + typecheck × `[frontend, backend, drl-generator, shared-types]`, zatiaľ no-op echo). - [ ] Repo štruktúra zodpovedá PROJECT.md §4 a `DESIGN_REFERENCE/README.md` je prítomný. ## Notes Žiadne biznis endpointy — tento PR je čisto infraštruktúrny skelet. Backend (PK-70) a frontend (PK-71) bootstrap landujú v samostatných PR-och.
chore(repo): bootstrap pnpm workspace + docker compose + CI skeleton
Some checks failed
CI / Lint (drl-generator) (pull_request) Failing after 7s
CI / Lint (backend) (pull_request) Successful in 11s
CI / Typecheck (backend) (pull_request) Successful in 5s
CI / Typecheck (drl-generator) (pull_request) Successful in 4s
CI / Typecheck (frontend) (pull_request) Successful in 4s
CI / Typecheck (shared-types) (pull_request) Successful in 4s
CI / Lint (shared-types) (pull_request) Failing after 30s
CI / Lint (frontend) (pull_request) Successful in 39s
4c3ee34b25
PK-69 (F0). Pridáva infraštruktúrny skeleton pre Rule Studio monorepo:
- pnpm workspace (apps/*, packages/*), packageManager pinned na pnpm@9.12.0, Node 22
- štruktúra podľa PROJECT.md §4: apps/{frontend,backend}, packages/{drl-generator,shared-types}
- PROJECT.md, STYLE_GUIDE.md, DESIGN_REFERENCE/ (README + 6 podadresárov s NOTES.md)
- docker-compose.yml: postgres:16-alpine (healthcheck, named volume pgdata) +
  backend (port 8080) + frontend (port 3000); secrets cez .env, commit .env.example
- docker-compose.dev.yml override: bind mounty + dev env premenné pre hot reload
- placeholder Dockerfiles v apps/{frontend,backend} (nginx:alpine), aby stack bežal
  hneď; Spring Boot init je v PK-70, Next.js init v PK-71
- .github/workflows/ci.yml: lint + typecheck matrix (zatiaľ no-op placeholdery)
- .gitignore (node_modules, .next, target, .env, IDE), README.md s quickstartom

Overené lokálne: docker compose up beží všetky tri kontajnery, postgres healthy,
backend a frontend porty odpovedajú placeholder textom.

Co-authored-by: multica-agent <github@multica.ai>
ci: drop pnpm cache from setup-node in F0 skeleton
Some checks failed
CI / Lint (shared-types) (pull_request) Failing after 6s
CI / Lint (drl-generator) (pull_request) Failing after 6s
CI / Lint (backend) (pull_request) Successful in 7s
CI / Lint (frontend) (pull_request) Successful in 7s
CI / Typecheck (drl-generator) (pull_request) Successful in 7s
CI / Typecheck (backend) (pull_request) Successful in 7s
CI / Typecheck (shared-types) (pull_request) Failing after 5s
CI / Typecheck (frontend) (pull_request) Successful in 6s
fef1cb3900
No pnpm-lock.yaml exists yet (workspaces are empty placeholders), so
actions/setup-node@v4 'cache: pnpm' fails intermittently looking for
the lockfile. PK-70 / PK-71 will re-enable caching once package.json
and pnpm-lock.yaml land.

Co-authored-by: multica-agent <github@multica.ai>
ci: use corepack for pnpm setup (replace pnpm/action-setup)
All checks were successful
CI / Lint (frontend) (pull_request) Successful in 9s
CI / Lint (backend) (pull_request) Successful in 10s
CI / Lint (shared-types) (pull_request) Successful in 10s
CI / Lint (drl-generator) (pull_request) Successful in 11s
CI / Typecheck (backend) (pull_request) Successful in 5s
CI / Typecheck (drl-generator) (pull_request) Successful in 6s
CI / Typecheck (frontend) (pull_request) Successful in 6s
CI / Typecheck (shared-types) (pull_request) Successful in 5s
399b2fab24
pnpm/action-setup@v4 fails non-deterministically on the self-hosted
runner when matrix jobs race for shared pnpm binary state. Corepack
is bundled with Node 22 and activates pnpm deterministically per-job.
Also drops the implicit dependency on a third-party action.

Co-authored-by: multica-agent <github@multica.ai>
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
forge-admin/DMN-Kokpit!1
No description provided.