# nginx config for outlook-addin-cdn. # # Routing model: Traefik forwards requests to platform.dev.marcus-law.co.il/outlook-addin/* # and Coolify adds a StripPrefix middleware that strips /outlook-addin. nginx # therefore sees requests at the root path (e.g. /OutlookAddin.vsto). server { listen 80 default_server; server_name _; root /usr/share/nginx/html; index index.html; # ClickOnce MIME types. Without these, .vsto/.application/.manifest/.deploy # are served as text/plain and the bootstrapper refuses to install. types { application/x-ms-application application; application/x-ms-manifest manifest; application/octet-stream vsto; application/octet-stream deploy; } # ClickOnce checks for updates on every Outlook start; never serve stale # manifests from caches. add_header Cache-Control "no-cache, no-store, must-revalidate" always; add_header Pragma "no-cache" always; add_header Expires "0" always; # Health endpoint for Coolify/Docker healthcheck (path is checked before # StripPrefix since the healthcheck runs inside the container on port 80). location = /health { access_log off; return 200 "ok"; add_header Content-Type text/plain; } # Never list directories -- that would expose the internal Application Files # layout to anyone browsing. autoindex off; location / { try_files $uri $uri/ =404; } }