Michael Czechowski 3cb28ef578 chore: bump nginx and cms to v0.1.1 (#1)
## Summary

- nginx `v0.1.0` → `v0.1.1`: bakes default white-label routing config, fixes `/admin` 404
- cms `v0.1.0` → `v0.1.1`: white-label email templates driven by `SHOP_*` env vars

## Smoke test (run on server after merge)

```sh
docker compose pull nginx cms
docker compose up -d
curl -sS -o /dev/null -w "%{http_code}" http://localhost:8080/admin
# expect 200 or 302 (not 404)
```

Reviewed-on: #1
Co-authored-by: Michael Czechowski <mail@dailysh.it>
Co-committed-by: Michael Czechowski <mail@dailysh.it>
2026-04-29 20:45:02 +02:00

libreshop/demo

Standalone preview of the libreshop toolkit. Composes cms, mail, pdf, nginx, shop (plus a Postgres for the CMS) with placeholder env so the stack runs clickably without any adapter.

This is the white-label preview — no muellerprints branding, no specific product catalogue, no production credentials. Adapters (e.g. mp) replace the compose.yaml here with their own composition + branding env.

Quick start

git clone https://git.librete.ch/libreshop/demo
cd demo
cp .env.example .env
docker compose pull
docker compose up -d

Open http://localhost:8080 — nginx fronts the Nuxt shop on :9999 and proxies /api/* to Strapi on :5555.

Strapi admin: log into the CMS at http://localhost:8080/admin and create the first admin user on first launch.

What is and isn't in the demo

In:

  • All five libreshop component images, pinned to :v0.1.0.
  • Postgres for the CMS (postgres:16-alpine).
  • Inter-service networking via the internal and data docker networks.
  • Healthchecks per service.

Out:

  • Real SMTP — mail stays in stdout-log mode unless you fill the MAIL_SMTP_RELAY_* block in .env.
  • Real PayPal — PAYMENT_ENVIRONMENT=sandbox with no client ID.
  • TLS — nginx serves plain HTTP on port 8080. Front it with caddy / another reverse proxy + Let's Encrypt for a public deployment.
  • Production data — the CMS starts empty.

Versions

.env.example pins every component to a :v0.1.0 tag. To test the rolling :main of one component, override its tag:

LIBRESHOP_CMS_TAG=main docker compose up -d cms

Each component publishes :main, :sha-<7>, :vX.Y.Z, and :latest (latest only on tag pushes). For reproducible runs always pin a specific :vX.Y.Z.

Troubleshooting

  • Strapi takes 2-5 min to start on first run (DB init + admin setup). The start_period: 5m healthcheck accommodates this.
  • pull access denied — the libreshop registry is currently read-public, so anonymous pull works. If you see auth errors on pull, either the package was unpublished or your docker daemon is hitting a stale credential. Try docker logout git.librete.ch.
  • CORS / origin mismatchesSHOP_SITE_URL and NGINX_HOST in .env must match the URL you actually open in a browser.

Contributing

The demo composition follows the libreshop adapter contract — env overrides + bind-mounted volumes only, no docker exec patches into running containers. If a new env var is needed for an adapter, raise it on the relevant component repo (e.g. git.librete.ch/libreshop/cms/issues) and the demo will pick it up on the next release.

Description
libreshop/demo — standalone compose stack for the libreshop toolkit (white-label preview, runs without any adapter)
Readme 34 KiB