Cloudflare¶
Configuración de Cloudflare para gorkarevilla.com. Gestionada como código con
Terraform (terraform/cloudflare/, provider cloudflare) desde septiembre 2026.
Ver "Estado IaC" al final del documento.
Cuenta y zona¶
| Dato | Valor |
|---|---|
| Cuenta | Gorkarevilla@gmail.com's Account |
| Account ID | aaa682760a710a6d02aa6feaf8136cfc |
| Tipo de cuenta | standard |
| Zona | gorkarevilla.com |
| Zone ID | eb49cca546001127fdd1eef35ea0dc95 |
| Plan | Free Website |
| Estado zona | active (no pausada) |
| Registrador original | OVH SAS |
| Name servers | venkat.ns.cloudflare.com, zita.ns.cloudflare.com |
| Activada | 2023-02-28 |
Solo existe una zona en la cuenta.
DNS¶
Registros DNS gestionados por Terraform. Todos usan TTL automático (ttl: 1).
CNAME → hometunnel.gorkarevilla.com (proxied)¶
Todos los servicios caseros cuelgan de hometunnel, que a su vez apunta al
túnel Lebron. Todos con proxied: true:
ai, audiobookshelf, duplicati, esphome, frigate, grafana, grocy,
homeassistant, influxdb, kavita, n8n,
nas, nginx, octoprint, pihole, portainer, proxmox, shlinkbe,
shlink, uptime, zigbee2mqtt.
Otros CNAME¶
| Nombre | Valor | Proxied | Nota |
|---|---|---|---|
hometunnel.gorkarevilla.com |
aab5e1dd-…-a3e0fc90f2f0.cfargotunnel.com |
Sí | Túnel Lebron |
homelabtunnel.gorkarevilla.com |
8fbb1068-…-a26b-ae21db24a064.cfargotunnel.com |
Sí | Túnel homelab (cluster k3s) |
passwords.gorkarevilla.com |
homelabtunnel.gorkarevilla.com |
Sí | Vaultwarden (túnel del cluster) |
heimdall.gorkarevilla.com |
homelabtunnel.gorkarevilla.com |
Sí | Heimdall (túnel del cluster) |
auth.gorkarevilla.com |
homelabtunnel.gorkarevilla.com |
Sí | Authentik (túnel del cluster) |
docs.gorkarevilla.com |
homelab-docs-9cg.pages.dev |
Sí | Cloudflare Pages |
bali.gorkarevilla.com |
3d42dd91504b6550.vercel-dns-017.com |
No | Vercel |
preview.bali.gorkarevilla.com |
3d42dd91504b6550.vercel-dns-017.com |
No | Vercel |
mirenygorka.gorkarevilla.com |
c770aea5f3c49024.vercel-dns-017.com |
No | Vercel |
gorkarevilla.com (apex) |
6d86e83e4edf8aa8.vercel-dns-017.com |
No | Vercel (web) |
www.gorkarevilla.com |
gorkarevilla.com |
No | Vercel (web, CNAME al apex) |
MX (Email Routing)¶
| Nombre | Prioridad | Valor |
|---|---|---|
gorkarevilla.com |
21 | route2.mx.cloudflare.net |
gorkarevilla.com |
82 | route3.mx.cloudflare.net |
gorkarevilla.com |
86 | route1.mx.cloudflare.net |
TXT¶
| Nombre | Valor | Nota |
|---|---|---|
gorkarevilla.com |
v=spf1 include:_spf.mx.cloudflare.net ~all |
SPF |
cf2024-1._domainkey.gorkarevilla.com |
v=DKIM1; h=sha256; k=rsa; p=… |
DKIM Email Routing |
_dmarc.gorkarevilla.com |
v=DMARC1; p=none; rua=mailto:gorkarevilla@gmail.com |
DMARC |
gorkarevilla.com |
google-site-verification=acSmaygKWQ48TdTEpjNfLhOfGcb4f4rvyyNYcVXDxDY |
Verificación Google |
Cloudflare Tunnel¶
Dos túneles, gestionados desde Cloudflare (config remota, no local). El legacy
(Lebron) termina en lebron/NPM; el del cluster (homelab) termina en el
cloudflared de k3s → Traefik.
flowchart TD
subgraph EXT["Internet"]
U["Cliente (navegador / app)"]
end
subgraph CF["Cloudflare"]
EDGE["Edge (anycast)<br/>termina TLS · cert Universal *.gorkarevilla.com"]
T1["Túnel 'Lebron'<br/>aab5e1dd-… (legacy)"]
T2["Túnel 'homelab'<br/>8fbb1068-… (cluster k3s)"]
end
subgraph LAN["Casa · doble NAT · sin puertos entrantes"]
LB["lebron 192.168.1.2<br/>cloudflared + NPM (80/443)"]
subgraph K3S["Cluster k3s · VLAN 20"]
CFD["cloudflared<br/>ns cloudflared"]
TR["Traefik<br/>LoadBalancer 192.168.20.60"]
end
end
U -->|"HTTPS 443"| EDGE
EDGE -->|"hometunnel.* · resto de hostnames legacy"| T1
EDGE -->|"passwords.* · heimdall.* · auth.*"| T2
T1 -->|"HTTP plano (outbound)"| LB
T2 -->|"HTTP plano (outbound)"| CFD
CFD -->|"http://traefik.traefik.svc.cluster.local:80"| TR
| Dato | Valor |
|---|---|
| Nombre | Lebron |
| Tunnel ID | aab5e1dd-5c98-48c7-9cc0-a3e0fc90f2f0 |
| Tipo | cfd_tunnel |
| Estado | healthy |
| Config | remota (config_src: cloudflare) |
| Origen | 192.168.1.2 (Nginx/cloudflared) |
| WARP routing | enabled |
Túnel homelab (cluster k3s)¶
Dedicado al cluster. El cloudflared corre dentro de k3s (namespace
cloudflared) y apunta a Traefik. Usa hostnames explícitos (no
*.gorkarevilla.com) para no tragarse el tráfico de servicios que todavía
cuelgan del túnel Lebron.
| Dato | Valor |
|---|---|
| Nombre | homelab |
| Tunnel ID | 8fbb1068-e91e-459f-a26b-ae21db24a064 |
| Tipo | cfd_tunnel |
| Config | remota (config_src: cloudflare) |
| Origen | http://traefik.traefik.svc.cluster.local:80 |
| WARP routing | disabled |
Reglas de ingress:
| Hostname | Servicio |
|---|---|
passwords.gorkarevilla.com |
http://traefik.traefik.svc.cluster.local:80 |
heimdall.gorkarevilla.com |
http://traefik.traefik.svc.cluster.local:80 |
auth.gorkarevilla.com |
http://traefik.traefik.svc.cluster.local:80 |
grafana.gorkarevilla.com |
http://traefik.traefik.svc.cluster.local:80 (aún sin CNAME a homelabtunnel; el registro actual sigue en hometunnel/Lebron) |
| (catch-all) | http_status:404 |
Reglas de ingress (Lebron)¶
| Hostname | Servicio |
|---|---|
hometunnel.gorkarevilla.com |
http://192.168.1.2 |
gorkarevilla.com |
http://192.168.1.2 |
*.gorkarevilla.com |
http://192.168.1.2 |
| (catch-all) | http_status:404 |
R2¶
| Dato | Valor |
|---|---|
| Bucket | homelab-infra-tfstate |
| Ubicación | WEUR |
| Clase | Standard |
| Uso | Backend del state de Terraform (bootstrap manual, fuera de TF) |
Pages¶
| Dato | Valor |
|---|---|
| Proyecto | homelab-docs |
| Subdominio | homelab-docs-9cg.pages.dev |
| Dominio custom | docs.gorkarevilla.com |
| Rama de producción | main |
| Framework | — (MkDocs estático) |
| Functions | no usa |
Email Routing¶
| Dato | Valor |
|---|---|
| Estado | enabled / ready |
| Regla activa | admin@gorkarevilla.com → gorkarevilla@gmail.com |
| Catch-all | configurado como drop, deshabilitado |
Seguridad y reglas¶
| Elemento | Estado |
|---|---|
| Workers | ninguno |
| Page Rules | ninguna |
| Redirect rules | ninguna |
| Transform rules | ninguna |
| Access (Zero Trust) | app docs + policy Only Gorka (Google IdP, gestionado con Terraform) |
WAF (regla custom)¶
Una única regla custom, deshabilitada:
- ID:
86e04ed9bb56479da291fd5edf8c0e39 - Descripción (en Cloudflare): "Solo España y Uptime" — el nombre no
refleja la expresión real, que permite
{AT, ES, US}(no solo España). - Acción:
block - Expresión: bloquea todo lo que NO sea de países
{AT, ES, US}y no sea el UA de Uptime Kuma ni los hostswww.gorkarevilla.com/gorkarevilla.com.
Ajustes de zona (relevantes)¶
| Ajuste | Valor |
|---|---|
| SSL/TLS mode | strict |
| Always Use HTTPS | on |
| Automatic HTTPS Rewrites | on |
| HTTP/3 | on |
| TLS 1.3 | on |
| Min TLS version | 1.2 |
| IPv6 | on |
| Brotli | on |
| Email obfuscation | on |
| Security level | medium |
| Always Online | off |
| Minify (css/html/js) | off |
| Challenge TTL | 1800 |
Certificados SSL¶
- Universal
*.gorkarevilla.com+gorkarevilla.com: active (DV, TXT). - Existe una copia
backup_issueddel mismo universal.
Roadmap a IaC (Fase 1)¶
Completado en septiembre 2026. Todo lo siguiente está gestionado con Terraform
(terraform/cloudflare/, state cloudflare.tfstate en R2):
- Zona + registros DNS.
- Túnel
Lebron+ reglas de ingress. - Regla WAF.
- Ajustes de zona (SSL
strict, Always Use HTTPS, etc.). - Email Routing (reenvío
admin@gorkarevilla.com). - Access (Zero Trust) para
docs.gorkarevilla.com. - Pages (
homelab-docs).
Queda fuera de Terraform: el bucket R2 del state (bootstrap manual) y el registro DKIM (lo gestiona Email Routing).
Estado IaC (septiembre 2026)¶
Gestionado con Terraform (terraform/cloudflare/, state cloudflare.tfstate
en R2): zona, registros DNS (38; el DKIM de Email Routing queda fuera), túnel
Lebron + su config de ingress, WAF, settings de zona (parcial), Email Routing
(reenvío admin@gorkarevilla.com), Access (Google IdP para docs) y Pages.
Fuera de Terraform (deliberado): el bucket R2 del state (bootstrap manual), el
registro DKIM (lo gestiona Email Routing) y el setting minify (error del
provider). Ver runbooks/cloudflare-iac.md.