Skip to content

Commit 643d635

Browse files
committed
feat: enable caching optimizations and edge cache for root domain
1 parent bcf773c commit 643d635

2 files changed

Lines changed: 66 additions & 2 deletions

File tree

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,21 @@ No modules.
3232
| [cloudflare_dns_record.root](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/dns_record) | resource |
3333
| [cloudflare_dns_record.spf](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/dns_record) | resource |
3434
| [cloudflare_dns_record.www](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/dns_record) | resource |
35+
| [cloudflare_ruleset.cache_rules](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/ruleset) | resource |
3536
| [cloudflare_zero_trust_access_application.warp](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/zero_trust_access_application) | resource |
3637
| [cloudflare_zero_trust_access_group.admins](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/zero_trust_access_group) | resource |
3738
| [cloudflare_zero_trust_access_identity_provider.github](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/zero_trust_access_identity_provider) | resource |
3839
| [cloudflare_zero_trust_organization.main](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/zero_trust_organization) | resource |
40+
| [cloudflare_zone_setting.brotli](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/zone_setting) | resource |
3941
| [cloudflare_zone_setting.browser_cache_ttl](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/zone_setting) | resource |
4042
| [cloudflare_zone_setting.browser_check](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/zone_setting) | resource |
4143
| [cloudflare_zone_setting.cache_level](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/zone_setting) | resource |
4244
| [cloudflare_zone_setting.challenge_ttl](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/zone_setting) | resource |
45+
| [cloudflare_zone_setting.early_hints](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/zone_setting) | resource |
4346
| [cloudflare_zone_setting.minify](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/zone_setting) | resource |
47+
| [cloudflare_zone_setting.polish](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/zone_setting) | resource |
48+
| [cloudflare_zone_setting.prefetch_preload](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/zone_setting) | resource |
49+
| [cloudflare_zone_setting.rocket_loader](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/zone_setting) | resource |
4450
| [cloudflare_zone.makeitwork_cloud](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/data-sources/zone) | data source |
4551
| [sops_file.secret_vars](https://registry.terraform.io/providers/carlpett/sops/latest/docs/data-sources/file) | data source |
4652

cf-cache.tf

Lines changed: 60 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,66 @@ resource "cloudflare_zone_setting" "minify" {
3434
zone_id = local.zone_id
3535
setting_id = "minify"
3636
value = {
37-
css = "off"
38-
html = "off"
37+
css = "on"
38+
html = "on"
3939
js = "off"
4040
}
4141
}
42+
43+
resource "cloudflare_zone_setting" "brotli" {
44+
zone_id = local.zone_id
45+
setting_id = "brotli"
46+
value = "on"
47+
}
48+
49+
resource "cloudflare_zone_setting" "early_hints" {
50+
zone_id = local.zone_id
51+
setting_id = "early_hints"
52+
value = "on"
53+
}
54+
55+
resource "cloudflare_zone_setting" "rocket_loader" {
56+
zone_id = local.zone_id
57+
setting_id = "rocket_loader"
58+
value = "off"
59+
}
60+
61+
resource "cloudflare_zone_setting" "polish" {
62+
zone_id = local.zone_id
63+
setting_id = "polish"
64+
value = "off"
65+
}
66+
67+
resource "cloudflare_zone_setting" "prefetch_preload" {
68+
zone_id = local.zone_id
69+
setting_id = "prefetch_preload"
70+
value = "on"
71+
}
72+
73+
# Cache rule for static HTML at root domain
74+
resource "cloudflare_ruleset" "cache_rules" {
75+
zone_id = local.zone_id
76+
name = "Cache Rules"
77+
description = "Cache static HTML content"
78+
kind = "zone"
79+
phase = "http_request_cache_settings"
80+
81+
rules = [
82+
{
83+
action = "set_cache_settings"
84+
action_parameters = {
85+
cache = true
86+
edge_ttl = {
87+
mode = "override_origin"
88+
default = 3600 # 1 hour edge cache
89+
}
90+
browser_ttl = {
91+
mode = "respect_origin"
92+
}
93+
}
94+
expression = "((http.host eq \"makeitwork.cloud\") or (http.host eq \"www.makeitwork.cloud\")) and ((http.request.uri.path eq \"/\") or (ends_with(http.request.uri.path, \".html\")))"
95+
description = "Cache root and HTML pages for 1 hour at edge"
96+
enabled = true
97+
}
98+
]
99+
}

0 commit comments

Comments
 (0)