Reviewed-on: #8 Co-authored-by: Nabarun <nabarun@deepstacksoft.com> Co-committed-by: Nabarun <nabarun@deepstacksoft.com>
111 lines
3.4 KiB
Markdown
111 lines
3.4 KiB
Markdown
# Deploy
|
|
|
|
## Setup
|
|
|
|
### gor-deploy
|
|
|
|
- Clone the repo:
|
|
|
|
```bash
|
|
git clone git@git.vdb.to:LaconicNetwork/gor-deploy.git
|
|
cd gor-deploy/deploy
|
|
```
|
|
|
|
- Build registry CLI image:
|
|
|
|
```bash
|
|
docker build -t cerc/laconic-registry-cli .
|
|
|
|
# Builds image cerc/laconic-registry-cli:latest
|
|
```
|
|
|
|
- Configure `userKey` and `bondId` in the [registry CLI config](./config.yml):
|
|
|
|
- User key should be of the account that owns the `laconic-deploy` authority (owner account address: `laconic1kwx2jm6vscz38qlyujvq6msujmk8l3zangqahs`)
|
|
- The bond should also be owned by same user (owned bond's ID: `5d82586d156fb6671a9170d92f930a72a49a29afb45e30e16fff2100e30776e2`)
|
|
- If the authority is not available, follow [these steps to reserve a new authority](./publish-pricing.md#reserve-a-new-authority-optional)
|
|
|
|
```bash
|
|
nano config.yml
|
|
```
|
|
|
|
- This project requires pricing records for cost of deployment and cost of alnt to be published
|
|
|
|
- Check if these records are available by running following commands:
|
|
|
|
```bash
|
|
# Check if `lrn://laconic/pricing/webapp-deployment` is available
|
|
./laconic-cli.sh name resolve lrn://laconic/pricing/webapp-deployment
|
|
|
|
# Check if `lrn://laconic/pricing/alnt` is available
|
|
./laconic-cli.sh name resolve lrn://laconic/pricing/alnt
|
|
```
|
|
|
|
- If these records are not available, [follow these steps to publish them](./publish-pricing.md)
|
|
|
|
- Add configuration for registry operations:
|
|
|
|
```bash
|
|
cp .registry.env.example .registry.env
|
|
|
|
# Update values if required
|
|
nano .registry.env
|
|
```
|
|
|
|
- Add configuration for the app:
|
|
|
|
```bash
|
|
curl -s https://git.vdb.to/LaconicNetwork/gor-deploy/raw/branch/main/.env.example -o .app.env
|
|
|
|
# Fill in the required values
|
|
nano .app.env
|
|
```
|
|
|
|
- Required environment variables:
|
|
|
|
Client-side (must be prefixed with NEXT_PUBLIC_):
|
|
- `NEXT_PUBLIC_SOLANA_RPC_URL` - The RPC URL for the Solana blockchain (SPL token transactions)
|
|
- `NEXT_PUBLIC_GORBAGANA_RPC_URL` - The RPC URL for the Gorbagana blockchain (native GOR transactions)
|
|
- `NEXT_PUBLIC_ENABLE_NATIVE_GOR_TRANSFER` - Enable native GOR token transfers (true/false)
|
|
- `NEXT_PUBLIC_SOLANA_TOKEN_RECIPIENT_ADDRESS` - The Solana address that will receive token payments
|
|
- `NEXT_PUBLIC_ALNT_COST_LRN` - LRN for ALNT token pricing
|
|
- `NEXT_PUBLIC_DEPLOYMENT_COST_LRN` - LRN for deployment cost pricing
|
|
- `NEXT_PUBLIC_DOMAIN_SUFFIX` - Suffix to append to DNS names in the UI (e.g. ".example.com")
|
|
|
|
Server-side:
|
|
- `REGISTRY_BOND_ID` - The bond ID to use for Laconic Registry records
|
|
- `REGISTRY_AUTHORITY` - The authority for Laconic Registry LRNs
|
|
- `REGISTRY_USER_KEY` - The private key of account which will publish records
|
|
- The account should own the `laconic-deploy` authority which is set in `REGISTRY_AUTHORITY`
|
|
- `DEPLOYER_LRN` - The LRN of the deployer
|
|
|
|
## Run
|
|
|
|
- Deploy `gor-deploy` App:
|
|
|
|
```bash
|
|
# In gor-deploy/deploy dir
|
|
docker run -it \
|
|
-v ./:/app/deploy -w /app/deploy \
|
|
-e DEPLOYMENT_DNS=gor-deploy.laconic.com \
|
|
cerc/laconic-registry-cli:latest \
|
|
./deploy.sh
|
|
```
|
|
|
|
- Check deployment logs on deployer UI: <https://webapp-deployer-ui.apps.vaasl.io/>
|
|
|
|
- Visit deployed app: <https://gor-deploy.apps.vaasl.io>
|
|
|
|
### Remove deployment
|
|
|
|
- Remove deployment:
|
|
|
|
```bash
|
|
# In gor-deploy/deploy dir
|
|
docker run -it \
|
|
-v ./:/app/deploy -w /app/deploy \
|
|
-e DEPLOYMENT_RECORD_ID=<deploment-record-id-to-be-removed> \
|
|
cerc/laconic-registry-cli:latest \
|
|
./remove-deployment.sh
|
|
```
|