diff --git a/Dockerfile b/Dockerfile index a732e90a450e98e1a70b45da2fcdb4f98451d808..c2be69e0515b3997437b27451758f46c791bffb3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,5 +12,6 @@ RUN yarn build FROM nginxinc/nginx-unprivileged:1.21.6 +COPY ./default-nginx.conf /etc/nginx/conf.d/default.conf COPY --from=build /app/target/assets /usr/share/nginx/html/assets COPY --from=build /app/target/chatterbox.html /usr/share/nginx/html/chatterbox.html diff --git a/default-nginx.conf b/default-nginx.conf new file mode 100644 index 0000000000000000000000000000000000000000..1dad24570cf08a2fc8b764d6e59e2b99b56a12cc --- /dev/null +++ b/default-nginx.conf @@ -0,0 +1,36 @@ +server { + listen 8080; + server_name localhost; + + + location / { + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Allow-Methods' 'GET'; + # + # Custom headers and headers various browsers *should* be OK with but aren't + # + add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range'; + # + # Tell client that this pre-flight info is valid for 20 days + # + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain; charset=utf-8'; + add_header 'Content-Length' 0; + return 204; + } + if ($request_method = 'GET') { + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Allow-Methods' 'GET' always; + add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range' always; + } + root /usr/share/nginx/html; + index chatterbox.html; + } + + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } +} \ No newline at end of file