From d5cefd941e341f26d6b0b5d02429924ea3b7f56f Mon Sep 17 00:00:00 2001
From: Half-Shot <will@half-shot.uk>
Date: Thu, 21 Apr 2022 16:09:34 +0100
Subject: [PATCH] Add a nginx config file which includes the required cors
 headers

---
 Dockerfile         |  1 +
 default-nginx.conf | 36 ++++++++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+)
 create mode 100644 default-nginx.conf

diff --git a/Dockerfile b/Dockerfile
index a732e90..c2be69e 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 0000000..1dad245
--- /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
-- 
GitLab