gor-deploy/deploy
Nabarun bc0d10d4c3 Add published application record (#7)
Reviewed-on: #7
Co-authored-by: Nabarun <nabarun@deepstacksoft.com>
Co-committed-by: Nabarun <nabarun@deepstacksoft.com>
2025-07-25 16:17:41 +00:00
..
records Add published application record (#7) 2025-07-25 16:17:41 +00:00
.registry.env.example Add authority and bond ID in readme for deployment (#6) 2025-07-25 15:04:10 +00:00
config.yml Add authority and bond ID in readme for deployment (#6) 2025-07-25 15:04:10 +00:00
deploy.sh Use solana GOR token payments to deploy apps (#1) 2025-07-21 13:14:05 +00:00
Dockerfile Use solana GOR token payments to deploy apps (#1) 2025-07-21 13:14:05 +00:00
laconic-cli.sh Add steps to publish PricingRecord and use it for determining cost of deployments (#4) 2025-07-25 13:36:35 +00:00
publish-pricing.md Add steps to publish PricingRecord and use it for determining cost of deployments (#4) 2025-07-25 13:36:35 +00:00
README.md Add published application record (#7) 2025-07-25 16:17:41 +00:00
remove-deployment.sh Use solana GOR token payments to deploy apps (#1) 2025-07-21 13:14:05 +00:00

Deploy

Setup

gor-deploy

  • Clone the repo:

    git clone git@git.vdb.to:LaconicNetwork/gor-deploy.git
    cd gor-deploy/deploy
    
  • Build registry CLI image:

    docker build -t cerc/laconic-registry-cli .
    
    # Builds image cerc/laconic-registry-cli:latest
    
  • Configure userKey and bondId in the registry CLI config:

    • 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: 230cfedda15e78edc8986dfcb870e1b618f65c56e38d2735476d2a8cb3f25e38)
    • If the authority is not available, follow these steps to reserve a new authority
    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:

      # 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

  • Add configuration for registry operations:

    cp .registry.env.example .registry.env
    
    # Update values if required
    nano .registry.env
    
  • Add configuration for the app:

    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

Remove deployment

  • Remove deployment:

    # 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