{"id":19358356,"url":"https://github.com/paritytech/testnet-manager","last_synced_at":"2025-04-23T11:31:24.858Z","repository":{"id":61361115,"uuid":"519154751","full_name":"paritytech/testnet-manager","owner":"paritytech","description":"DevOps toolkit to operate Polkadot testnets","archived":false,"fork":false,"pushed_at":"2024-10-29T11:51:55.000Z","size":662,"stargazers_count":17,"open_issues_count":28,"forks_count":5,"subscribers_count":9,"default_branch":"main","last_synced_at":"2024-10-29T13:32:02.094Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/paritytech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-29T09:21:20.000Z","updated_at":"2024-09-23T09:43:34.000Z","dependencies_parsed_at":"2023-02-17T05:25:17.673Z","dependency_job_id":"d871f9bf-04ce-47ac-a262-62245bd42378","html_url":"https://github.com/paritytech/testnet-manager","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Ftestnet-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Ftestnet-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Ftestnet-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Ftestnet-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paritytech","download_url":"https://codeload.github.com/paritytech/testnet-manager/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223922085,"owners_count":17225636,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T07:11:22.275Z","updated_at":"2024-11-10T07:11:22.881Z","avatar_url":"https://github.com/paritytech.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Parity Testnet Manager\n\nA simple UI and REST API to operate Polkadot multi-chains testnets in Kubernetes.\n\nThe **testnet-manager** let you view the following information about nodes running in your cluster:\n\n- List Substrate nodes running in Kubernetes and query their status over RPC\n- List Validators running in Kubernetes\n- List Parachains and collator nodes\n\nWhen provided with the relay-chain Sudo account, the **testnet-manager** can perform the following actions:\n\n- Register/Deregister validator nodes\n- Rotate validator session keys\n- Onboard/Offboard a parachain\n- Register/Deregister parachain collators\n- Execute runtime upgrades on relay-chains and common good parachains\n\n## Running tests\n\n    python -m pytest\n\n## Running locally\n\nNote that running with those commands will fail to connect to your Kubernetes cluster and running nodes without adapting them to your setup.\nAs such, it is recommended to refer to the next section for instructions to run a complete local stack in Kubernetes.\n\nSetup the local environment:\n\n```shell\npoetry install\npoetry shell\n```\n\nSet environment variables, eg:\n\n    NAMESPACE=rococo\n    HEALTHY_MIN_PEER_COUNT=\"1\"\n    RELAY_CHAIN_RPC_URL=\"wss://rococo-rpc.polkadot.io\"\n    RPC_NODE_URL_PATTERN=\"NODE_NAME.rococo:9944\"\n    HEALTHY_MIN_PEER_COUNT=\"1\"\n    SUDO_SEED=***\n    DERIVATION_ROOT_SEED=***\n    RELAY_CHAIN_CONSENSUS=poa\n\nStart the app:\n\n    # Dev\n    poetry run uvicorn main:app --reload\n    # Prod\n    python -m gunicorn -k uvicorn.workers.UvicornWorker main:app --bind 0.0.0.0:5000 --timeout=3600 --capture-output --enable-stdio-inheritance --workers 4\n\n## Running in a Local Kubernetes cluster\n\nInstall either [Minikube](https://minikube.sigs.k8s.io/docs/start/) or [Rancher-Desktop](https://rancherdesktop.io/).\nThen, start your Kubernetes cluster in a VM and run:\n\n```shell\ncd local-kubernetes\nmake setup\nmake apply\n```\n\nRemark: Wait for the \"setup\" step (chainspec building) to complete before installing to prevent the nodes from failing to pull chainspecs files.\nFor more information see [helm/minikube/README.md](local-kubernetes/README.md)\n\nContinuously deploy to Kubernetes with [Skaffold](https://skaffold.dev/):\n\n```shell\nskaffold dev\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparitytech%2Ftestnet-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparitytech%2Ftestnet-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparitytech%2Ftestnet-manager/lists"}