From 0a68da2b492b0e6417d7828d4fc016a77fc75353 Mon Sep 17 00:00:00 2001
From: db-2001 <adityabhatnagar2001@gmail.com>
Date: Fri, 1 Mar 2024 13:48:20 -0500
Subject: [PATCH 01/16] Fix docker workflow files for cuttingedge and dev
 branches

---
 .github/workflows/docker-image-cuttingedge.yml | 2 ++
 .github/workflows/docker-image-dev.yml         | 4 +++-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/docker-image-cuttingedge.yml b/.github/workflows/docker-image-cuttingedge.yml
index ba4f83d..8394e12 100644
--- a/.github/workflows/docker-image-cuttingedge.yml
+++ b/.github/workflows/docker-image-cuttingedge.yml
@@ -3,6 +3,8 @@ name: Docker Image CI
 on:
   push:
     branches: [ "cuttingedge" ]
+  pull_request:
+    branches: [ "cuttingedge" ] 
   workflow_dispatch:
 
 jobs:
diff --git a/.github/workflows/docker-image-dev.yml b/.github/workflows/docker-image-dev.yml
index 9e95c2a..2bed583 100644
--- a/.github/workflows/docker-image-dev.yml
+++ b/.github/workflows/docker-image-dev.yml
@@ -2,7 +2,9 @@ name: Docker Image CI
 
 on:
   push:
-    branches: [ "cuttingedge" ]
+    branches: [ "dev" ]
+  pull_request:
+    branches: [ "dev" ]
   workflow_dispatch:
 
 jobs:

From 657a3d18573061d3c3d1649115697c736c2e59e1 Mon Sep 17 00:00:00 2001
From: db-2001 <adityabhatnagar2001@gmail.com>
Date: Tue, 5 Mar 2024 23:04:11 -0500
Subject: [PATCH 02/16] Reverse Proxy api automatically test

---
 .github/workflows/docker-image-dev.yml |  2 +-
 Dockerfile                             |  3 +-
 Website/apiConnector.js                | 10 +--
 nginx/conf.d/tranga.conf               | 49 +++++++++++++
 nginx/fastcgi.conf                     | 26 +++++++
 nginx/fastcgi_params                   | 25 +++++++
 nginx/mimes.types                      | 99 ++++++++++++++++++++++++++
 nginx/nginx.conf                       | 32 +++++++++
 nginx/scgi_params                      | 17 +++++
 nginx/uwsgi_params                     | 17 +++++
 10 files changed, 273 insertions(+), 7 deletions(-)
 create mode 100644 nginx/conf.d/tranga.conf
 create mode 100644 nginx/fastcgi.conf
 create mode 100644 nginx/fastcgi_params
 create mode 100644 nginx/mimes.types
 create mode 100644 nginx/nginx.conf
 create mode 100644 nginx/scgi_params
 create mode 100644 nginx/uwsgi_params

diff --git a/.github/workflows/docker-image-dev.yml b/.github/workflows/docker-image-dev.yml
index 2bed583..d88b2db 100644
--- a/.github/workflows/docker-image-dev.yml
+++ b/.github/workflows/docker-image-dev.yml
@@ -37,7 +37,7 @@ jobs:
       - name: Build and push Website
         uses: docker/build-push-action@v4.1.1
         with:
-          context: ./Website
+          context: ./
           file: ./Dockerfile
           #platforms: linux/amd64,linux/arm64,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6
           platforms: linux/amd64
diff --git a/Dockerfile b/Dockerfile
index d178671..6f11182 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,5 @@
 FROM nginx:alpine3.17-slim
-COPY . /usr/share/nginx/html
+COPY ./Website /usr/share/nginx/html
+COPY ./nginx /etc/nginx
 EXPOSE 80
 CMD ["nginx", "-g", "daemon off;"]
\ No newline at end of file
diff --git a/Website/apiConnector.js b/Website/apiConnector.js
index 64dca93..be5f878 100644
--- a/Website/apiConnector.js
+++ b/Website/apiConnector.js
@@ -1,9 +1,9 @@
-let apiUri = `${window.location.protocol}//${window.location.host.split(':')[0]}:6531`
+let apiUri = `${window.location.protocol}//${window.location.host}/api`
 
