The default docker-entrypoint.sh + nginx config served by the libreshop/nginx image only routes / (and /api/* per the upstream defaults) to the shop frontend. /admin returns 404, so the Strapi admin UI is unreachable when the libreshop toolkit runs in standalone (white-label) mode.
Add an /admin location block (and probably /_health, /upload/* for assets) to the libreshop nginx config that proxies to http://cms:5555.
Decide if these routes are always-on or guarded by an env flag (LIBRESHOP_NGINX_ADMIN_ENABLED?). Adapters that hide the admin behind a separate vhost (e.g. mp's nginx fronting muellerprints-paperwork.com) shouldn't have it leak.
Update the libreshop/demo README.md Quick start to mention how to reach the CMS admin once this lands.
Acceptance criteria
curl http://localhost:8080/admin returns a 200/302 (Strapi admin index) on a fresh docker compose up -d run of libreshop/demo.
mp's deployment continues to NOT expose admin on muellerprints-paperwork.com if the env flag stays off there.
Related
libreshop/cms white-label refactor (separate issue) — admin reachability is a precondition for end-users to provision their own brand content.
## Summary
The default `docker-entrypoint.sh` + nginx config served by the libreshop/nginx image only routes `/` (and `/api/*` per the upstream defaults) to the shop frontend. `/admin` returns 404, so the Strapi admin UI is unreachable when the libreshop toolkit runs in standalone (white-label) mode.
## Reproduce
```sh
git clone https://git.librete.ch/libreshop/demo
cd demo
cp .env.example .env
docker compose up -d
sleep 90 # wait for cms init
curl -o /dev/null -w '/ %{http_code}\n' http://localhost:8080/
curl -o /dev/null -w '/admin %{http_code}\n' http://localhost:8080/admin
```
Observed:
```
/ 200
/admin 404
```
## Tasks
- [ ] Add an `/admin` location block (and probably `/_health`, `/upload/*` for assets) to the libreshop nginx config that proxies to `http://cms:5555`.
- [ ] Decide if these routes are always-on or guarded by an env flag (`LIBRESHOP_NGINX_ADMIN_ENABLED`?). Adapters that hide the admin behind a separate vhost (e.g. mp's nginx fronting muellerprints-paperwork.com) shouldn't have it leak.
- [ ] Update the libreshop/demo `README.md` Quick start to mention how to reach the CMS admin once this lands.
## Acceptance criteria
- `curl http://localhost:8080/admin` returns a 200/302 (Strapi admin index) on a fresh `docker compose up -d` run of `libreshop/demo`.
- mp's deployment continues to NOT expose admin on `muellerprints-paperwork.com` if the env flag stays off there.
## Related
- libreshop/cms white-label refactor (separate issue) — admin reachability is a precondition for end-users to provision their own brand content.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
The default
docker-entrypoint.sh+ nginx config served by the libreshop/nginx image only routes/(and/api/*per the upstream defaults) to the shop frontend./adminreturns 404, so the Strapi admin UI is unreachable when the libreshop toolkit runs in standalone (white-label) mode.Reproduce
Observed:
Tasks
/adminlocation block (and probably/_health,/upload/*for assets) to the libreshop nginx config that proxies tohttp://cms:5555.LIBRESHOP_NGINX_ADMIN_ENABLED?). Adapters that hide the admin behind a separate vhost (e.g. mp's nginx fronting muellerprints-paperwork.com) shouldn't have it leak.README.mdQuick start to mention how to reach the CMS admin once this lands.Acceptance criteria
curl http://localhost:8080/adminreturns a 200/302 (Strapi admin index) on a freshdocker compose up -drun oflibreshop/demo.muellerprints-paperwork.comif the env flag stays off there.Related