snowballtools-base/README.md
Nabarun Gogoi 9144d42f70
Set record data with repo commit hash and package.json content (#65)
* Get latest commit hash from repo when adding project

* Update UI/UX

* Fill registry record with data from package.json

* Add package json type

* Correct record data based on laconic console

* Update README

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-14 11:03:22 +05:30

4.0 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 authorities for snowballtools and cerc-io

    laconic-so --stack fixturenet-laconic-loaded deploy exec cli "laconic cns authority reserve snowballtools"
    # {"success":true}
    
    laconic-so --stack fixturenet-laconic-loaded deploy exec cli "laconic cns authority reserve cerc-io"
    # {"success":true}
    
  • Set authority bond for snowballtools and cerc-io

    laconic-so --stack fixturenet-laconic-loaded deploy exec cli "laconic cns authority bond set snowballtools $BOND_ID"
    # {"success":true}
    
    laconic-so --stack fixturenet-laconic-loaded deploy exec cli "laconic cns authority bond set cerc-io $BOND_ID"
    # {"success":true}
    
  • Start the server in packages/backend

    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