-if(getCookie("apiUri") != ""){
-    apiUri = getCookie("apiUri");
-}
-setCookie("apiUri", apiUri);
+// if(getCookie("apiUri") != ""){
+//     apiUri = getCookie("apiUri");
+// }
+// setCookie("apiUri", apiUri);
 
 function setCookie(cname, cvalue) {
   const d = new Date();
diff --git a/nginx/conf.d/tranga.conf b/nginx/conf.d/tranga.conf
new file mode 100644
index 0000000..bd8a797
--- /dev/null
+++ b/nginx/conf.d/tranga.conf
@@ -0,0 +1,49 @@
+server {
+    listen       80;
+    listen  [::]:80;
+    server_name  localhost;
+
+    #access_log  /var/log/nginx/host.access.log  main;
+
+    location / {
+        root   /usr/share/nginx/html;
+        index  index.html index.htm;
+    }
+
+    location /api/ {
+        proxy_pass_request_headers on;
+        proxy_pass http://tranga-api:6531/
+    }
+
+    #error_page  404              /404.html;
+
+    # redirect server error pages to the static page /50x.html
+    #
+    error_page   500 502 503 504  /50x.html;
+    location = /50x.html {
+        root   /usr/share/nginx/html;
+    }
+
+    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
+    #
+    #location ~ \.php$ {
+    #    proxy_pass   http://127.0.0.1;
+    #}
+
+    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
+    #
+    #location ~ \.php$ {                                                
+    #    root           html;                                 
+    #    fastcgi_pass   127.0.0.1:9000;
+    #    fastcgi_index  index.php;          
+    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
+    #    include        fastcgi_params;
+    #}                                                                  
+                                       
+    # deny access to .htaccess files, if Apache's document root
+    # concurs with nginx's one         
+    #                                                          
+    #location ~ /\.ht {                
+    #    deny  all;                                                     
+    #}                                 
+}
\ No newline at end of file
diff --git a/nginx/fastcgi.conf b/nginx/fastcgi.conf
new file mode 100644
index 0000000..d94b57f
--- /dev/null
+++ b/nginx/fastcgi.conf
@@ -0,0 +1,26 @@
+
+fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
+fastcgi_param  QUERY_STRING       $query_string;
+fastcgi_param  REQUEST_METHOD     $request_method;
+fastcgi_param  CONTENT_TYPE       $content_type;
+fastcgi_param  CONTENT_LENGTH     $content_length;
+
+fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
+fastcgi_param  REQUEST_URI        $request_uri;
+fastcgi_param  DOCUMENT_URI       $document_uri;
+fastcgi_param  DOCUMENT_ROOT      $document_root;
+fastcgi_param  SERVER_PROTOCOL    $server_protocol;
+fastcgi_param  REQUEST_SCHEME     $scheme;
+fastcgi_param  HTTPS              $https if_not_empty;
+
+fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
+fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;
+
+fastcgi_param  REMOTE_ADDR        $remote_addr;
+fastcgi_param  REMOTE_PORT        $remote_port;
+fastcgi_param  SERVER_ADDR        $server_addr;
+fastcgi_param  SERVER_PORT        $server_port;
+fastcgi_param  SERVER_NAME        $server_name;
+
+# PHP only, required if PHP was built with --enable-force-cgi-redirect
+fastcgi_param  REDIRECT_STATUS    200;
\ No newline at end of file
diff --git a/nginx/fastcgi_params b/nginx/fastcgi_params
new file mode 100644
index 0000000..4a4c037
--- /dev/null
+++ b/nginx/fastcgi_params
@@ -0,0 +1,25 @@
+
+fastcgi_param  QUERY_STRING       $query_string;
+fastcgi_param  REQUEST_METHOD     $request_method;
+fastcgi_param  CONTENT_TYPE       $content_type;
+fastcgi_param  CONTENT_LENGTH     $content_length;
+
+fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
+fastcgi_param  REQUEST_URI        $request_uri;
+fastcgi_param  DOCUMENT_URI       $document_uri;
+fastcgi_param  DOCUMENT_ROOT      $document_root;
+fastcgi_param  SERVER_PROTOCOL    $server_protocol;
+fastcgi_param  REQUEST_SCHEME     $scheme;
+fastcgi_param  HTTPS              $https if_not_empty;
+
+fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
+fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;
+
+fastcgi_param  REMOTE_ADDR        $remote_addr;
+fastcgi_param  REMOTE_PORT        $remote_port;
+fastcgi_param  SERVER_ADDR        $server_addr;
+fastcgi_param  SERVER_PORT        $server_port;
+fastcgi_param  SERVER_NAME        $server_name;
+
+# PHP only, required if PHP was built with --enable-force-cgi-redirect
+fastcgi_param  REDIRECT_STATUS    200
\ No newline at end of file
diff --git a/nginx/mimes.types b/nginx/mimes.types
new file mode 100644
index 0000000..16191d8
--- /dev/null
+++ b/nginx/mimes.types
@@ -0,0 +1,99 @@
+                                                                    
+types {                                                                    
+    text/html                                        html htm shtml;
+    text/css                                         css;                    
+    text/xml                                         xml;        
+    image/gif                                        gif;            
+    image/jpeg                                       jpeg jpg;   
+    application/javascript                           js;                   
+    application/atom+xml                             atom;       
+    application/rss+xml                              rss;                    
+                                                                  
+    text/mathml                                      mml;            
+    text/plain                                       txt;         
+    text/vnd.sun.j2me.app-descriptor                 jad;                  
+    text/vnd.wap.wml                                 wml;  
+    text/x-component                                 htc;                    
+                                                                 
+    image/avif                                       avif;           
+    image/png                                        png;         
+    image/svg+xml                                    svg svgz;             
+    image/tiff                                       tif tiff;
+    image/vnd.wap.wbmp                               wbmp;                   
+    image/webp                                       webp;       
+    image/x-icon                                     ico;            
+    image/x-jng                                      jng;         
+    image/x-ms-bmp                                   bmp;                  
+                                                           
+    font/woff                                        woff;                   
+    font/woff2                                       woff2;
+                                                                             
+    application/java-archive                         jar war ear;
+    application/json                                 json;           
+    application/mac-binhex40                         hqx;        
+    application/msword                               doc;                  
+    application/pdf                                  pdf;        
+    application/postscript                           ps eps ai;              
+    application/rtf                                  rtf;         
+    application/vnd.apple.mpegurl                    m3u8;           
+    application/vnd.google-earth.kml+xml             kml;         
+    application/vnd.google-earth.kmz                 kmz;                  
+    application/vnd.ms-excel                         xls;  
+    application/vnd.ms-fontobject                    eot;                    
+    application/vnd.ms-powerpoint                    ppt;        
+    application/vnd.oasis.opendocument.graphics      odg;                    
+    application/vnd.oasis.opendocument.presentation  odp;         
+    application/vnd.oasis.opendocument.spreadsheet   ods;                  
+    application/vnd.oasis.opendocument.text          odt;     
+    application/vnd.openxmlformats-officedocument.presentationml.presentation
+                                                     pptx;       
+    application/vnd.openxmlformats-officedocument.spreadsheetml.sheet        
+                                                     xlsx;        
+    application/vnd.openxmlformats-officedocument.wordprocessingml.document
+                                                     docx; 
+    application/vnd.wap.wmlc                         wmlc;                   
+    application/wasm                                 wasm;
+    application/x-7z-compressed                      7z;                   
+    application/x-cocoa                              cco;           
+    application/x-java-archive-diff                  jardiff;                
+    application/x-java-jnlp-file                     jnlp;       
+    application/x-makeself                           run;                    
+    application/x-perl                               pl pm;      
+    application/x-pilot                              prc pdb;              
+    application/x-rar-compressed                     rar;        
+    application/x-redhat-package-manager             rpm;                    
+    application/x-sea                                sea;         
+    application/x-shockwave-flash                    swf;                    
+    application/x-stuffit                            sit;         
+    application/x-tcl                                tcl tk;               
+    application/x-x509-ca-cert                       der pem crt;
+    application/x-xpinstall                          xpi;                    
+    application/xhtml+xml                            xhtml;      
+    application/xspf+xml                             xspf;                   
+    application/zip                                  zip;         
+                                                                           
+    application/octet-stream                         bin exe dll;
+    application/octet-stream                         deb;                    
+    application/octet-stream                         dmg;        
+    application/octet-stream                         iso img;                
+    application/octet-stream                         msi msp msm; 
+                                                                           
+    audio/midi                                       mid midi kar;
+    audio/mpeg                                       mp3;                    
+    audio/ogg                                        ogg;
+    audio/x-m4a                                      m4a;                  
+    audio/x-realaudio                                ra;         
+                                                                             
+    video/3gpp                                       3gpp 3gp;   
+    video/mp2t                                       ts;                     
+    video/mp4                                        mp4;         
+    video/mpeg                                       mpeg mpg;             
+    video/quicktime                                  mov;        
+    video/webm                                       webm;                   
+    video/x-flv                                      flv;        
+    video/x-m4v                                      m4v;                    
+    video/x-mng                                      mng;         
+    video/x-ms-asf                                   asx asf;              
+    video/x-ms-wmv                                   wmv;         
+    video/x-msvideo                                  avi;                    
+}                                                       
\ No newline at end of file
diff --git a/nginx/nginx.conf b/nginx/nginx.conf
new file mode 100644
index 0000000..94cdc0b
--- /dev/null
+++ b/nginx/nginx.conf
@@ -0,0 +1,32 @@
+                      
+user  nginx;                               
+worker_processes  auto;                    
+                                           
+error_log  /var/log/nginx/error.log notice;
+pid        /var/run/nginx.pid;
+                             
+                             
+events {                     
+    worker_connections  1024;
+}     
+                                        
+                                           
+http {                                     
+    include       /etc/nginx/mime.types;                                     
+    default_type  application/octet-stream;                                  
+                                                                             
+    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
+                      '$status $body_bytes_sent "$http_referer" '  
+                      '"$http_user_agent" "$http_x_forwarded_for"';
+                                                
+    access_log  /var/log/nginx/access.log  main;
+                       
+    sendfile        on;   
+    #tcp_nopush     on;   
+                          
+    keepalive_timeout  65;
+                                     
+    #gzip  on;
+                          
+    include /etc/nginx/conf.d/*.conf;
+}
\ No newline at end of file
diff --git a/nginx/scgi_params b/nginx/scgi_params
new file mode 100644
index 0000000..1d56c8b
--- /dev/null
+++ b/nginx/scgi_params
@@ -0,0 +1,17 @@
+
+scgi_param  REQUEST_METHOD     $request_method;
+scgi_param  REQUEST_URI        $request_uri;
+scgi_param  QUERY_STRING       $query_string;
+scgi_param  CONTENT_TYPE       $content_type;
+
+scgi_param  DOCUMENT_URI       $document_uri;
+scgi_param  DOCUMENT_ROOT      $document_root;
+scgi_param  SCGI               1;
+scgi_param  SERVER_PROTOCOL    $server_protocol;
+scgi_param  REQUEST_SCHEME     $scheme;
+scgi_param  HTTPS              $https if_not_empty;
+
+scgi_param  REMOTE_ADDR        $remote_addr;
+scgi_param  REMOTE_PORT        $remote_port;
+scgi_param  SERVER_PORT        $server_port;
+scgi_param  SERVER_NAME        $server_name;
\ No newline at end of file
diff --git a/nginx/uwsgi_params b/nginx/uwsgi_params
new file mode 100644
index 0000000..e42d9a9
--- /dev/null
+++ b/nginx/uwsgi_params
@@ -0,0 +1,17 @@
+
+uwsgi_param  QUERY_STRING       $query_string;
+uwsgi_param  REQUEST_METHOD     $request_method;
+uwsgi_param  CONTENT_TYPE       $content_type;
+uwsgi_param  CONTENT_LENGTH     $content_length;
+
+uwsgi_param  REQUEST_URI        $request_uri;
+uwsgi_param  PATH_INFO          $document_uri;
+uwsgi_param  DOCUMENT_ROOT      $document_root;
+uwsgi_param  SERVER_PROTOCOL    $server_protocol;
+uwsgi_param  REQUEST_SCHEME     $scheme;
+uwsgi_param  HTTPS              $https if_not_empty;
+
+uwsgi_param  REMOTE_ADDR        $remote_addr;
+uwsgi_param  REMOTE_PORT        $remote_port;
+uwsgi_param  SERVER_PORT        $server_port;
+uwsgi_param  SERVER_NAME        $server_name;
\ No newline at end of file

From 4b86cd71046ca00393b66d6f301bf73bf2016ea0 Mon Sep 17 00:00:00 2001
From: db-2001 <adityabhatnagar2001@gmail.com>
Date: Tue, 5 Mar 2024 23:09:17 -0500
Subject: [PATCH 03/16] A little fucking semi-colon

---
 nginx/conf.d/tranga.conf | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/nginx/conf.d/tranga.conf b/nginx/conf.d/tranga.conf
index bd8a797..89341d6 100644
--- a/nginx/conf.d/tranga.conf
+++ b/nginx/conf.d/tranga.conf
@@ -12,7 +12,7 @@ server {
 
     location /api/ {
         proxy_pass_request_headers on;
-        proxy_pass http://tranga-api:6531/
+        proxy_pass http://tranga-api:6531/;
     }
 
     #error_page  404              /404.html;

From ef5524d7b65649546441563b62a64f8610ea73b2 Mon Sep 17 00:00:00 2001
From: db-2001 <adityabhatnagar2001@gmail.com>
Date: Tue, 5 Mar 2024 23:53:46 -0500
Subject: [PATCH 04/16] conf tweaks

---
 nginx/conf.d/tranga.conf | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/nginx/conf.d/tranga.conf b/nginx/conf.d/tranga.conf
index 89341d6..3a9dffb 100644
--- a/nginx/conf.d/tranga.conf
+++ b/nginx/conf.d/tranga.conf
@@ -10,7 +10,7 @@ server {
         index  index.html index.htm;
     }
 
-    location /api/ {
+    location ~ /api/ {
         proxy_pass_request_headers on;
         proxy_pass http://tranga-api:6531/;
     }

From d05b8ea76b42f4a29749c4ef87382388e30b4ecf Mon Sep 17 00:00:00 2001
From: db-2001 <adityabhatnagar2001@gmail.com>
Date: Wed, 6 Mar 2024 00:06:16 -0500
Subject: [PATCH 05/16] more conf tweaks

---
 nginx/conf.d/tranga.conf | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/nginx/conf.d/tranga.conf b/nginx/conf.d/tranga.conf
index 3a9dffb..fc02585 100644
--- a/nginx/conf.d/tranga.conf
+++ b/nginx/conf.d/tranga.conf
@@ -12,7 +12,10 @@ server {
 
     location ~ /api/ {
         proxy_pass_request_headers on;
-        proxy_pass http://tranga-api:6531/;
+        set $upstream_app tranga-api;
+        set $upstream_port 6531;
+        set $upstream_proto http:
+        proxy_pass $upstream_proto://$upstream_app:$upstream_port;
     }
 
     #error_page  404              /404.html;

From a2e0a2375a1f85d60b88bb67c522b2711d98713f Mon Sep 17 00:00:00 2001
From: db-2001 <adityabhatnagar2001@gmail.com>
Date: Wed, 6 Mar 2024 00:10:33 -0500
Subject: [PATCH 06/16] another freaking semicolon mistake

---
 nginx/conf.d/tranga.conf | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/nginx/conf.d/tranga.conf b/nginx/conf.d/tranga.conf
index fc02585..fbc3270 100644
--- a/nginx/conf.d/tranga.conf
+++ b/nginx/conf.d/tranga.conf
@@ -14,7 +14,7 @@ server {
         proxy_pass_request_headers on;
         set $upstream_app tranga-api;
         set $upstream_port 6531;
-        set $upstream_proto http:
+        set $upstream_proto http;
         proxy_pass $upstream_proto://$upstream_app:$upstream_port;
     }
 

From 5af30051793849fa17846be69245d90398dc56e3 Mon Sep 17 00:00:00 2001
From: = <=>
Date: Thu, 7 Mar 2024 12:16:19 +1100
Subject: [PATCH 07/16] feat: enable API_URL in Dockerfile

fix tranga.conf not redirecting /api/ requests
---
 Dockerfile                            |  1 +
 nginx/conf.d/tranga.conf              | 52 ---------------------------
 nginx/templates/default.conf.template | 29 +++++++++++++++
 3 files changed, 30 insertions(+), 52 deletions(-)
 delete mode 100644 nginx/conf.d/tranga.conf
 create mode 100644 nginx/templates/default.conf.template

diff --git a/Dockerfile b/Dockerfile
index 6f11182..9a9592a 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -2,4 +2,5 @@
 COPY ./Website /usr/share/nginx/html
 COPY ./nginx /etc/nginx
 EXPOSE 80
+ENV API_URL=http://tranga-api:6531
 CMD ["nginx", "-g", "daemon off;"]
\ No newline at end of file
diff --git a/nginx/conf.d/tranga.conf b/nginx/conf.d/tranga.conf
deleted file mode 100644
index fbc3270..0000000
--- a/nginx/conf.d/tranga.conf
+++ /dev/null
@@ -1,52 +0,0 @@
-server {
-    listen       80;
-    listen  [::]:80;
-    server_name  localhost;
-
-    #access_log  /var/log/nginx/host.access.log  main;
-
-    location / {
-        root   /usr/share/nginx/html;
-        index  index.html index.htm;
-    }
-
-    location ~ /api/ {
-        proxy_pass_request_headers on;
-        set $upstream_app tranga-api;
-        set $upstream_port 6531;
-        set $upstream_proto http;
-        proxy_pass $upstream_proto://$upstream_app:$upstream_port;
-    }
-
-    #error_page  404              /404.html;
-
-    # redirect server error pages to the static page /50x.html
-    #
-    error_page   500 502 503 504  /50x.html;
-    location = /50x.html {
-        root   /usr/share/nginx/html;
-    }
-
-    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
-    #
-    #location ~ \.php$ {
-    #    proxy_pass   http://127.0.0.1;
-    #}
-
-    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
-    #
-    #location ~ \.php$ {                                                
-    #    root           html;                                 
-    #    fastcgi_pass   127.0.0.1:9000;
-    #    fastcgi_index  index.php;          
-    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
-    #    include        fastcgi_params;
-    #}                                                                  
-                                       
-    # deny access to .htaccess files, if Apache's document root
-    # concurs with nginx's one         
-    #                                                          
-    #location ~ /\.ht {                
-    #    deny  all;                                                     
-    #}                                 
-}
\ No newline at end of file
diff --git a/nginx/templates/default.conf.template b/nginx/templates/default.conf.template
new file mode 100644
index 0000000..cf526c7
--- /dev/null
+++ b/nginx/templates/default.conf.template
@@ -0,0 +1,29 @@
+server {
+    listen       80 default_server;
+    listen  [::]:80 default_server;
+
+    http2  on;
+
+    server_name  _;
+
+    access_log  /dev/stdout  main;
+    error_log  /dev/stderr;
+
+    location /api/ {
+        proxy_pass_request_headers on;
+        rewrite ^/api/(.*)$ /$1 break;
+        proxy_pass $API_URL;
+    }
+
+    location / {
+        root   /usr/share/nginx/html;
+        index  index.html index.htm;
+    }
+
+    # redirect server error pages to the static page /50x.html
+    #
+    error_page   500 502 503 504  /50x.html;
+    location = /50x.html {
+        root   /usr/share/nginx/html;
+    }
+}
\ No newline at end of file

From 3eb7b63fa63584e923e5c0cc6fa833a4c4b2f861 Mon Sep 17 00:00:00 2001
From: glax <johanna@bernloehr.eu>
Date: Tue, 2 Apr 2024 02:07:04 +0200
Subject: [PATCH 08/16] Fix https://github.com/C9Glax/tranga-website/issues/76
 wrong context

---
 .github/workflows/docker-image-cuttingedge.yml | 2 +-
 .github/workflows/docker-image-master.yml      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/docker-image-cuttingedge.yml b/.github/workflows/docker-image-cuttingedge.yml
index 8394e12..abeb0df 100644
--- a/.github/workflows/docker-image-cuttingedge.yml
+++ b/.github/workflows/docker-image-cuttingedge.yml
@@ -37,7 +37,7 @@ jobs:
       - name: Build and push Website
         uses: docker/build-push-action@v4.1.1
         with:
-          context: ./Website
+          context: ./
           file: ./Dockerfile
           #platforms: linux/amd64,linux/arm64,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6
           platforms: linux/amd64
diff --git a/.github/workflows/docker-image-master.yml b/.github/workflows/docker-image-master.yml
index dccd18c..ddba6a9 100644
--- a/.github/workflows/docker-image-master.yml
+++ b/.github/workflows/docker-image-master.yml
@@ -37,7 +37,7 @@ jobs:
       - name: Build and push Website
         uses: docker/build-push-action@v4.1.1
         with:
-          context: ./Website
+          context: ./
           file: ./Dockerfile
           #platforms: linux/amd64,linux/arm64,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6
           platforms: linux/amd64

From 3b99dbd487474fe922235c3e995f250909a859a4 Mon Sep 17 00:00:00 2001
From: db-2001 <adityabhatnagar2001@gmail.com>
Date: Thu, 18 Apr 2024 17:33:08 -0400
Subject: [PATCH 09/16] Remove Mangadex Author Rate Limit

---
 Website/index.html     | 1 -
 Website/interaction.js | 9 ---------
 2 files changed, 10 deletions(-)

diff --git a/Website/index.html b/Website/index.html
index 1bb8c4c..804b644 100644
--- a/Website/index.html
+++ b/Website/index.html
@@ -131,7 +131,6 @@
                 </div> -->
                 <div class="section-item dyn-height">
                   <span class="title"><img src="connector-icons/mangadex-logo.svg"><a href="https://mangadex.org">MangaDex</a></span>
-                  <row><label for="mDexAuthorRL">Author Rate Limit:</label><input id="mDexAuthorRL" type="text"></row>
                   <row><label for="mDexFeedRL">Feed Rate Limit:</label><input id="mDexFeedRL" type="text"></row>
                   <row><label for="mDexImageRL">Image Rate Limit:</label><input id="mDexImageRL" type="text"></row>
                 </div>
diff --git a/Website/interaction.js b/Website/interaction.js
index 889ade9..5133e19 100644
--- a/Website/interaction.js
+++ b/Website/interaction.js
@@ -40,7 +40,6 @@ const imageRL = document.querySelector("#imageRL");
 const infoRL = document.querySelector("#infoRL");
 
 //MangaDex Rate Limits
-const mDexAuthorRL = document.querySelector("#mDexAuthorRL");
 const mDexFeedRL = document.querySelector("#mDexFeedRL");
 const mDexImageRL = document.querySelector("#mDexImageRL");
 
@@ -158,7 +157,6 @@ function Setup(){
       coverRL.placeholder = json.MangaCover + ' Requests/Minute';
       imageRL.placeholder = json.MangaImage + ' Requests/Minute';
       infoRL.placeholder = json.MangaInfo + ' Requests/Minute';
-      mDexAuthorRL.placeholder = json.MangaDexAuthor + ' Requests/Minute';
       mDexFeedRL.placeholder = json.MangaDexFeed + ' Requests/Minute';
       mDexImageRL.placeholder = json.MangaDexImage + ' Requests/Minute';
     });
@@ -530,7 +528,6 @@ defaultRL.addEventListener("keypress", (event) => { if(event.key === "Enter") Up
 coverRL.addEventListener("keypress", (event) => { if(event.key === "Enter") UpdateSettings();}); 
 imageRL.addEventListener("keypress", (event) => { if(event.key === "Enter") UpdateSettings();}); 
 infoRL.addEventListener("keypress", (event) => { if(event.key === "Enter") UpdateSettings();}); 
-mDexAuthorRL.addEventListener("keypress", (event) => { if(event.key === "Enter") UpdateSettings();}); 
 mDexFeedRL.addEventListener("keypress", (event) => { if(event.key === "Enter") UpdateSettings();}); 
 mDexImageRL.addEventListener("keypress", (event) => { if(event.key === "Enter") UpdateSettings();}); 
 
@@ -558,7 +555,6 @@ function OpenSettings(){
   coverRL.value = "";
   imageRL.value = "";
   infoRL.value = "";
-  mDexAuthorRL.value = "";
   mDexFeedRL.value = "";
   mDexImageRL.value = "";
   
@@ -573,7 +569,6 @@ function OpenSettings(){
     coverRL.placeholder = json.MangaCover + ' Requests/Minute';
     imageRL.placeholder = json.MangaImage + ' Requests/Minute';
     infoRL.placeholder = json.MangaInfo + ' Requests/Minute';
-    mDexAuthorRL.placeholder = json.MangaDexAuthor + ' Requests/Minute';
     mDexFeedRL.placeholder = json.MangaDexFeed + ' Requests/Minute';
     mDexImageRL.placeholder = json.MangaDexImage + ' Requests/Minute';
   });
@@ -716,10 +711,6 @@ function UpdateSettings(){
     UpdateRateLimit(6, infoRL.value);
   }
 
-  if (mDexAuthorRL.value != "") {
-    UpdateRateLimit(5, mDexAuthorRL.value);
-  }
-
   if (mDexFeedRL.value != "") {
     UpdateRateLimit(1, mDexFeedRL.value);
   }

From 38572a3a46ce84b126b37c025f90fa0947be2545 Mon Sep 17 00:00:00 2001
From: glax <johanna@bernloehr.eu>
Date: Mon, 22 Apr 2024 21:53:12 +0200
Subject: [PATCH 10/16] Fixes https://github.com/C9Glax/tranga/issues/171
 Overwrites for settingsg that weren't changed on the frontend.

---
 Website/interaction.js | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/Website/interaction.js b/Website/interaction.js
index 5133e19..5d35ac0 100644
--- a/Website/interaction.js
+++ b/Website/interaction.js
@@ -560,8 +560,8 @@ function OpenSettings(){
   
   GetSettings().then((json) => {
     //console.log(json);
-    settingApiUri.value = apiUri;
-    settingUserAgent.value = json.userAgent;
+    settingApiUri.placeholder = apiUri;
+    settingUserAgent.placeholder = json.userAgent;
     //console.log(json.styleSheet);
   });
   GetRateLimits().then((json) => {
@@ -578,15 +578,15 @@ function OpenSettings(){
       switch(libraryConnectorTypes[connector.libraryType]){
         case "Kavita":
           settingKavitaConfigured.setAttribute("configuration", "Active");
-          settingKavitaUrl.value = connector.baseUrl;
-          settingKavitaUser.value = "***";
-          settingKavitaPass.value = "***";
+          settingKavitaUrl.placeholder = connector.baseUrl;
+          settingKavitaUser.placeholder = "***";
+          settingKavitaPass.placeholder = "***";
           break;
         case "Komga":
           settingKomgaConfigured.setAttribute("configuration", "Active");
-          settingKomgaUrl.value = connector.baseUrl;
-          settingKomgaUser.value = "***";
-          settingKomgaPass.value = "***";
+          settingKomgaUrl.placeholder = connector.baseUrl;
+          settingKomgaUser.placeholder = "***";
+          settingKomgaPass.placeholder = "***";
           break;
         default:
           console.log("Unknown type");
@@ -599,18 +599,18 @@ function OpenSettings(){
     json.forEach(connector => {
       switch(notificationConnectorTypes[connector.notificationConnectorType]){
         case "Gotify":
-          settingGotifyUrl.value = connector.endpoint;
-          settingGotifyAppToken.value = "***";
+          settingGotifyUrl.placeholder = connector.endpoint;
+          settingGotifyAppToken.placeholder = "***";
           settingGotifyConfigured.setAttribute("configuration", "Active");
           break;
         case "LunaSea":
           settingLunaseaConfigured.setAttribute("configuration", "Active");
-          settingLunaseaWebhook.value = connector.id;
+          settingLunaseaWebhook.placeholder = connector.id;
           break;
         case "Ntfy":
           settingNtfyConfigured.setAttribute("configuration", "Active");
-          settingNtfyEndpoint.value = connector.endpoint;
-          settingNtfyAuth.value = "***";
+          settingNtfyEndpoint.placeholder = connector.endpoint;
+          settingNtfyAuth.placeholder = "***";
           break;
         default:
           console.log("Unknown type");

From 6bd9a0b1db8f3e4cdbde605816c0eb7e9e3a6d9e Mon Sep 17 00:00:00 2001
From: glax <johanna@bernloehr.eu>
Date: Mon, 26 Aug 2024 12:47:46 +0200
Subject: [PATCH 11/16] Decrease update frequency of website

---
 Website/interaction.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Website/interaction.js b/Website/interaction.js
index 5d35ac0..6f57bc9 100644
--- a/Website/interaction.js
+++ b/Website/interaction.js
@@ -174,7 +174,7 @@ function Setup(){
     }
     setInterval(() => {
       UpdateJobs();
-    }, 1000);
+    }, 5000);
   });
   //Clear the previous values if any exist.
   searchBox.value = "";
@@ -873,4 +873,4 @@ const stringToColour = (str) => {
     colour += value.toString(16).padStart(2, '0')
   }
   return colour
-}
\ No newline at end of file
+}

From c1aece82007a95eada29f00e97aa59dd0bfb1c24 Mon Sep 17 00:00:00 2001
From: vonProteus <vonproteus@users.noreply.github.com>
Date: Sun, 1 Sep 2024 06:08:37 +0200
Subject: [PATCH 12/16] Ability to override defaultApiUrl

---
 Website/apiConnector.js  | 4 +---
 Website/defaultApiUri.js | 1 +
 Website/index.html       | 3 ++-
 3 files changed, 4 insertions(+), 4 deletions(-)
 create mode 100644 Website/defaultApiUri.js

diff --git a/Website/apiConnector.js b/Website/apiConnector.js
index 64dca93..2eb16d5 100644
--- a/Website/apiConnector.js
+++ b/Website/apiConnector.js
@@ -1,6 +1,4 @@
-let apiUri = `${window.location.protocol}//${window.location.host.split(':')[0]}:6531`
-
-if(getCookie("apiUri") != ""){
+if(getCookie("apiUri") != ""){
     apiUri = getCookie("apiUri");
 }
 setCookie("apiUri", apiUri);
diff --git a/Website/defaultApiUri.js b/Website/defaultApiUri.js
new file mode 100644
index 0000000..5173806
--- /dev/null
+++ b/Website/defaultApiUri.js
@@ -0,0 +1 @@
+let apiUri = `${window.location.protocol}//${window.location.host.split(':')[0]}:6531`
\ No newline at end of file
diff --git a/Website/index.html b/Website/index.html
index 1bb8c4c..74e58a9 100644
--- a/Website/index.html
+++ b/Website/index.html
@@ -294,7 +294,8 @@
       <p id="madeWith">Made with Blåhaj 🦈</p>
     </footer> 
   </wrapper>
-  
+
+  <script src="defaultApiUri.js"></script>
   <script src="apiConnector.js"></script>
   <script src="interaction.js"></script>
 </body>

From 4addacb229e4120ce4dd320ac5a1d211576e3bf6 Mon Sep 17 00:00:00 2001
From: Glax <johanna@bernloehr.eu>
Date: Mon, 9 Sep 2024 20:03:08 +0200
Subject: [PATCH 13/16] Update docker-image-master.yml

---
 .github/workflows/docker-image-master.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/docker-image-master.yml b/.github/workflows/docker-image-master.yml
index 49e2f7d..3deb7ea 100644
--- a/.github/workflows/docker-image-master.yml
+++ b/.github/workflows/docker-image-master.yml
@@ -40,7 +40,7 @@ jobs:
           context: ./Website
           file: ./Dockerfile
           #platforms: linux/amd64,linux/arm64,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6
-          platforms: linux/amd64
+          platforms: linux/amd64,linux/arm64
           pull: true
           push: true
           tags: |

From c656e5face1faa5b6fa36a08f05ccf699dc1b677 Mon Sep 17 00:00:00 2001
From: Glax <johanna@bernloehr.eu>
Date: Mon, 9 Sep 2024 20:03:57 +0200
Subject: [PATCH 14/16] Update docker-image-dev.yml

---
 .github/workflows/docker-image-dev.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/docker-image-dev.yml b/.github/workflows/docker-image-dev.yml
index a8d6df0..dcb444b 100644
--- a/.github/workflows/docker-image-dev.yml
+++ b/.github/workflows/docker-image-dev.yml
@@ -38,7 +38,7 @@ jobs:
           context: ./Website
           file: ./Dockerfile
           #platforms: linux/amd64,linux/arm64,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6
-          platforms: linux/amd64
+          platforms: linux/amd64,linux/arm64
           pull: true
           push: true
           tags: |

From c26e208822c41dcdc69b4b4eadcbf1f773b169bf Mon Sep 17 00:00:00 2001
From: Glax <johanna@bernloehr.eu>
Date: Mon, 9 Sep 2024 20:04:16 +0200
Subject: [PATCH 15/16] Update docker-image-cuttingedge.yml

---
 .github/workflows/docker-image-cuttingedge.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/docker-image-cuttingedge.yml b/.github/workflows/docker-image-cuttingedge.yml
index d9bd4a0..15200e7 100644
--- a/.github/workflows/docker-image-cuttingedge.yml
+++ b/.github/workflows/docker-image-cuttingedge.yml
@@ -38,7 +38,7 @@ jobs:
           context: ./Website
           file: ./Dockerfile
           #platforms: linux/amd64,linux/arm64,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6
-          platforms: linux/amd64
+          platforms: linux/amd64,linux/arm64
           pull: true
           push: true
           tags: |

From b70dfbf482763279f448ae8ef4851390e7398af8 Mon Sep 17 00:00:00 2001
From: Glax <johanna@bernloehr.eu>
Date: Wed, 11 Sep 2024 14:50:44 +0200
Subject: [PATCH 16/16] Update docker-image-cuttingedge.yml

---
 .github/workflows/docker-image-cuttingedge.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/docker-image-cuttingedge.yml b/.github/workflows/docker-image-cuttingedge.yml
index 0620ff9..0250664 100644
--- a/.github/workflows/docker-image-cuttingedge.yml
+++ b/.github/workflows/docker-image-cuttingedge.yml
@@ -37,7 +37,7 @@ jobs:
       - name: Build and push Website
         uses: docker/build-push-action@v6.7.0
         with:
-          context: ./
+          context: .
           file: ./Dockerfile
           #platforms: linux/amd64,linux/arm64,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6
           platforms: linux/amd64,linux/arm64