{"id":28200178,"url":"https://github.com/harry-moore-dev/terraform-aws-beammp-server-module","last_synced_at":"2026-01-26T04:02:57.082Z","repository":{"id":212947489,"uuid":"732498942","full_name":"Harry-Moore-dev/terraform-aws-beamMP-server-module","owner":"Harry-Moore-dev","description":"Terraform module to deploy a BeamMP server to AWS","archived":false,"fork":false,"pushed_at":"2024-04-22T08:04:09.000Z","size":29,"stargazers_count":2,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-12T10:43:36.433Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://registry.terraform.io/modules/Harry-Moore-dev/beamMP-server-module/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/Harry-Moore-dev.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-12-16T21:51:02.000Z","updated_at":"2024-03-19T15:01:37.000Z","dependencies_parsed_at":"2024-01-22T21:34:54.393Z","dependency_job_id":null,"html_url":"https://github.com/Harry-Moore-dev/terraform-aws-beamMP-server-module","commit_stats":null,"previous_names":["harry-moore-dev/tf-beammp-server-module","harry-moore-dev/terraform-aws-beammp-server-module"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/Harry-Moore-dev/terraform-aws-beamMP-server-module","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Harry-Moore-dev%2Fterraform-aws-beamMP-server-module","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Harry-Moore-dev%2Fterraform-aws-beamMP-server-module/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Harry-Moore-dev%2Fterraform-aws-beamMP-server-module/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Harry-Moore-dev%2Fterraform-aws-beamMP-server-module/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Harry-Moore-dev","download_url":"https://codeload.github.com/Harry-Moore-dev/terraform-aws-beamMP-server-module/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Harry-Moore-dev%2Fterraform-aws-beamMP-server-module/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28766369,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T03:54:34.369Z","status":"ssl_error","status_checked_at":"2026-01-26T03:54:33.031Z","response_time":59,"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":[],"created_at":"2025-05-16T20:10:51.503Z","updated_at":"2026-01-26T04:02:57.068Z","avatar_url":"https://github.com/Harry-Moore-dev.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tf-beamMP-server-module\nTerraform module to deploy a BeamMP server to AWS\n\n# Usage\n\nSimple example:\n```hcl\nmodule \"beamMP_server\" {\n  source  = \"Harry-Moore-dev/beamMP-server-module/aws\"\n  version = \"1.2.1\"\n\n  beamMP_auth_key           = var.beamMP_auth_key # Should be loaded in as a secret and kept out of source control\n}\n```\n\nDetailed example:\n```hcl\nmodule \"beamMP_server\" {\n  source  = \"Harry-Moore-dev/beamMP-server-module/aws\"\n  version = \"1.2.1\"\n\n  region              = \"eu-west-1\n  ec2_instance_type   = \"t3.large\"\n  ec2_ebs_volume_size = 8\n\n  ec2_spot_instance_price   = \"0.01\"\n  ec2_spot_instance_enabled = true\n\n  beamMP_port               = 42069\n  beamMP_auth_key           = var.beamMP_auth_key # Should be loaded in as a secret and kept out of source control\n  beamMP_map                = \"italy\"\n  beamMP_server_name        = \"Yet Another BeamMP Server\"\n  beamMP_server_description = \"Yet Another Server Description\"\n  beamMP_max_cars           = 2\n  beamMP_max_players        = 10\n  beamMP_private            = false\n  beamMP_modded             = true\n  beamMP_mod_s3_bucket_path = \"examplebucket/mods\"\n}\n```\n\n### Loading mods\n\nCreate an S3 bucket in your AWS account and load the mod zip files to a path of your choice. When mods are enabled in the server build and the path is provided, all mod files in that path will be copied over to the server on creation so sufficient ebs volume size should be specified depending on the size of the mods loaded.\n\n## Pre-commit config\n\nInstall dependencies for pre-commit.\n```\nbrew install pre-commit terraform-docs tflint tfsec\n```\n\n\u003c!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 1.5.7 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | ~\u003e 5.33.0 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | 5.33.0 |\n\n## Modules\n\n| Name | Source | Version |\n|------|--------|---------|\n| \u003ca name=\"module_ec2\"\u003e\u003c/a\u003e [ec2](#module\\_ec2) | terraform-aws-modules/ec2-instance/aws | 5.6.0 |\n| \u003ca name=\"module_security_group\"\u003e\u003c/a\u003e [security\\_group](#module\\_security\\_group) | terraform-aws-modules/security-group/aws | 5.1.0 |\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_default_vpc.default](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/default_vpc) | resource |\n| [aws_iam_instance_profile.ssm_instance_profile](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_instance_profile) | resource |\n| [aws_iam_policy.s3_read_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_policy) | resource |\n| [aws_iam_role.ssm_role](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |\n| [aws_iam_role_policy_attachment.s3_read_policy_attachment](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |\n| [aws_iam_role_policy_attachment.ssm_policy_attachment](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |\n| [aws_subnet.public_subnet](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/subnet) | resource |\n| [aws_ami.ubuntu](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/ami) | data source |\n| [aws_availability_zones.available](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/availability_zones) | data source |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_beamMP_auth_key\"\u003e\u003c/a\u003e [beamMP\\_auth\\_key](#input\\_beamMP\\_auth\\_key) | BeamMP config auth key | `string` | n/a | yes |\n| \u003ca name=\"input_beamMP_map\"\u003e\u003c/a\u003e [beamMP\\_map](#input\\_beamMP\\_map) | BeamMP config server map selected | `string` | `\"gridmap_v2\"` | no |\n| \u003ca name=\"input_beamMP_max_cars\"\u003e\u003c/a\u003e [beamMP\\_max\\_cars](#input\\_beamMP\\_max\\_cars) | BeamMP config maximum number of cars per allowed person | `number` | `1` | no |\n| \u003ca name=\"input_beamMP_max_players\"\u003e\u003c/a\u003e [beamMP\\_max\\_players](#input\\_beamMP\\_max\\_players) | BeamMP config maximum number of players | `number` | `5` | no |\n| \u003ca name=\"input_beamMP_mod_s3_bucket_path\"\u003e\u003c/a\u003e [beamMP\\_mod\\_s3\\_bucket\\_path](#input\\_beamMP\\_mod\\_s3\\_bucket\\_path) | S3 bucket name and path containing the zipped mod files (Potential security risk, only specify buckets in your control!) | `string` | `\"\"` | no |\n| \u003ca name=\"input_beamMP_modded\"\u003e\u003c/a\u003e [beamMP\\_modded](#input\\_beamMP\\_modded) | BeamMP server enable mods | `bool` | `false` | no |\n| \u003ca name=\"input_beamMP_port\"\u003e\u003c/a\u003e [beamMP\\_port](#input\\_beamMP\\_port) | BeamMP config server port, also used in the security group rules | `number` | `30814` | no |\n| \u003ca name=\"input_beamMP_private\"\u003e\u003c/a\u003e [beamMP\\_private](#input\\_beamMP\\_private) | BeamMP config set the server to private or not | `bool` | `true` | no |\n| \u003ca name=\"input_beamMP_server_description\"\u003e\u003c/a\u003e [beamMP\\_server\\_description](#input\\_beamMP\\_server\\_description) | BeamMP config server description | `string` | `\"BeamMP Server created by Terraform\"` | no |\n| \u003ca name=\"input_beamMP_server_name\"\u003e\u003c/a\u003e [beamMP\\_server\\_name](#input\\_beamMP\\_server\\_name) | BeamMP config server name | `string` | `\"BeamMP Server created by Terraform\"` | no |\n| \u003ca name=\"input_ec2_ebs_volume_size\"\u003e\u003c/a\u003e [ec2\\_ebs\\_volume\\_size](#input\\_ec2\\_ebs\\_volume\\_size) | ec2 ebs volume size | `number` | `8` | no |\n| \u003ca name=\"input_ec2_instance_type\"\u003e\u003c/a\u003e [ec2\\_instance\\_type](#input\\_ec2\\_instance\\_type) | ec2 instance type | `string` | `\"t3.small\"` | no |\n| \u003ca name=\"input_ec2_spot_instance_enabled\"\u003e\u003c/a\u003e [ec2\\_spot\\_instance\\_enabled](#input\\_ec2\\_spot\\_instance\\_enabled) | use ec2 spot instances (cheaper but can be terminated at any time) | `bool` | `false` | no |\n| \u003ca name=\"input_ec2_spot_instance_price\"\u003e\u003c/a\u003e [ec2\\_spot\\_instance\\_price](#input\\_ec2\\_spot\\_instance\\_price) | ec2 spot instance price (adjust this for the instance type if using spot instances) | `string` | `\"0.01\"` | no |\n| \u003ca name=\"input_region\"\u003e\u003c/a\u003e [region](#input\\_region) | AWS region | `string` | `\"eu-west-2\"` | no |\n| \u003ca name=\"input_vpc_subnet_cidr_block\"\u003e\u003c/a\u003e [vpc\\_subnet\\_cidr\\_block](#input\\_vpc\\_subnet\\_cidr\\_block) | value of the vpc cidr block for the public subnet | `string` | `\"172.31.0.0/16\"` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_server_ip\"\u003e\u003c/a\u003e [server\\_ip](#output\\_server\\_ip) | public IP of the EC2 instance used for direct connect |\n\u003c!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharry-moore-dev%2Fterraform-aws-beammp-server-module","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fharry-moore-dev%2Fterraform-aws-beammp-server-module","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharry-moore-dev%2Fterraform-aws-beammp-server-module/lists"}