diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 6a74b88..0000000 --- a/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -FROM node:20-alpine AS base - -RUN apk add --no-cache libc6-compat -RUN npm i -g pnpm@8.14.1 - -FROM base AS deps - -WORKDIR /app - -COPY package.json pnpm-lock.yaml ./ - -RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile - -FROM base AS builder - -WORKDIR /app - -COPY --from=deps /app/node_modules ./node_modules -COPY . . - -RUN pnpm run build -RUN pnpm run build.storybook - -CMD ["pnpm","run","move.prod"] \ No newline at end of file diff --git a/docker-compose.build.yaml b/docker-compose.build.yaml deleted file mode 100644 index fca193a..0000000 --- a/docker-compose.build.yaml +++ /dev/null @@ -1,17 +0,0 @@ -version: '3' - -services: - builder: - env_file: - - .env.prod - container_name: front-build - tty: false - stdin_open: false - mem_limit: '2G' - build: '.' - volumes: - - builder_nginx_vol:/app/build - -volumes: - builder_nginx_vol: - external: true diff --git a/docker-compose.yaml b/docker-compose.yaml deleted file mode 100644 index 2a4a7e1..0000000 --- a/docker-compose.yaml +++ /dev/null @@ -1,17 +0,0 @@ -version: '3' - -services: - ngnix: - container_name: server - restart: always - build: ./nginx - mem_limit: '2G' - tty: false - stdin_open: false - volumes: - - builder_nginx_vol:/www/data - ports: - - 80:80 - -volumes: - builder_nginx_vol: diff --git a/infra/bootstrap/.terraform.lock.hcl b/infra/bootstrap/.terraform.lock.hcl new file mode 100644 index 0000000..39a6fbd --- /dev/null +++ b/infra/bootstrap/.terraform.lock.hcl @@ -0,0 +1,25 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "5.100.0" + constraints = "~> 5.0" + hashes = [ + "h1:edXOJWE4ORX8Fm+dpVpICzMZJat4AX0VRCAy/xkcOc0=", + "zh:054b8dd49f0549c9a7cc27d159e45327b7b65cf404da5e5a20da154b90b8a644", + "zh:0b97bf8d5e03d15d83cc40b0530a1f84b459354939ba6f135a0086c20ebbe6b2", + "zh:1589a2266af699cbd5d80737a0fe02e54ec9cf2ca54e7e00ac51c7359056f274", + "zh:6330766f1d85f01ae6ea90d1b214b8b74cc8c1badc4696b165b36ddd4cc15f7b", + "zh:7c8c2e30d8e55291b86fcb64bdf6c25489d538688545eb48fd74ad622e5d3862", + "zh:99b1003bd9bd32ee323544da897148f46a527f622dc3971af63ea3e251596342", + "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425", + "zh:9f8b909d3ec50ade83c8062290378b1ec553edef6a447c56dadc01a99f4eaa93", + "zh:aaef921ff9aabaf8b1869a86d692ebd24fbd4e12c21205034bb679b9caf883a2", + "zh:ac882313207aba00dd5a76dbd572a0ddc818bb9cbf5c9d61b28fe30efaec951e", + "zh:bb64e8aff37becab373a1a0cc1080990785304141af42ed6aa3dd4913b000421", + "zh:dfe495f6621df5540d9c92ad40b8067376350b005c637ea6efac5dc15028add4", + "zh:f0ddf0eaf052766cfe09dea8200a946519f653c384ab4336e2a4a64fdd6310e9", + "zh:f1b7e684f4c7ae1eed272b6de7d2049bb87a0275cb04dbb7cda6636f600699c9", + "zh:ff461571e3f233699bf690db319dfe46aec75e58726636a0d97dd9ac6e32fb70", + ] +} diff --git a/infra/live/.terraform.lock.hcl b/infra/live/.terraform.lock.hcl new file mode 100644 index 0000000..8e0bd30 --- /dev/null +++ b/infra/live/.terraform.lock.hcl @@ -0,0 +1,46 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "5.100.0" + constraints = "~> 5.0" + hashes = [ + "h1:edXOJWE4ORX8Fm+dpVpICzMZJat4AX0VRCAy/xkcOc0=", + "zh:054b8dd49f0549c9a7cc27d159e45327b7b65cf404da5e5a20da154b90b8a644", + "zh:0b97bf8d5e03d15d83cc40b0530a1f84b459354939ba6f135a0086c20ebbe6b2", + "zh:1589a2266af699cbd5d80737a0fe02e54ec9cf2ca54e7e00ac51c7359056f274", + "zh:6330766f1d85f01ae6ea90d1b214b8b74cc8c1badc4696b165b36ddd4cc15f7b", + "zh:7c8c2e30d8e55291b86fcb64bdf6c25489d538688545eb48fd74ad622e5d3862", + "zh:99b1003bd9bd32ee323544da897148f46a527f622dc3971af63ea3e251596342", + "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425", + "zh:9f8b909d3ec50ade83c8062290378b1ec553edef6a447c56dadc01a99f4eaa93", + "zh:aaef921ff9aabaf8b1869a86d692ebd24fbd4e12c21205034bb679b9caf883a2", + "zh:ac882313207aba00dd5a76dbd572a0ddc818bb9cbf5c9d61b28fe30efaec951e", + "zh:bb64e8aff37becab373a1a0cc1080990785304141af42ed6aa3dd4913b000421", + "zh:dfe495f6621df5540d9c92ad40b8067376350b005c637ea6efac5dc15028add4", + "zh:f0ddf0eaf052766cfe09dea8200a946519f653c384ab4336e2a4a64fdd6310e9", + "zh:f1b7e684f4c7ae1eed272b6de7d2049bb87a0275cb04dbb7cda6636f600699c9", + "zh:ff461571e3f233699bf690db319dfe46aec75e58726636a0d97dd9ac6e32fb70", + ] +} + +provider "registry.terraform.io/hashicorp/tls" { + version = "4.3.0" + constraints = "~> 4.0" + hashes = [ + "h1:j/BqLS2N2AScZyotd9nZpHdieJ7e5S8y+A+ZfIu8kL8=", + "zh:0ab58d6f8991d436c7d2dbd89ed814709b949b07ac5a54ee53b0aec1fa772a8b", + "zh:60b347abcb56f45d97c56f14d895069cd15a83993f199777f571b79fea3642ee", + "zh:6889be32640349230de3f23856e6f04e0e9ced4a84a27d3f552fa54684448218", + "zh:73f8e1ecf7135033165fb14b7e8bf4d656f3ce13065ec35762ea0481975328c7", + "zh:94ce25ee253eca0b42cae9c856b36bca8103b6453012d1b279c3623c805f2d42", + "zh:96bc6de9fd67bc446fd11257872e1ffb1029a996ed1d65a3f6b43f6d408ad9ab", + "zh:97c609a310a51bfd504d704e036d72064a84bf0bdb36cc08cd4cc66098212b41", + "zh:a12c16e94533c5bd123f75032576b9dc91dd5d5ccd5f7cf331d0f2e1adc55cf8", + "zh:c4f014f876adf7af57188795050bda5b0029d8c7d7773031102b6c36dcf1fc21", + "zh:d9b0a21583aaa3df3a95394fb949a3c515ff71c2ff5a1fc4a73d364aa90bfca5", + "zh:da510d22f0c6d71ad19a76406f106b782448f512375787ecfabb338ed1e311a7", + "zh:f0e9447a9ce3a24cdaa113089e65663c836d8b9bfdb915a1c0284e0112cab5c0", + "zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c", + ] +} diff --git a/nginx/Dockerfile b/nginx/Dockerfile deleted file mode 100644 index dc404ef..0000000 --- a/nginx/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -FROM nginx - -RUN mkdir /www/data/out -p -RUN mkdir /www/data/storybook-static -p -RUN mkdir /var/cache/nginx -p - -RUN rm /etc/nginx/mime.types -RUN rm /etc/nginx/conf.d/default.conf - -COPY ./nginx.conf /etc/nginx/ -COPY ./mime.types /etc/nginx/conf/ - -EXPOSE 80 \ No newline at end of file diff --git a/nginx/mime.types b/nginx/mime.types deleted file mode 100644 index b7ff2b4..0000000 --- a/nginx/mime.types +++ /dev/null @@ -1,98 +0,0 @@ -types { - text/html html htm shtml; - text/css css; - text/xml xml; - image/gif gif; - image/jpeg jpeg jpg; - application/javascript js mjs; - 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 deleted file mode 100644 index afb85ed..0000000 --- a/nginx/nginx.conf +++ /dev/null @@ -1,187 +0,0 @@ - -worker_processes auto; - -worker_rlimit_nofile 8192; - -events { - worker_connections 8000; -} - -http { - - add_header X-Frame-Options "SAMEORIGIN"; - add_header X-XSS-Protection "1; mode=block"; - add_header Content-Security-Policy "worker-src blob:; script-src 'self' 'unsafe-inline' 'unsafe-eval' *.googletagmanager.com *.datadoghq-browser-agent.com; frame-src 'self' *.youtube.com; object-src 'none'; base-uri 'self'; form-action 'none'; frame-ancestors 'self'; img-src 'self' data:; font-src 'self'; manifest-src 'self';"; - add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"; - add_header Referrer-Policy "strict-origin"; - add_header Permissions-Policy "geolocation=(self),midi=(),sync-xhr=(),microphone=(),camera=(),magnetometer=(),gyroscope=(),fullscreen=(),payment=()"; - add_header X-Content-Type-Options nosniff; - add_header Cache-Control "max-age=31536000, immutable"; - add_header Timing-Allow-Origin "*"; - - gzip on; - gzip_types text/plain application/xml font/woff2; - gzip_proxied any; - gzip_min_length 256; - gzip_comp_level 5; - gzip_vary on; - gunzip on; - gzip_types - application/atom+xml - application/geo+json - application/javascript - application/x-javascript - application/json - application/ld+json - application/manifest+json - application/rdf+xml - application/rss+xml - application/vnd.ms-fontobject - application/wasm - application/x-web-app-manifest+json - application/xhtml+xml - application/xml - font/eot - font/otf - font/ttf - image/bmp - image/svg+xml - image/vnd.microsoft.icon - image/x-icon - text/cache-manifest - text/calendar - text/css - text/javascript - text/markdown - text/plain - text/xml - text/vcard - text/vnd.rim.location.xloc - text/vtt - text/x-component - text/x-cross-domain-policy; - - - charset utf-8; - - access_log off; - server_tokens off; - - include conf/mime.types; - - default_type application/octet-stream; - - index index.html; - - server { - - listen 80; - server_name raferdev.com www.raferdev.com; - return 301 https://rafer.dev$request_uri; - } - - server { - - listen 80; - server_name www.rafer.dev; - return 301 https://rafer.dev$request_uri; - } - - server { - - server_name rafer.dev; - - listen 80; - - resolver 127.0.0.11 valid=10s; - resolver_timeout 5s; - - root /www/data/out; - sendfile on; - sendfile_max_chunk 1m; - keepalive_timeout 20s; - tcp_nodelay on; - tcp_nopush on; - - - location / { - gzip_static on; - try_files $uri $uri.html $uri/ =404; - expires max; - } - - - location ~* \.(?:css|js|jpg|svg)$ { - gzip_static on; - try_files $uri $uri/ $uri.html /iframe.html /index.html; - expires max; - - } - - location ~* \.(?:json)$ { - gzip_static on; - try_files $uri $uri/ $uri.html /iframe.html /index.html; - expires max; - } - - location ~* (?:#.*#|\.(?:bak|conf|dist|fla|in[ci]|log|orig|psd|sh|sql|sw[op])|~)$ { - deny all; - } - - error_page 404 /404.html; - location = /404.html { - gzip_static on; - internal; - } - - } - - server { - - server_name storybook.rafer.dev www.storybook.rafer.dev; - - listen 80; - - resolver 127.0.0.11 valid=10s; - resolver_timeout 5s; - - root /www/data/storybook-static; - - sendfile on; - sendfile_max_chunk 1m; - - keepalive_timeout 65; - tcp_nodelay on; - tcp_nopush on; - - - location / { - try_files $uri $uri.html $uri/ =404; - gzip_static on; - expires max; - } - - location ~* \.(?:css|js|jpg|svg)$ { - gzip_static on; - try_files $uri $uri/ $uri.html /iframe.html /index.html; - expires max; - - } - - location ~* \.(?:json)$ { - gzip_static on; - try_files $uri $uri/ $uri.html /iframe.html /index.html; - expires max; - } - - error_page 404 /404.html; - location = /404.html { - gzip_static on; - internal; - } - - location ~* (?:#.*#|\.(?:bak|conf|dist|fla|in[ci]|log|orig|psd|sh|sql|sw[op])|~)$ { - deny all; - } - } -} \ No newline at end of file diff --git a/package.json b/package.json index c92160d..036d84e 100644 --- a/package.json +++ b/package.json @@ -9,14 +9,10 @@ "build": "next build", "build.storybook": "storybook build", "build.tailwind": "pnpm dlx tailwindcss -o ./src/styles/tailwind.css", - "build.docker": "pnpm move.prod && tail -f /dev/null", - "move.prod": "cp -fr out build && cp -fr storybook-static build", "prepare": "husky install", "__move-out-storybook": "cp out -fr out/_next/static/media/ .storybook/public && cp out -fr out/_next/static/css/ .storybook/public", - "exec.prod": "./bin/bash -c", "release": "npx changeset", "version": "npx changeset version", - "docker.prod": "docker compose up -f docker-compose.yaml --no-cache --log-level 0", "test": "docker-compose -f docker-compose.test.yaml up", "test.reset": "docker-compose -f docker-compose.test.yaml up --build", "test.playwright": "pnpm playwright test",