From 2e9b61353a77084c9e73c5919dadc49369de5fd6 Mon Sep 17 00:00:00 2001 From: JBB0807 <104856796+JBB0807@users.noreply.github.com> Date: Mon, 21 Apr 2025 17:14:56 -0700 Subject: [PATCH 1/4] code change to work in Fly.io --- .dockerignore | 26 ++++++++++++++++++++ .github/workflows/fly-deploy.yml | 18 ++++++++++++++ Dockerfile | 27 ++++++++++++++++++++ fly.toml | 42 ++++++++++++++++++++++++++++++++ nginx.conf | 11 +++++++++ src/pages/SignIn.jsx | 10 +++++--- 6 files changed, 131 insertions(+), 3 deletions(-) create mode 100644 .dockerignore create mode 100644 .github/workflows/fly-deploy.yml create mode 100644 Dockerfile create mode 100644 fly.toml create mode 100644 nginx.conf diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..19a8430 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,26 @@ +# flyctl launch added from .gitignore +# Logs +**\logs +**\*.log +**\npm-debug.log* +**\yarn-debug.log* +**\yarn-error.log* +**\pnpm-debug.log* +**\lerna-debug.log* + +**\node_modules +**\dist +**\dist-ssr +**\*.local + +# Editor directories and files +**\.vscode\* +!**\.vscode\extensions.json +**\.idea +**\.DS_Store +**\*.suo +**\*.ntvs* +**\*.njsproj +**\*.sln +**\*.sw? +fly.toml diff --git a/.github/workflows/fly-deploy.yml b/.github/workflows/fly-deploy.yml new file mode 100644 index 0000000..b0c246e --- /dev/null +++ b/.github/workflows/fly-deploy.yml @@ -0,0 +1,18 @@ +# See https://fly.io/docs/app-guides/continuous-deployment-with-github-actions/ + +name: Fly Deploy +on: + push: + branches: + - main +jobs: + deploy: + name: Deploy app + runs-on: ubuntu-latest + concurrency: deploy-group # optional: ensure only one action runs at a time + steps: + - uses: actions/checkout@v4 + - uses: superfly/flyctl-actions/setup-flyctl@master + - run: flyctl deploy --remote-only + env: + FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..be88841 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,27 @@ +# Build Stage +FROM node:18 AS build + +WORKDIR /app + +COPY package*.json ./ +RUN npm install + +COPY . . +RUN npm run build + +# Serve Stage +FROM nginx:stable-alpine + +# Copy built React files into nginx public folder +COPY --from=build /app/dist /usr/share/nginx/html + +# Remove default nginx config +RUN rm /etc/nginx/conf.d/default.conf + +# Add your own nginx config +COPY nginx.conf /etc/nginx/conf.d + +# Expose port 80 +EXPOSE 80 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/fly.toml b/fly.toml new file mode 100644 index 0000000..c7c0a90 --- /dev/null +++ b/fly.toml @@ -0,0 +1,42 @@ +# fly.toml app configuration file generated for bytecamp-web on 2025-04-21T13:40:11-07:00 +# +# See https://fly.io/docs/reference/configuration/ for information about how to use this file. +# + +app = 'bytecamp-web' +primary_region = 'sea' + +[build] + +[env] + PORT = '8080' + +[http_service] + internal_port = 80 + force_https = true + auto_stop_machines = 'stop' + auto_start_machines = true + min_machines_running = 0 + processes = ['app'] + +[[services]] + protocol = 'tcp' + internal_port = 8080 + + [[services.ports]] + port = 80 + handlers = ['http'] + + [[services.ports]] + port = 443 + handlers = ['tls', 'http'] + + [[services.tcp_checks]] + interval = '10s' + timeout = '2s' + grace_period = '5s' + +[[vm]] + memory = '1gb' + cpu_kind = 'shared' + cpus = 1 diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..567d531 --- /dev/null +++ b/nginx.conf @@ -0,0 +1,11 @@ +server { + listen 80; + server_name localhost; + + root /usr/share/nginx/html; + index index.html; + + location / { + try_files $uri /index.html; + } +} diff --git a/src/pages/SignIn.jsx b/src/pages/SignIn.jsx index b6a203a..ef079de 100644 --- a/src/pages/SignIn.jsx +++ b/src/pages/SignIn.jsx @@ -14,6 +14,10 @@ function SignInForm() { }); }; + const googleAuth = () => { + window.open("https://byte-camp-auth-service.fly.dev/auth/google", "_self"); + }; + const handleOnSubmit = (evt) => { evt.preventDefault(); @@ -33,11 +37,11 @@ function SignInForm() {