{"id":49882126,"url":"https://github.com/unfunco/terraform-aws-ghes","last_synced_at":"2026-05-15T15:34:49.276Z","repository":{"id":355035140,"uuid":"1192400580","full_name":"unfunco/terraform-aws-ghes","owner":"unfunco","description":"Terraform module for launching a GitHub Enterprise Server appliance on Amazon Web Services.","archived":false,"fork":false,"pushed_at":"2026-05-01T14:54:42.000Z","size":48,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-01T15:31:50.315Z","etag":null,"topics":["amazon-web-services","aws","github-enterprise","github-enterprise-server","terraform","terraform-module"],"latest_commit_sha":null,"homepage":"https://registry.terraform.io/modules/unfunco/ghes/aws/latest","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/unfunco.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-26T07:14:54.000Z","updated_at":"2026-05-01T14:57:04.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/unfunco/terraform-aws-ghes","commit_stats":null,"previous_names":["unfunco/terraform-aws-ghes"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/unfunco/terraform-aws-ghes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unfunco%2Fterraform-aws-ghes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unfunco%2Fterraform-aws-ghes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unfunco%2Fterraform-aws-ghes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unfunco%2Fterraform-aws-ghes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/unfunco","download_url":"https://codeload.github.com/unfunco/terraform-aws-ghes/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unfunco%2Fterraform-aws-ghes/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33071304,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-15T11:35:32.926Z","status":"ssl_error","status_checked_at":"2026-05-15T11:35:31.362Z","response_time":103,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["amazon-web-services","aws","github-enterprise","github-enterprise-server","terraform","terraform-module"],"created_at":"2026-05-15T15:34:47.864Z","updated_at":"2026-05-15T15:34:49.271Z","avatar_url":"https://github.com/unfunco.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# terraform-aws-ghes\n\nTerraform module for launching a single [GitHub Enterprise Server] appliance on\nAmazon Web Services. It focuses on the appliance itself and leaves VPC, subnet,\nroute table, and security group management to the calling stack.\n\n## Getting started\n\n### Requirements\n\n- [AWS Command Line Interface] 2+\n- [Terraform] 1.14+\n\n### Usage instructions\n\n\u003c!-- x-release-please-start-version --\u003e\n\n```terraform\nmodule \"ghes\" {\n  source  = \"unfunco/ghes/aws\"\n  version = \"0.1.0\"\n\n  ami_id                 = \"ami-0123456789abcdef0\"\n  subnet_id              = \"subnet-0123456789abcdef0\"\n  vpc_security_group_ids = [\"sg-0123456789abcdef0\"]\n}\n```\n\n\u003c!-- x-release-please-end --\u003e\n\n#### Finding the GHES AMI ID\n\n```bash\naws ec2 describe-images \\\n  --output \"text\" \\\n  --owners \"895557238572\" \\\n  --query \"sort_by(Images,\u0026Name)[*].{Name:Name,ImageID:ImageId}\"\n```\n\n\u003c!-- BEGIN_TF_DOCS --\u003e\n\n### Resources\n\n| Name                                                                                                                    | Type     |\n| ----------------------------------------------------------------------------------------------------------------------- | -------- |\n| [aws_eip.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/eip)                         | resource |\n| [aws_eip_association.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/eip_association) | resource |\n| [aws_instance.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance)               | resource |\n| [aws_kms_key.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/kms_key)                 | resource |\n\n### Inputs\n\n| Name                    | Description                                                                                                                                              | Type           | Default        | Required |\n| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | -------------- | :------: |\n| ami_id                  | AMI ID for the GHES appliance. Consumers must provide this explicitly.                                                                                   | `string`       | n/a            |   yes    |\n| create                  | Whether to create resources in this module.                                                                                                              | `bool`         | `true`         |    no    |\n| create_eip              | Whether to allocate and associate an Elastic IP with the GHES appliance.                                                                                 | `bool`         | `true`         |    no    |\n| data_volume_device_name | EC2 device name for the attached GHES data volume.                                                                                                       | `string`       | `\"/dev/xvdf\"`  |    no    |\n| data_volume_iops        | Provisioned IOPS for the GHES data volume when using gp3, io1, or io2. Defaults to 3000 when the selected volume type supports configurable IOPS.        | `number`       | `null`         |    no    |\n| data_volume_size        | Size in GiB for the encrypted GHES data volume. GHES currently requires at least 500 GiB.                                                                | `number`       | `500`          |    no    |\n| data_volume_throughput  | Provisioned throughput in MiB/s for the GHES data volume when using gp3. Defaults to 125 when the selected volume type supports configurable throughput. | `number`       | `null`         |    no    |\n| data_volume_type        | EBS volume type for the GHES data volume. GitHub recommends SSD-backed types such as gp3, io1, or io2 for production workloads.                          | `string`       | `\"gp3\"`        |    no    |\n| ebs_optimized           | Whether to enable EBS optimization for the GHES appliance. When null, AWS provider defaults apply.                                                       | `bool`         | `null`         |    no    |\n| instance_profile_name   | IAM instance profile name to attach to the GHES appliance.                                                                                               | `string`       | `null`         |    no    |\n| instance_type           | EC2 instance type for the GHES appliance.                                                                                                                | `string`       | `\"r5.2xlarge\"` |    no    |\n| key_name                | Optional EC2 key pair name to associate with the GHES appliance.                                                                                         | `string`       | `null`         |    no    |\n| kms_key_arn             | KMS key ARN for encrypted resources. When null, the module creates a key.                                                                                | `string`       | `null`         |    no    |\n| root_volume_iops        | Provisioned IOPS for the GHES root volume when using gp3, io1, or io2. Defaults to 3000 when the selected volume type supports configurable IOPS.        | `number`       | `null`         |    no    |\n| root_volume_size        | Size in GiB for the encrypted GHES root disk. GHES currently requires at least 400 GiB, and this disk is separate from the data volume.                  | `number`       | `400`          |    no    |\n| root_volume_throughput  | Provisioned throughput in MiB/s for the GHES root volume when using gp3. Defaults to 125 when the selected volume type supports configurable throughput. | `number`       | `null`         |    no    |\n| root_volume_type        | EBS volume type for the GHES root volume. GitHub recommends SSD-backed types such as gp3, io1, or io2 for production workloads.                          | `string`       | `\"gp3\"`        |    no    |\n| subnet_id               | Subnet ID where the GHES appliance should be launched. Networking is expected to be managed outside this module.                                         | `string`       | n/a            |   yes    |\n| tags                    | Tags to be applied to all applicable resources.                                                                                                          | `map(string)`  | `{}`           |    no    |\n| vpc_security_group_ids  | Optional security group IDs to attach to the GHES appliance. When null, AWS uses the subnet's default security group.                                    | `list(string)` | `null`         |    no    |\n\n### Outputs\n\n| Name                | Description                                                       |\n| ------------------- | ----------------------------------------------------------------- |\n| ami_id              | AMI ID provided for the GHES appliance.                           |\n| data_volume_id      | EBS volume ID for the attached GHES data volume.                  |\n| instance_id         | EC2 instance ID for the GHES appliance.                           |\n| instance_private_ip | Private IPv4 address assigned to the GHES appliance.              |\n| instance_public_ip  | Public IPv4 address for the GHES appliance when one is available. |\n| kms_key_arn         | KMS key ARN used for encrypted resources.                         |\n| subnet_id           | Subnet ID used for the GHES appliance.                            |\n\n\u003c!-- END_TF_DOCS --\u003e\n\n## License\n\n© 2026 [Daniel Morris].\\\nMade available under the terms of the [MIT Licence].\n\n[aws command line interface]: https://aws.amazon.com/cli/\n[daniel morris]: https://unfun.co\n[github enterprise server]: https://docs.github.com/en/enterprise-server\n[mit licence]: LICENSE.md\n[terraform]: https://developer.hashicorp.com/terraform\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funfunco%2Fterraform-aws-ghes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funfunco%2Fterraform-aws-ghes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funfunco%2Fterraform-aws-ghes/lists"}