snowballtools-base/README.md
Nabarun Gogoi a58b9b255e
Publish app deployment record in Laconic registry on creating new deployments (#62)
* Publish record in laconic registry on creating project and deployment

* Refactor publish record method

* Set name for the published record

* Publish application deployment request

* Add README for publishing record

* Add await in add project resolver method

* Update meta data for deployment request record

* Remove title field from deployment entity

* Refactor service and registry class for publishing record

* Add record data to project and deployment entity

* Set record id and data as nullable in project entity

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-12 11:34:01 +05:30

3.6 KiB

snowballtools

Setup

  • Clone the snowballtools repo

    git clone git@github.com:snowball-tools/snowballtools-base.git
    
  • In root of the repo, install depedencies

    yarn
    
  • Build packages

    yarn build --ignore frontend
    

Backend

  • Change directory to packages/backend

    cd packages/backend
    
  • Load fixtures in database

    yarn db:load:fixtures
    
  • Set githubOauth.clientId and githubOauth.clientSecret in backend config file

  • Run the laconicd stack following this doc

  • Create the bond and set registryConfig.bondId in backend config file

    laconic-so --stack fixturenet-laconic-loaded deploy exec cli "laconic cns bond create --type aphoton --quantity 1000000000 --gas 200000 --fees 200000aphoton"
    
    # {"bondId":"b40f1308510f799860fb6f1ede47245a2d59f336631158f25ae0eec30aabaf89"}
    
    • Export the bond id that is generated

      export BOND_ID=<BOND-ID>
      
  • Get the private key and set registryConfig.privateKey in backend config file

    laconic-so --stack fixturenet-laconic-loaded deploy exec laconicd "laconicd keys export mykey --unarmored-hex --unsafe"
    # WARNING: The private key will be exported as an unarmored hexadecimal string. USE AT YOUR OWN RISK. Continue? [y/N]: y
    # 754cca7b4b729a99d156913aea95366411d072856666e95ba09ef6c664357d81
    
  • Get the rest and GQL endpoint of laconicd and set it to registryConfig.restEndpoint and registryConfig.gqlEndpoint in backend config file

    # For registryConfig.restEndpoint
    laconic-so --stack fixturenet-laconic-loaded deploy port laconicd 1317
    # 0.0.0.0:32777
    
    # For registryConfig.gqlEndpoint
    laconic-so --stack fixturenet-laconic-loaded deploy port laconicd 9473
    # 0.0.0.0:32771
    
  • Reserve authority for snowball

    laconic-so --stack fixturenet-laconic-loaded deploy exec cli "laconic cns authority reserve snowball"
    # {"success":true}
    
  • Set authority bond

    laconic-so --stack fixturenet-laconic-loaded deploy exec cli "laconic cns authority bond set snowball $BOND_ID"
    # {"success":true}
    
  • Start the server

    yarn start
    

Frontend

  • Change directory to packages/frontend in a new terminal

    cd packages/frontend
    
  • Copy the graphQL endpoint from terminal and add the endpoint in the .env file present in packages/frontend

    REACT_APP_GQL_SERVER_URL = 'http://localhost:8000/graphql'
    
  • Copy the GitHub OAuth app client ID from previous steps and set it in frontend .env file

    REACT_APP_GITHUB_CLIENT_ID = <CLIENT_ID>
    

Development

  • Start the React application

    yarn start
    
  • The React application will be running in http://localhost:3000/

Production

  • Build the React application

    yarn build
    
  • Use a web server for hosting static built files

    python3 -m http.server -d build 3000