Saltar a contenido

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 hosts www.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_issued del 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.