Compare commits
2 Commits
main
...
ng-update-
Author | SHA1 | Date | |
---|---|---|---|
e79b8d4110 | |||
0b883c322c |
3
apps/deployer/.env.example
Normal file
3
apps/deployer/.env.example
Normal file
@ -0,0 +1,3 @@
|
||||
REGISTRY_BOND_ID=
|
||||
DEPLOYER_LRN=
|
||||
AUTHORITY=
|
@ -7,22 +7,44 @@
|
||||
```
|
||||
|
||||
```bash
|
||||
brew install jq # if you do not have jq installed already
|
||||
# if you do not have jq installed already
|
||||
brew install jq
|
||||
# OR
|
||||
sudo apt-get install jq
|
||||
```
|
||||
|
||||
- Run script to deploy app
|
||||
- Copy and update `.env`
|
||||
|
||||
- To deploy frontend app to `dashboard.staging.apps.snowballtools.com`
|
||||
```
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
```bash
|
||||
./deploy-frontend.staging.sh
|
||||
```
|
||||
Set the required variables:
|
||||
|
||||
- To deploy frontend app to `dashboard.apps.snowballtools.com`
|
||||
```
|
||||
REGISTRY_BOND_ID=<bond-id>
|
||||
DEPLOYER_LRN=lrn://vaasl-provider/deployers/webapp-deployer-api.apps.vaasl.io
|
||||
AUTHORITY=vaasl
|
||||
```
|
||||
|
||||
```bash
|
||||
./deploy-frontend.sh
|
||||
```
|
||||
Note: The bond id should be set to the `vaasl` authority
|
||||
|
||||
- Set the `userKey` and `bondId` in [config.yml](./config.yml)
|
||||
|
||||
Note: The `bondId` should be created by the `userKey` account
|
||||
|
||||
- Set the actual values for env in [deploy-frontend.sh](./deploy-frontend.sh) for the following:
|
||||
```sh
|
||||
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_key
|
||||
CLERK_SECRET_KEY=your_clerk_secret
|
||||
NEXT_PUBLIC_GITHUB_FALLBACK_TOKEN=your_github_token
|
||||
```
|
||||
|
||||
- Run script to deploy app to `deploy.laconic.com`
|
||||
|
||||
```bash
|
||||
./deploy-frontend.sh
|
||||
```
|
||||
|
||||
- Commit the updated [ApplicationRecord](records/application-record.yml) and [ApplicationDeploymentRequest](records/application-deployment-request.yml) files to the repository
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
services:
|
||||
registry:
|
||||
rpcEndpoint: https://laconicd-sapo.laconic.com
|
||||
gqlEndpoint: https://laconicd-sapo.laconic.com/api
|
||||
rpcEndpoint: https://laconicd-mainnet-1.laconic.com/
|
||||
gqlEndpoint: https://laconicd-mainnet-1.laconic.com/api
|
||||
userKey:
|
||||
bondId:
|
||||
chainId: laconic-testnet-2
|
||||
chainId: laconic-mainnet
|
||||
gasPrice: 0.001alnt
|
||||
|
@ -6,7 +6,7 @@ echo "Using DEPLOYER_LRN: $DEPLOYER_LRN"
|
||||
echo "Using AUTHORITY: $AUTHORITY"
|
||||
|
||||
# Repository URL
|
||||
REPO_URL="https://git.vdb.to/cerc-io/snowballtools-base"
|
||||
REPO_URL="https://git.vdb.to/NasSharaf/laconic-deployer-frontend"
|
||||
|
||||
# Get the latest commit hash for a branch
|
||||
BRANCH_NAME="main"
|
||||
@ -25,7 +25,7 @@ CONFIG_FILE=config.yml
|
||||
# Reference: https://git.vdb.to/cerc-io/test-progressive-web-app/src/branch/main/scripts
|
||||
|
||||
# Get latest version from registry and increment application-record version
|
||||
NEW_APPLICATION_VERSION=$(pnpm --silent laconic -c $CONFIG_FILE registry record list --type ApplicationRecord --all --name "deploy-frontend" 2>/dev/null | jq -r -s ".[] | sort_by(.createTime) | reverse | [ .[] | select(.bondId == \"$REGISTRY_BOND_ID\") ] | .[0].attributes.version" | awk -F. -v OFS=. '{$NF += 1 ; print}')
|
||||
NEW_APPLICATION_VERSION=$(pnpm --silent laconic -c $CONFIG_FILE registry record list --type ApplicationRecord --all --name "laconic-deployer-frontend" 2>/dev/null | jq -r -s ".[] | sort_by(.createTime) | reverse | [ .[] | select(.bondId == \"$REGISTRY_BOND_ID\") ] | .[0].attributes.version" | awk -F. -v OFS=. '{$NF += 1 ; print}')
|
||||
|
||||
if [ -z "$NEW_APPLICATION_VERSION" ] || [ "1" == "$NEW_APPLICATION_VERSION" ]; then
|
||||
# Set application-record version if no previous records were found
|
||||
@ -39,8 +39,8 @@ record:
|
||||
version: $NEW_APPLICATION_VERSION
|
||||
repository_ref: $LATEST_HASH
|
||||
repository: ["$REPO_URL"]
|
||||
app_type: webapp
|
||||
name: deploy-frontend
|
||||
app_type: webapp/next
|
||||
name: laconic-deployer-frontend
|
||||
app_version: $PACKAGE_VERSION
|
||||
EOF
|
||||
|
||||
@ -60,7 +60,7 @@ echo "ApplicationRecord published"
|
||||
echo $RECORD_ID
|
||||
|
||||
# Set name to record
|
||||
REGISTRY_APP_LRN="lrn://$AUTHORITY/applications/deploy-frontend"
|
||||
REGISTRY_APP_LRN="lrn://$AUTHORITY/applications/laconic-deployer-frontend"
|
||||
|
||||
sleep 2
|
||||
pnpm --silent laconic -c $CONFIG_FILE registry name set "$REGISTRY_APP_LRN@${PACKAGE_VERSION}" "$RECORD_ID"
|
||||
@ -122,19 +122,18 @@ cat >./records/application-deployment-request.yml <<EOF
|
||||
record:
|
||||
type: ApplicationDeploymentRequest
|
||||
version: '1.0.0'
|
||||
name: deploy-frontend@$PACKAGE_VERSION
|
||||
application: lrn://$AUTHORITY/applications/deploy-frontend@$PACKAGE_VERSION
|
||||
name: laconic-deployer-frontend@$PACKAGE_VERSION
|
||||
application: lrn://$AUTHORITY/applications/laconic-deployer-frontend@$PACKAGE_VERSION
|
||||
deployer: $DEPLOYER_LRN
|
||||
dns: deploy.laconic.com
|
||||
dns: deploy-staging.laconic.com
|
||||
config:
|
||||
env:
|
||||
LACONIC_HOSTED_CONFIG_server_url: https://deploy-backend.laconic.com
|
||||
LACONIC_HOSTED_CONFIG_github_clientid: Ov23li4NtYybQlF6u5Dk
|
||||
LACONIC_HOSTED_CONFIG_github_pwa_templaterepo: laconic-templates/test-progressive-web-app
|
||||
LACONIC_HOSTED_CONFIG_github_image_upload_templaterepo: laconic-templates/image-upload-pwa-example
|
||||
LACONIC_HOSTED_CONFIG_github_next_app_templaterepo: laconic-templates/starter.nextjs-react-tailwind
|
||||
LACONIC_HOSTED_CONFIG_laconicd_chain_id: laconic-testnet-2
|
||||
LACONIC_HOSTED_CONFIG_wallet_iframe_url: https://wallet.laconic.com
|
||||
NEXT_PUBLIC_WALLET_IFRAME_URL=https://wallet.laconic.com
|
||||
NEXT_PUBLIC_LACONICD_CHAIN_ID=laconic-mainnet
|
||||
NEXT_PUBLIC_API_URL=https://deploy-backend.laconic.com
|
||||
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_key
|
||||
CLERK_SECRET_KEY=your_clerk_secret
|
||||
NEXT_PUBLIC_GITHUB_FALLBACK_TOKEN=your_github_token
|
||||
meta:
|
||||
note: Added @ $CURRENT_DATE_TIME
|
||||
repository: "$REPO_URL"
|
||||
@ -142,6 +141,12 @@ record:
|
||||
payment: $txHash
|
||||
EOF
|
||||
|
||||
# Old env values for frontend app
|
||||
# LACONIC_HOSTED_CONFIG_github_clientid: Ov23li4NtYybQlF6u5Dk
|
||||
# LACONIC_HOSTED_CONFIG_github_pwa_templaterepo: laconic-templates/test-progressive-web-app
|
||||
# LACONIC_HOSTED_CONFIG_github_image_upload_templaterepo: laconic-templates/image-upload-pwa-example
|
||||
# LACONIC_HOSTED_CONFIG_github_next_app_templaterepo: laconic-templates/starter.nextjs-react-tailwind
|
||||
|
||||
RECORD_FILE=records/application-deployment-request.yml
|
||||
|
||||
sleep 2
|
||||
|
19
build-webapp.sh
Executable file
19
build-webapp.sh
Executable file
@ -0,0 +1,19 @@
|
||||
#!/bin/bash
|
||||
|
||||
PKG_DIR="./apps/deploy-fe"
|
||||
|
||||
cat > $PKG_DIR/.env <<EOF
|
||||
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=CERC_RUNTIME_ENV_NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY
|
||||
CLERK_SECRET_KEY=CERC_RUNTIME_ENV_CLERK_SECRET_KEY
|
||||
NEXT_PUBLIC_WALLET_IFRAME_URL=CERC_RUNTIME_ENV_NEXT_PUBLIC_WALLET_IFRAME_URL
|
||||
NEXT_PUBLIC_LACONICD_CHAIN_ID=CERC_RUNTIME_ENV_NEXT_PUBLIC_LACONICD_CHAIN_ID
|
||||
NEXT_PUBLIC_API_URL=CERC_RUNTIME_ENV_NEXT_PUBLIC_API_URL
|
||||
NEXT_PUBLIC_GITHUB_FALLBACK_TOKEN=CERC_RUNTIME_ENV_NEXT_PUBLIC_GITHUB_FALLBACK_TOKEN
|
||||
EOF
|
||||
|
||||
pnpm install || exit 1
|
||||
|
||||
# TODO: Fix build script to run
|
||||
# pnpm build --filter deploy-fe || exit 1
|
||||
|
||||
pnpm build --filter @workspace/gql-client || exit 1
|
28
readme.md
28
readme.md
@ -92,4 +92,30 @@ The frontend is built with:
|
||||
Make sure you have:
|
||||
1. Connected your GitHub account in Clerk
|
||||
2. Provided the necessary permissions for repository access
|
||||
3. Set a fallback GitHub token in `.env.local` if needed for development
|
||||
3. Set a fallback GitHub token in `.env.local` if needed for development
|
||||
|
||||
## Test deployment
|
||||
|
||||
- Follow the dev install steps for stack-orchestrator from <https://git.vdb.to/cerc-io/stack-orchestrator/src/branch/main/docs/CONTRIBUTING.md#install>
|
||||
|
||||
<!-- TODO: Remove after SO PR https://git.vdb.to/cerc-io/stack-orchestrator/pulls/969 is merged -->
|
||||
- Change branch
|
||||
```bash
|
||||
git checkout ng-support-custom-nextjs
|
||||
```
|
||||
|
||||
- Build the container for app
|
||||
```bash
|
||||
laconic-so build-webapp --source-repo <path-to-app-repo>/laconic-deployer-frontend --base-container cerc/nextjs-base
|
||||
```
|
||||
|
||||
- Create an env file as described in [previous steps](#3-configure-environment-variables)
|
||||
|
||||
- Run the webapp container locally
|
||||
```bash
|
||||
docker run -p 3000:3000 --env-file <path-to-env-file> cerc/laconic-deployer-frontend:local
|
||||
```
|
||||
|
||||
- Scripts used for deployment
|
||||
- App container build : [build-webapp.sh](./build-webapp.sh)
|
||||
- Run app container : [run-webapp.sh](./run-webapp.sh)
|
||||
|
22
run-webapp.sh
Executable file
22
run-webapp.sh
Executable file
@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
PKG_DIR="./apps/deploy-fe"
|
||||
|
||||
cd $PKG_DIR
|
||||
|
||||
cat > .env.local <<EOF
|
||||
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=${NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY}
|
||||
CLERK_SECRET_KEY=${CLERK_SECRET_KEY}
|
||||
NEXT_PUBLIC_WALLET_IFRAME_URL=${NEXT_PUBLIC_WALLET_IFRAME_URL}
|
||||
NEXT_PUBLIC_LACONICD_CHAIN_ID=${NEXT_PUBLIC_LACONICD_CHAIN_ID}
|
||||
NEXT_PUBLIC_API_URL=${NEXT_PUBLIC_API_URL}
|
||||
NEXT_PUBLIC_GITHUB_FALLBACK_TOKEN=${NEXT_PUBLIC_GITHUB_FALLBACK_TOKEN}
|
||||
EOF
|
||||
|
||||
# For debugging
|
||||
# cat .env.local
|
||||
|
||||
# TODO: Need production build in .next. Check build-webapp.sh
|
||||
# pnpm start
|
||||
|
||||
pnpm dev
|
Loading…
Reference in New Issue
Block a user