{"id":23390514,"url":"https://github.com/tty47/polkadot_node","last_synced_at":"2026-02-05T22:01:25.495Z","repository":{"id":192356188,"uuid":"686572163","full_name":"tty47/polkadot_node","owner":"tty47","description":"Polkadot Run a Validator","archived":false,"fork":false,"pushed_at":"2023-09-03T08:45:58.000Z","size":6,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-31T16:32:02.533Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tty47.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-09-03T08:39:02.000Z","updated_at":"2023-09-03T08:41:04.000Z","dependencies_parsed_at":"2023-09-04T11:57:06.058Z","dependency_job_id":null,"html_url":"https://github.com/tty47/polkadot_node","commit_stats":null,"previous_names":["jrmanes/polkadot_node","tty47/polkadot_node"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tty47/polkadot_node","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tty47%2Fpolkadot_node","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tty47%2Fpolkadot_node/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tty47%2Fpolkadot_node/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tty47%2Fpolkadot_node/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tty47","download_url":"https://codeload.github.com/tty47/polkadot_node/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tty47%2Fpolkadot_node/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29135919,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T21:59:57.939Z","status":"ssl_error","status_checked_at":"2026-02-05T21:59:57.628Z","response_time":65,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-12-22T03:31:58.339Z","updated_at":"2026-02-05T22:01:25.479Z","avatar_url":"https://github.com/tty47.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Polkadot Node\n\n![Polkadot](https://wiki.polkadot.network/img/Polkadot_Logo_Horizontal_Pink-Black.svg)\n\n---\n\n## Overview\n\nThis Terraform module simplifies the deployment of AWS EC2 instances and the configuration of Ansible, allowing you to automate infrastructure provisioning effortlessly.\n\n---\n\n## Features\n\n- **AWS EC2 Instance Creation**: Easily create AWS EC2 instances to suit your workload requirements.\n- **Ansible Configuration**: Configure Ansible on EC2 instances for efficient automation.\n- **Customization**: Customize instance counts, types, and security groups to meet your infrastructure needs.\n- **Ansible Playbooks**: Specify source and destination paths for Ansible playbooks.\n\n---\n\n## Usage\n\nTo use this Terraform module, include it in your Terraform configuration and specify the required variables. Here's an example:\n\n```hcl\nmodule \"ec2_instances\" {\n  source              = \"./ec2_instance\"\n  instance_count      = 2\n  instance_type       = \"m4.2xlarge\"\n  instance_name       = \"polkadot-node\"\n  security_group_name = \"Allow access to instance\"\n  key_name            = \"private_key\"\n  ami_id              = \"ami-04e601abe3e1a910f\" # Ubuntu\n  private_key_path    = \"/tmp/private_key.pem\"\n  ansible_src_path    = \"ansible\"\n  ansible_dst_path    = \"/home/ubuntu/ansible\"\n}\n```\n\n## How to run?\n\nThe easiest way is to use the Makefile commands:\n\n```Makefile\n# Create the resources\nmake apply_auto\n\n# Destroy the resources\nmake destroy_auto\n```\n\n---\n\n## Outputs\n\n- **private_key_content**: The content of the private key.\n- **public_ip_addresses**: The public IP addresses of the EC2 instances.\n\n---\n\n## References\n\n- [Reference HW](https://wiki.polkadot.network/docs/maintain-guides-how-to-validate-polkadot#reference-hardware)\n- [Installing The Binary](https://wiki.polkadot.network/docs/maintain-guides-how-to-validate-polkadot#installing-the-polkadot-binary)\n\n---\n\n## TODOs\n\n- [ ] Automatic Updates\n  - Generate the dynamic inventory with Terraform to allow Ansible access to the instances\n  - Keep the private keys, and use them from Ansible\n  - Update the `ansible/vars.yaml` the `polkadot.version` variable to the latest version.\n  - Run the Ansible command to update the binary to all the instances defined in the inventory.\n- [ ] Update the user who runs the binary (non-root)\n- [ ] Split the file system in different EBS (volumes), to have inmutable infrastructure.\n\n---\n\nJose Ramon Mañes","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftty47%2Fpolkadot_node","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftty47%2Fpolkadot_node","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftty47%2Fpolkadot_node/lists"}