server { listen 80; server_name _; root /usr/share/nginx/html; index index.html; # The user-management module is a self-contained SPA built into /_um. Deep links # / refreshes under /_um must fall back to the MODULE's own index.html, not the # host's. Longest-prefix match wins, so this takes precedence over `location /`. # Mirrors the dev SPA-fallback plugin in apps/backoffice/vite.config.mts. location /_um/ { try_files $uri $uri/ /_um/index.html; } location / { try_files $uri $uri/ /index.html; } }