All checks were successful
Build and publish / build (pull_request) Successful in 19s
The image used to ship just nginx + an entrypoint, with no routing
config — adapters had to mount their own nginx.conf via compose
`configs:` for anything to work. This broke the standalone
libreshop/demo preview (`curl /admin` returned 404).
Add a default nginx.conf.template that routes the standard libreshop
surface (`/admin`, `/uploads`, `/api`, `/`, ...) to
`${NGINX_UPSTREAM_CMS:-cms:5555}` / `${NGINX_UPSTREAM_SHOP:-shop:9999}`,
plus health and forwarded-headers handling. The entrypoint runs
envsubst at startup, then nginx.
Adapter override path is preserved: if compose `configs:` already
replaced /etc/nginx/nginx.conf with a non-stock file (detected via
the absence of the upstream nginx `worker_processes auto;` line),
the entrypoint leaves it untouched.
Closes #1.
1.3 KiB
1.3 KiB
Changelog
All notable changes to libreshop/nginx are documented here.
v0.1.1 (Unreleased)
Added
- Default white-label
nginx.confbaked into the image. Routes the standard libreshop surface out of the box:/admin,/upload,/content-manager,/content-type-builder,/i18n,/email,/user-permissions,/users-permissions,/documentation,/plugins,/uploads→${NGINX_UPSTREAM_CMS:-cms:5555};/apiand/→${NGINX_UPSTREAM_SHOP:-shop:9999}. Cache zones, X-Forwarded headers, and a/healthendpoint included. docker-entrypoint.shenvsubst pass overnginx.conf.templateat startup withNGINX_UPSTREAM_SHOP,NGINX_UPSTREAM_CMS,NGINX_CACHE_LIFETIME(default1h).- Adapter-override detection: if
/etc/nginx/nginx.confwas replaced via composeconfigs:(i.e. doesn't carry the stock nginxworker_processes auto;line), the entrypoint leaves it untouched.
Why
libreshop/demo standalone preview returned 404 on /admin because the image had no default routing. Adapters like mp work fine because they mount their own nginx.conf, but the toolkit must be runnable without an adapter.
Unreleased
- Extracted from
mp/nginx/(2026-04-29). The component history before the extraction lives in themuellerprintsrepository.