-
Notifications
You must be signed in to change notification settings - Fork 25
docs: deploy to AWS Amplify #42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 2 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,91 @@ | ||||||||||||||||||||||||||||||||||||
| --- | ||||||||||||||||||||||||||||||||||||
| sidebar_position: 4 | ||||||||||||||||||||||||||||||||||||
| --- | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| # Deploy to AWS Amplify | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| This guide covers how to deploy Composable UI to AWS Amplify | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| ## Prerequisites | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| - You'll need an AWS account, sign up here: https://aws.amazon.com/ | ||||||||||||||||||||||||||||||||||||
| - You'll need to fork the Composable UI github repository. | ||||||||||||||||||||||||||||||||||||
| - This is required since later on you'll be authorizing AWS Amplify access to your forked copy of Composable UI. | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| ## Create a new AWS Amplify app | ||||||||||||||||||||||||||||||||||||
| - Sign into your AWS console | ||||||||||||||||||||||||||||||||||||
| - Go to the AWS Amplify service. It can be found by searching for "AWS Amplify" in the search bar. | ||||||||||||||||||||||||||||||||||||
| - Once in the AWS Amplify dashboard, click on `Create new app`. | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| ### Configure the new app | ||||||||||||||||||||||||||||||||||||
| - Select `GitHub` as the Git provider, and click `Next`. | ||||||||||||||||||||||||||||||||||||
| - Select your Composable UI repository from the `Select a repository` search bar. | ||||||||||||||||||||||||||||||||||||
| - Note: You may need to click on the `Update GitHub permissions` button to authorize AWS access to your desired github organization and specific github repository. | ||||||||||||||||||||||||||||||||||||
| - In `Select a branch`, select `main`. | ||||||||||||||||||||||||||||||||||||
| - Select the `My app is a monorepo` checkbox. | ||||||||||||||||||||||||||||||||||||
| - Set the `Monorepo root directory` to `composable-ui`. | ||||||||||||||||||||||||||||||||||||
| - Click `Next` | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| On the `App settings` screen: | ||||||||||||||||||||||||||||||||||||
| - Click `Edit YML file`, and paste the below yml file into the editor, then click `Save`: | ||||||||||||||||||||||||||||||||||||
| ```yml | ||||||||||||||||||||||||||||||||||||
| version: 1 | ||||||||||||||||||||||||||||||||||||
| applications: | ||||||||||||||||||||||||||||||||||||
| - frontend: | ||||||||||||||||||||||||||||||||||||
| phases: | ||||||||||||||||||||||||||||||||||||
| preBuild: | ||||||||||||||||||||||||||||||||||||
| commands: | ||||||||||||||||||||||||||||||||||||
| - echo 'node-linker=hoisted' >> .npmrc | ||||||||||||||||||||||||||||||||||||
| - npm install -g pnpm | ||||||||||||||||||||||||||||||||||||
| - pnpm install | ||||||||||||||||||||||||||||||||||||
| build: | ||||||||||||||||||||||||||||||||||||
| commands: | ||||||||||||||||||||||||||||||||||||
| - env >> .env | ||||||||||||||||||||||||||||||||||||
| - npx turbo run build --filter=composable-ui | ||||||||||||||||||||||||||||||||||||
| artifacts: | ||||||||||||||||||||||||||||||||||||
| baseDirectory: .next | ||||||||||||||||||||||||||||||||||||
| files: | ||||||||||||||||||||||||||||||||||||
| - '**/*' | ||||||||||||||||||||||||||||||||||||
| cache: | ||||||||||||||||||||||||||||||||||||
| paths: | ||||||||||||||||||||||||||||||||||||
| - $(pnpm store path) | ||||||||||||||||||||||||||||||||||||
| buildPath: composable-ui | ||||||||||||||||||||||||||||||||||||
| appRoot: composable-ui | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||
| - The Environment Variables are configured in the `Advanced Settings` section. We will skip this for now, and come back to this in a later step. | ||||||||||||||||||||||||||||||||||||
| - Click `Next`. | ||||||||||||||||||||||||||||||||||||
| - Click `Save and deploy`. | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| The deployment will succeed, however, we now need to setup the [Environment Variables](#configure-environment-variables). | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| ### Configure Environment Variables | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| We need to obtain the domain that the app is being deployed on: | ||||||||||||||||||||||||||||||||||||
| - Go to the main dashboard of your app in AWS Amplify. | ||||||||||||||||||||||||||||||||||||
| - Click on `Hosting` => `Custom domains` and copy the URL to your clipboard. See the screenshot below for an example. | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
|  | ||||||||||||||||||||||||||||||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Codebase verification Update image path to match the correct location The image exists at -
+🔗 Analysis chainVerify image path and add alt text. The image reference needs verification and accessibility improvements. -
+🏁 Scripts executedThe following scripts were executed for the analysis: Script: #!/bin/bash
# Check if the image exists in the repository
fd -t f "custom-domains.png" img/
Length of output: 125 Script: #!/bin/bash
# Let's first find the correct location of the images directory
fd -t d "img"
# Also check for alternative image directories like images, assets, etc.
fd -t d "(images|assets)"
# Let's also check the entire repository for this specific image
fd "custom-domains.png"
Length of output: 195 |
||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| Now go to `Hosting` => `Environment variables`. We need to configure two environment variables for NextAuth.js: | ||||||||||||||||||||||||||||||||||||
| - Create environment variable `NEXTAUTH_URL` and paste in the value we copied earlier from the Custom domains screen. | ||||||||||||||||||||||||||||||||||||
| - Create environment variable `NEXTAUTH_SECRET`. This value is used by NextAuth.js to encrypt auth cookies. See the[ NextAuth.js docs](https://next-auth.js.org/configuration/options#nextauth_secret) for creating a strong secret. You can also set this to something like "changeme" and revisit this later on, prior to launching to production. | ||||||||||||||||||||||||||||||||||||
|
Comment on lines
+58
to
+60
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Document environment variable persistence Add information about environment variable persistence across deployments and branches. Now go to `Hosting` => `Environment variables`. We need to configure two environment variables for NextAuth.js:
- Create environment variable `NEXTAUTH_URL` and paste in the value we copied earlier from the Custom domains screen.
- Create environment variable `NEXTAUTH_SECRET`. This value is used by NextAuth.js to encrypt auth cookies. See the[ NextAuth.js docs](https://next-auth.js.org/configuration/options#nextauth_secret) for creating a strong secret. You can also set this to something like "changeme" and revisit this later on, prior to launching to production.
+
+Note: Environment variables in AWS Amplify:
+- Persist across deployments
+- Can be configured per branch
+- Can be marked as sensitive to mask their values in logs
+- Should be backed up securely outside of AWS Amplify📝 Committable suggestion
Suggested change
🧰 Tools🪛 LanguageTool[style] ~72-~72: ‘prior to’ might be wordy. Consider a shorter alternative. (EN_WORDINESS_PREMIUM_PRIOR_TO) 🪛 Markdownlint72-72: null (MD039, no-space-in-links) |
||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| ### Redeploy | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| After setting the `NEXTAUTH_URL` and `NEXTAUTH_SECRET` environment variables, the app is now ready to be redeployed: | ||||||||||||||||||||||||||||||||||||
| - Go to the dashboard of your app, and click on the `main` deployment. | ||||||||||||||||||||||||||||||||||||
| - Click the `Redeploy this version` button. | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| When the app finishes deployment, your Composable UI storefront is ready to use! Go back to the dashboard of your app, and click `Visit Deployed URL`. | ||||||||||||||||||||||||||||||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Add deployment verification steps Include steps to verify the deployment was successful beyond just visiting the URL. After setting the `NEXTAUTH_URL` and `NEXTAUTH_SECRET` environment variables, the app is now ready to be redeployed:
- Go to the dashboard of your app, and click on the `main` deployment.
- Click the `Redeploy this version` button.
-When the app finishes deployment, your Composable UI storefront is ready to use! Go back to the dashboard of your app, and click `Visit Deployed URL`.
+When the app finishes deployment:
+1. Check the build logs for any warnings or errors
+2. Verify the deployment status shows as "Success"
+3. Visit the deployed URL and confirm:
+ - The homepage loads correctly
+ - Navigation works as expected
+ - No console errors are present
+4. If using custom domains, verify HTTPS is properly configured📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| ### Next steps | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| Visit the [integrations guide](../integrations/overview.md) to set up additional features like product filtering, product promotions, content orchestration, and payments. | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Enhance GitHub permissions guidance
The note about GitHub permissions should include more specific details about the required permissions scope and security implications.
📝 Committable suggestion
🧰 Tools
🪛 Markdownlint
23-23: Expected: 2; Actual: 3
Unordered list indentation
(MD007, ul-indent)