White-label refactor: ship neutral placeholder content #1

Closed
opened 2026-04-29 19:02:30 +02:00 by libretech · 0 comments
Owner

Summary

The current libreshop/cms image was extracted verbatim from mp/cms/ and contains muellerprints-specific Strapi content — product schemas, copy strings, brand assets, asset paths. Adapters (e.g. mp) should override these via env + bind-mounts, not inherit them from the shared base.

Per the architectural decision (see netcup/libreshop/README.md), libreshop/cms must be white-label: schema only, with neutral placeholder content. Adapter-specific data lives in the adapter's cms-db Postgres + cms-data volume. The image carries the "Strapi project + libreshop schema definitions + sane defaults" only.

Tasks

  • Inventory muellerprints-specific content baked into the image:
    • config/admin.ts, config/api.ts, config/server.ts
    • src/api/<content-type>/content-types/<schema>/lifecycles.ts for any mp-flavored business rules
    • src/services/PdfApi.ts, MailApi.ts, PayPalApi.ts for any hard-coded mp endpoints
    • Asset paths under public/uploads/
  • Move muellerprints-specific values into env vars (LIBRESHOP_BRAND_NAME, LIBRESHOP_LEGAL_ADDRESS, LIBRESHOP_LOGO_URL, LIBRESHOP_PRIMARY_COLOR, etc.) consumed at runtime.
  • Replace fixed copy with placeholder strings (\, \) that adapters override.
  • Document the env contract in README.md so adapters know which keys to set.
  • mp adapter: move muellerprints values into mp's /root/code/mp-next/.env (or a separate mp-cms-overrides.json bind-mount) and stop relying on the image's content.

Acceptance criteria

  • Booting libreshop/cms with empty env shows generic "libreshop" branding, not muellerprints.
  • mp adapter still shows muellerprints branding when its env is set, with no image change.
  • A third hypothetical adapter could set its own env and get its own branding without touching the cms image.
  • libreshop/nginx: admin route fix (separate issue) — admin reachability is needed for adapters to provision their own brand content via Strapi UI.
## Summary The current libreshop/cms image was extracted verbatim from mp/cms/ and contains muellerprints-specific Strapi content — product schemas, copy strings, brand assets, asset paths. Adapters (e.g. mp) should override these via env + bind-mounts, not inherit them from the shared base. Per the architectural decision (see netcup/libreshop/README.md), libreshop/cms must be **white-label**: schema only, with neutral placeholder content. Adapter-specific data lives in the adapter's `cms-db` Postgres + `cms-data` volume. The image carries the "Strapi project + libreshop schema definitions + sane defaults" only. ## Tasks - [ ] Inventory muellerprints-specific content baked into the image: - `config/admin.ts`, `config/api.ts`, `config/server.ts` - `src/api/<content-type>/content-types/<schema>/lifecycles.ts` for any mp-flavored business rules - `src/services/PdfApi.ts`, `MailApi.ts`, `PayPalApi.ts` for any hard-coded mp endpoints - Asset paths under `public/uploads/` - [ ] Move muellerprints-specific values into env vars (`LIBRESHOP_BRAND_NAME`, `LIBRESHOP_LEGAL_ADDRESS`, `LIBRESHOP_LOGO_URL`, `LIBRESHOP_PRIMARY_COLOR`, etc.) consumed at runtime. - [ ] Replace fixed copy with placeholder strings (`\`, `\`) that adapters override. - [ ] Document the env contract in `README.md` so adapters know which keys to set. - [ ] mp adapter: move muellerprints values into mp's `/root/code/mp-next/.env` (or a separate `mp-cms-overrides.json` bind-mount) and stop relying on the image's content. ## Acceptance criteria - Booting libreshop/cms with empty env shows generic "libreshop" branding, not muellerprints. - mp adapter still shows muellerprints branding when its env is set, with no image change. - A *third* hypothetical adapter could set its own env and get its own branding without touching the cms image. ## Related - libreshop/nginx: admin route fix (separate issue) — admin reachability is needed for adapters to provision their own brand content via Strapi UI.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: libreshop/cms#1
No description provided.