Files
nginx/CHANGELOG.md
Michael Czechowski edd3dee3d9
All checks were successful
Build and publish / build (pull_request) Successful in 19s
feat: bake default white-label nginx.conf into the image
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.
2026-04-29 19:20:43 +02:00

1.3 KiB

Changelog

All notable changes to libreshop/nginx are documented here.

v0.1.1 (Unreleased)

Added

  • Default white-label nginx.conf baked 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}; /api and /${NGINX_UPSTREAM_SHOP:-shop:9999}. Cache zones, X-Forwarded headers, and a /health endpoint included.
  • docker-entrypoint.sh envsubst pass over nginx.conf.template at startup with NGINX_UPSTREAM_SHOP, NGINX_UPSTREAM_CMS, NGINX_CACHE_LIFETIME (default 1h).
  • Adapter-override detection: if /etc/nginx/nginx.conf was replaced via compose configs: (i.e. doesn't carry the stock nginx worker_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 the muellerprints repository.