diff --git a/.docker/nginx.conf b/.docker/nginx.conf deleted file mode 100644 index a1f254db..00000000 --- a/.docker/nginx.conf +++ /dev/null @@ -1,96 +0,0 @@ -worker_processes 1; -user nobody nobody; -error_log /tmp/error.log; -pid /tmp/nginx.pid; - -events { - - worker_connections 1024; -} - -http { - - include /etc/nginx/mime.types; - default_type application/octet-stream; - sendfile on; - client_body_temp_path /tmp/client_body; - fastcgi_temp_path /tmp/fastcgi_temp; - proxy_temp_path /tmp/proxy_temp; - scgi_temp_path /tmp/scgi_temp; - uwsgi_temp_path /tmp/uwsgi_temp; - access_log /tmp/access.log; - error_log /tmp/error.log; - - # https://nginx.org/en/docs/http/ngx_http_gzip_module.html - # Enable gzip compression. - # Default: off - gzip on; - - # Compression level (1-9). - # 5 is a perfect compromise between size and CPU usage, offering about - # 75% reduction for most ASCII files (almost identical to level 9). - # Default: 1 - gzip_comp_level 5; - - # Don't compress anything that's already small and unlikely to shrink much - # if at all (the default is 20 bytes, which is bad as that usually leads to - # larger files after gzipping). - # Default: 20 - gzip_min_length 256; - - # Compress data even for clients that are connecting to us via proxies, - # identified by the "Via" header (required for CloudFront). - # Default: off - gzip_proxied any; - - # Tell proxies to cache both the gzipped and regular version of a resource - # whenever the client's Accept-Encoding capabilities header varies; - # Avoids the issue where a non-gzip capable client (which is extremely rare - # today) would display gibberish if their proxy gave them the gzipped version. - # Default: off - gzip_vary on; - - # Compress all output labeled with one of the following MIME-types. - # text/html is always compressed by gzip module. - # Default: text/html - gzip_types *; - brotli on; - # brotli_static on; - brotli_types *; - # This should be turned on if you are going to have pre-compressed copies (.gz) of - # static files available. If not it should be left off as it will cause extra I/O - # for the check. It is best if you enable this in a location{} block for - # a specific directory, or on an individual server{} level. - # gzip_static on; - keepalive_timeout 3000; - server { - listen 80; - listen [::]:80; - index index.html; - server_name localhost; - root /usr/share/nginx/html; - autoindex on; - - location ~* \.(?:manifest|appcache|html?|xml|json|css|js|map|jpg|jpeg|gif|png|ico|svg|eot|ttf|woff|woff2)$ { - add_header Access-Control-Allow-Origin *; - add_header Access-Control-Allow-Credentials true; - add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; - add_header Access-Control-Allow-Headers 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; - access_log off; - } - location /service-worker.js { - expires -1; - add_header Access-Control-Allow-Origin *; - add_header Access-Control-Allow-Credentials true; - add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; - add_header Access-Control-Allow-Headers 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; - access_log off; - } - location / { - try_files $uri $uri/ /index.html =404; - } - location /iframe.html { - try_files $uri $uri/ /iframe.html =404; - } - } -} diff --git a/.docker/Dockerfile b/Dockerfile similarity index 75% rename from .docker/Dockerfile rename to Dockerfile index ac89583d..3c44bd3f 100644 --- a/.docker/Dockerfile +++ b/Dockerfile @@ -6,29 +6,28 @@ WORKDIR /src/app RUN mkdir -p /src/app/coriolis RUN mkdir -p /src/app/coriolis-data -COPY ./coriolis/ /src/app/coriolis -COPY ./coriolis-data/ /src/app/coriolis-data +RUN apk add --update git -RUN apk update -RUN apk add git +COPY . /src/app/coriolis RUN npm i -g npm # Set up coriolis-data WORKDIR /src/app/coriolis-data -RUN git fetch --all +RUN git clone https://github.com/EDCD/coriolis-data.git . +RUN git checkout ${BRANCH} RUN npm install --no-package-lock RUN npm start +# Set up coriolis WORKDIR /src/app/coriolis -RUN git fetch --all RUN npm install --no-package-lock RUN npm run build ### STAGE 2: Production Environment ### FROM fholzer/nginx-brotli as web -COPY coriolis/.docker/nginx.conf /etc/nginx/nginx.conf +COPY nginx.conf /etc/nginx/nginx.conf COPY --from=builder /src/app/coriolis/build /usr/share/nginx/html WORKDIR /usr/share/nginx/html EXPOSE 80 diff --git a/.docker/docker-compose.yml b/docker-compose.yml similarity index 100% rename from .docker/docker-compose.yml rename to docker-compose.yml diff --git a/nginx.conf b/nginx.conf index c5089e52..874aefa0 100644 --- a/nginx.conf +++ b/nginx.conf @@ -1,99 +1,96 @@ -worker_processes 2; -error_log ./nginx.error.log; -worker_rlimit_nofile 8192; -pid nginx.pid; +worker_processes 1; +user nobody nobody; +error_log /tmp/error.log; +pid /tmp/nginx.pid; events { - worker_connections 1024; - multi_accept on; + + worker_connections 1024; } http { - access_log off; - charset UTF-8; + include /etc/nginx/mime.types; + default_type application/octet-stream; + sendfile on; + client_body_temp_path /tmp/client_body; + fastcgi_temp_path /tmp/fastcgi_temp; + proxy_temp_path /tmp/proxy_temp; + scgi_temp_path /tmp/scgi_temp; + uwsgi_temp_path /tmp/uwsgi_temp; + access_log /tmp/access.log; + error_log /tmp/error.log; - types { - text/html html htm shtml; - text/css css; - text/xml xml rss; - image/gif gif; - image/jpeg jpeg jpg; - application/x-javascript js; - text/plain txt; - image/png png; - image/svg+xml svg; - image/x-icon ico; - application/pdf pdf; - text/cache-manifest appcache; - } + # https://nginx.org/en/docs/http/ngx_http_gzip_module.html + # Enable gzip compression. + # Default: off + gzip off; - # ---------------------------------------------------------------------- - # | Compression | - # ---------------------------------------------------------------------- + # Compression level (1-9). + # 5 is a perfect compromise between size and CPU usage, offering about + # 75% reduction for most ASCII files (almost identical to level 9). + # Default: 1 + gzip_comp_level 5; - # https://nginx.org/en/docs/http/ngx_http_gzip_module.html - brotli on; - # brotli_static on; - brotli_types *; - # Enable gzip compression. - # Default: off - gzip on; + # Don't compress anything that's already small and unlikely to shrink much + # if at all (the default is 20 bytes, which is bad as that usually leads to + # larger files after gzipping). + # Default: 20 + gzip_min_length 256; - # Compression level (1-9). - # 5 is a perfect compromise between size and CPU usage, offering about - # 75% reduction for most ASCII files (almost identical to level 9). - # Default: 1 - gzip_comp_level 5; + # Compress data even for clients that are connecting to us via proxies, + # identified by the "Via" header (required for CloudFront). + # Default: off + gzip_proxied any; - # Don't compress anything that's already small and unlikely to shrink much - # if at all (the default is 20 bytes, which is bad as that usually leads to - # larger files after gzipping). - # Default: 20 - gzip_min_length 256; + # Tell proxies to cache both the gzipped and regular version of a resource + # whenever the client's Accept-Encoding capabilities header varies; + # Avoids the issue where a non-gzip capable client (which is extremely rare + # today) would display gibberish if their proxy gave them the gzipped version. + # Default: off + gzip_vary on; - # Compress data even for clients that are connecting to us via proxies, - # identified by the "Via" header (required for CloudFront). - # Default: off - gzip_proxied any; + # Compress all output labeled with one of the following MIME-types. + # text/html is always compressed by gzip module. + # Default: text/html + gzip_types *; + brotli on; + # brotli_static on; + brotli_types *; + # This should be turned on if you are going to have pre-compressed copies (.gz) of + # static files available. If not it should be left off as it will cause extra I/O + # for the check. It is best if you enable this in a location{} block for + # a specific directory, or on an individual server{} level. + # gzip_static on; + keepalive_timeout 3000; + server { + listen 80; + listen [::]:80; + index index.html; + server_name localhost; + root /usr/share/nginx/html; + autoindex on; - # Tell proxies to cache both the gzipped and regular version of a resource - # whenever the client's Accept-Encoding capabilities header varies; - # Avoids the issue where a non-gzip capable client (which is extremely rare - # today) would display gibberish if their proxy gave them the gzipped version. - # Default: off - gzip_vary on; - - # Compress all output labeled with one of the following MIME-types. - # text/html is always compressed by gzip module. - # Default: text/html - gzip_types *; - - # This should be turned on if you are going to have pre-compressed copies (.gz) of - # static files available. If not it should be left off as it will cause extra I/O - # for the check. It is best if you enable this in a location{} block for - # a specific directory, or on an individual server{} level. - # gzip_static on; - - server { - listen 3301; - server_name localhost; - root ./build/; - index index.html; - - location ~* \.(?:manifest|appcache|html?|xml|json|css|js|map|jpg|jpeg|gif|png|ico|svg|eot|ttf|woff|woff2)$ { - add_header Access-Control-Allow-Origin *; + location ~* \.(?:manifest|appcache|html?|xml|json|css|js|map|jpg|jpeg|gif|png|ico|svg|eot|ttf|woff|woff2)$ { + add_header Access-Control-Allow-Origin *; + add_header Access-Control-Allow-Credentials true; + add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; + add_header Access-Control-Allow-Headers 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; + access_log off; + } + location /service-worker.js { + expires -1; + add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Credentials true; add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; add_header Access-Control-Allow-Headers 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; - access_log off; - } - - location / { - try_files $uri $uri/ /index.html =404; - } - location /iframe.html { - try_files $uri $uri/ /iframe.html =404; - } - } + access_log off; + } + location / { + try_files $uri $uri/ /index.html =404; + } + location /iframe.html { + try_files $uri $uri/ /iframe.html =404; + } + } } diff --git a/webpack.config.prod.js b/webpack.config.prod.js index 8589ff5e..97b3b85c 100644 --- a/webpack.config.prod.js +++ b/webpack.config.prod.js @@ -50,15 +50,15 @@ module.exports = { disable: false, allChunks: true }), - new BugsnagBuildReporterPlugin({ - apiKey: 'ba9fae819372850fb660755341fa6ef5', - appVersion: `${pkgJson.version}-${buildDate.toISOString()}` - }, { /* opts */ }), - new BugsnagSourceMapUploaderPlugin({ - apiKey: 'ba9fae819372850fb660755341fa6ef5', - overwrite: true, - appVersion: `${pkgJson.version}-${buildDate.toISOString()}` - }), + // new BugsnagBuildReporterPlugin({ + // apiKey: 'ba9fae819372850fb660755341fa6ef5', + // appVersion: `${pkgJson.version}-${buildDate.toISOString()}` + // }, { /* opts */ }), + // new BugsnagSourceMapUploaderPlugin({ + // apiKey: 'ba9fae819372850fb660755341fa6ef5', + // overwrite: true, + // appVersion: `${pkgJson.version}-${buildDate.toISOString()}` + // }), new InjectManifest({ swSrc: './src/sw.js', importWorkboxFrom: 'cdn',