{"id":21901361,"url":"https://github.com/zoro16/terraform-hcloud-firewall","last_synced_at":"2025-10-09T08:35:18.062Z","repository":{"id":196489896,"uuid":"695624831","full_name":"zoro16/terraform-hcloud-firewall","owner":"zoro16","description":"Terraform module to provision Firewall resources in Hetzner Cloud.","archived":false,"fork":false,"pushed_at":"2023-09-30T11:56:13.000Z","size":12,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-22T06:17:09.355Z","etag":null,"topics":["hetzner","hetzner-cloud","hetzner-cloud-firewalls","hetzner-firewall","terraform-hcloud-firewall","terraform-module"],"latest_commit_sha":null,"homepage":"https://registry.terraform.io/modules/zoro16/firewall/hcloud/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/zoro16.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"publiccode":null,"codemeta":null}},"created_at":"2023-09-23T18:27:57.000Z","updated_at":"2024-04-26T13:47:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"e445c3fc-a67e-4a5d-be2f-e41c876d7e7a","html_url":"https://github.com/zoro16/terraform-hcloud-firewall","commit_stats":null,"previous_names":["zoro16/terraform-hcloud-firewall"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/zoro16/terraform-hcloud-firewall","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoro16%2Fterraform-hcloud-firewall","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoro16%2Fterraform-hcloud-firewall/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoro16%2Fterraform-hcloud-firewall/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoro16%2Fterraform-hcloud-firewall/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zoro16","download_url":"https://codeload.github.com/zoro16/terraform-hcloud-firewall/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoro16%2Fterraform-hcloud-firewall/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001055,"owners_count":26082991,"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","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["hetzner","hetzner-cloud","hetzner-cloud-firewalls","hetzner-firewall","terraform-hcloud-firewall","terraform-module"],"created_at":"2024-11-28T15:13:16.433Z","updated_at":"2025-10-09T08:35:18.047Z","avatar_url":"https://github.com/zoro16.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Description\n\nTerraform module to provision `Firewall` resources in Hetzner Cloud.\n\n\n\n## Usage\n\n```hcl\n# Configure the Hetzner Cloud Provider\nprovider \"hcloud\" {\n  token = var.hcloud_token\n}\n\n\nmodule \"firewall\" {\n  source = \"../../\"\n\n  create_firewall = true\n\n  firewall_name = \"test-fw\"\n\n  firewall_labels = {\n    \"Name\" : \"testing-fw\"\n  }\n\n  firewall_rules = [\n    {\n      direction = \"in\"\n      protocol  = \"tcp\"\n      port      = \"80\"\n      source_ips = [\n        \"0.0.0.0/0\",\n        \"::/0\"\n      ]\n    },\n    {\n      direction = \"in\"\n      protocol  = \"tcp\"\n      source_ips = [\n        \"0.0.0.0/0\",\n        \"::/0\"\n      ]\n      port        = \"8080\"\n      description = \"This accepts HTTP from anywhere\"\n    },\n    {\n      direction = \"out\"\n      protocol  = \"tcp\"\n      destination_ips = [\n        \"10.22.0.0/24\",\n      ]\n      port = \"80\"\n    }\n  ]\n\n  firewall_apply_to = {\n    label_selector = \"key=value\"\n  }\n\n}\n```\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.2.0 |\n| \u003ca name=\"requirement_hcloud\"\u003e\u003c/a\u003e [hcloud](#requirement\\_hcloud) | \u003e= 1.42.1 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_hcloud\"\u003e\u003c/a\u003e [hcloud](#provider\\_hcloud) | \u003e= 1.42.1 |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [hcloud_firewall.firewall](https://registry.terraform.io/providers/hetznercloud/hcloud/latest/docs/resources/firewall) | resource |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_create_firewall\"\u003e\u003c/a\u003e [create\\_firewall](#input\\_create\\_firewall) | Whether to create a Firewall or not. | `bool` | `false` | no |\n| \u003ca name=\"input_firewall_apply_to\"\u003e\u003c/a\u003e [firewall\\_apply\\_to](#input\\_firewall\\_apply\\_to) | Configuration of a Rule from this Firewall. | \u003cpre\u003eobject({\u003cbr\u003e    # Label Selector to select servers the firewall should be applied to (only one of server and label_selectorcan be applied in one block)\u003cbr\u003e    label_selector = optional(string)\u003cbr\u003e\u003cbr\u003e    # ID of the server you want to apply the firewall to (only one of server and label_selectorcan be applied in one block\u003cbr\u003e    server = optional(number)\u003cbr\u003e  })\u003c/pre\u003e | `{}` | no |\n| \u003ca name=\"input_firewall_labels\"\u003e\u003c/a\u003e [firewall\\_labels](#input\\_firewall\\_labels) | User-defined labels (key-value pairs) should be created with. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_firewall_name\"\u003e\u003c/a\u003e [firewall\\_name](#input\\_firewall\\_name) | Name of the Firewall. | `string` | `\"\"` | no |\n| \u003ca name=\"input_firewall_rules\"\u003e\u003c/a\u003e [firewall\\_rules](#input\\_firewall\\_rules) | Configuration of a Rule from this Firewall. | \u003cpre\u003elist(object({\u003cbr\u003e    # Direction of the Firewall Rule. `in`\u003cbr\u003e    direction = string\u003cbr\u003e\u003cbr\u003e    # Protocol of the Firewall Rule. `tcp`, `icmp`, `udp`, `gre`, `esp`\u003cbr\u003e    protocol = string\u003cbr\u003e\u003cbr\u003e    # List of CIDRs that are allowed within this Firewall Rule (when direction is in)\u003cbr\u003e    source_ips = optional(list(string))\u003cbr\u003e\u003cbr\u003e    # List of CIDRs that are allowed within this Firewall Rule (when direction is out)\u003cbr\u003e    destination_ips = optional(list(string))\u003cbr\u003e\u003cbr\u003e    # Port of the Firewall Rule. Required when `protocol` is `tcp` or `udp`. You can use any to allow all ports for the specific protocol. Port ranges are also possible: `80-85` allows all ports between 80 and 85.\u003cbr\u003e    port = optional(string)\u003cbr\u003e\u003cbr\u003e    # Description of the firewall rule\u003cbr\u003e    description = optional(string)\u003cbr\u003e  }))\u003c/pre\u003e | `[]` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_firewall_apply_to\"\u003e\u003c/a\u003e [firewall\\_apply\\_to](#output\\_firewall\\_apply\\_to) | Configuration of a Rule from this Firewall. |\n| \u003ca name=\"output_firewall_id\"\u003e\u003c/a\u003e [firewall\\_id](#output\\_firewall\\_id) | ID of the Firewall. |\n| \u003ca name=\"output_firewall_labels\"\u003e\u003c/a\u003e [firewall\\_labels](#output\\_firewall\\_labels) | User-defined labels (key-value pairs) should be created with. |\n| \u003ca name=\"output_firewall_name\"\u003e\u003c/a\u003e [firewall\\_name](#output\\_firewall\\_name) | Name of the Firewall. |\n| \u003ca name=\"output_firewall_rule\"\u003e\u003c/a\u003e [firewall\\_rule](#output\\_firewall\\_rule) | Configuration of a Rule from this Firewall. |\n\u003c!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzoro16%2Fterraform-hcloud-firewall","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzoro16%2Fterraform-hcloud-firewall","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzoro16%2Fterraform-hcloud-firewall/lists"}