npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@flexdapps/gantree-cli

v0.1.2

Published

## About

Readme

Gantree CLI

About

Substrate is built on the core belief that the future will be multichain.

In the past, setting up and managing blockchain networks required an understanding of a multitude of concepts which may have inhibited end users from experimenting with them.

With the assistance of funding from the Web3 Foundation, Flex Dapps is building a suite of technologies which will enable both power users and those less versed to create and manage substrate-powered parachain networks via rapid spin-up and tear-down of self-managed or cloud-hosted machines.

Software Requirements

In order to use gantree-cli, the following dependencies are required:

| REQUIREMENT | VERSION | NOTES | | ------------------------------ | --------- | ---------------------------------------------- | | NodeJS | >=10.15.2 | Recommended install method: nvm | | Terraform | >=0.12.20 | Snap package will be likely too old | | Ansible | >=2.9.4 | Recommended install method: pip |

Ansible Requirements

Install required ansible roles

curl https://raw.githubusercontent.com/flex-dapps/gantree-requirements/master/ansible-galaxy/requirements.yml > ansible_requirements.yml
ansible-galaxy install -r ansible_requirements.yml

Package Installation

Install gantree-cli

npm install gantree-cli -g

Environment Requirements

Provider Credentials

For security reasons, credentials for infrastructure providers must be exported as environment variables.

| PROVIDER | EXPORTS REQUIRED | NOTES | | ------------ | ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | | AWS | AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY | IAM account with EC2 and VPC write access. | | GCP | GOOGLE_APPLICATION_CREDENTIALS | path to json file with credentials of the service account you want to use; this service account needs to have write access to compute and network resources | | DigitalOcean | DIGITALOCEAN_TOKEN | A DigitalOcean access token with read + write access |

note: You only need credentials for providers you wish to use

SSH Credentials

You need an additional environment variables to allow ansible to connect to created instances:

| EXPORT NAME | DESCRIPTION | | ---------------------- | ---------------------------------------------------------- | | SSH_ID_RSA_VALIDATOR | path to private SSH key you want to use for the validators |

You must generate this keypair yourself and add it to your ssh-agent.

note: Don't forget to add the private key to you ssh-agent otherwise you will get Permission denied (publickey) during ansible tasks

Configuration

Gantree-cli requires a configuration file (main.json) in order to guide creation, provisioning, modification and deletion of instances.

Using one of the examples below, create a configuration file to represent your desired infrastructure.

Configuration File Samples

Examples of provider definitions

note: Multiple providers cannot yet be used in a single configuration. This is planned for a future release.

Configuration File Structure: Top Level

  • "project": [string] the gantree project name
  • "repository": [object] relating to the substrate binary to be deployed
  • "validators": [object] defining the validators to deploy

Configuration File Strucutre: repository

  • "url": [string] the path to a git repository of the binary source to deploy
  • "version": [string:HEAD] the commit/tag of the binary source to use
  • "binaryName": [string] the name of the binary when compiled, eg. 'polkadot' or 'node-template'

Configuration File Structure: validators

  • "chain": [string] the name of the chain
  • "useDefaultChainspec": [bool:false] use the internal rust chainspec of the compiled binary
  • "telemetry": [boolean] whether to use the default telemetry, or not report any telemetry
  • "loggingFilter": [string] the logging filter passed to the binary on running
  • "nodes": [array] a list of cloud provider configurations which each map to a network instance

Configuration File Structure: node

See samples/config folder

Optional Configuration

Environment Options

Terraform Statefile Path (optional)

By default the terraform state is stored in <HOME-DIR>/gantree-cli/build/terraform/state/

On the machine executing gantree-cli, HOME-DIR will resolve to the following:

| OS | HOME-DIR | | --------- | -------------------------------------------------- | | Linux | /home/<myusername>/ | | Macintosh | /Users/<myusername>/Library/Application Support/ |

This location can be customized with the following environment variable:

| EXPORT NAME | DESCRIPTION | | -------------------------- | --------------------------- | | TERRAFORM_STATEFILE_PATH | path to terraform statefile |

note: This path must be absolute. If the statefile does not exist at this location it will be created.

Usage

Synchronisation

Before attempting to run sync, ensure all tasks outlined in requirements have been completed.

  • You've installed all requirements
  • All relevant environment variables are exported
  • You've nagivated to the root of the cloned repo

To synchronise your configuration with digital infrastructure, run the following:

gantree-cli sync --config <PATH_TO_GANTREE_CONFIG>

The sync command is idempotent, unless there are errors it will always have the same results. You can execute it as much as you want, it will only make changes when the actual infrastructure state doesn't match the desired state.

Cleaning up

You can remove all the created infrastructure with:

gantree-cli sync clean -c config/main.json