## Common Use Cases ### 1. SSH Server Protection **Terraform:** ```hcl resource "cloudflare_spectrum_application" "ssh" { zone_id = var.zone_id protocol = "tcp/22" dns { type = "CNAME" name = "ssh.example.com" } origin_direct = ["tcp://10.0.1.5:22"] ip_firewall = true argo_smart_routing = true } ``` **Benefits:** Hide origin IP, DDoS protection, IP firewall, Argo reduces latency ### 2. Game Server **TypeScript (Minecraft):** ```typescript const app = await client.spectrum.apps.create({ zone_id: 'your-zone-id', protocol: 'tcp/25565', dns: { type: 'CNAME', name: 'mc.example.com' }, origin_direct: ['tcp://192.168.1.10:25565'], proxy_protocol: 'v1', // Preserves player IPs argo_smart_routing: true, }); ``` **Benefits:** DDoS protection, hide origin IP, Proxy Protocol for player IPs/bans, Argo reduces latency ### 3. MQTT Broker IoT device communication. **TypeScript:** ```typescript const mqttApp = await client.spectrum.apps.create({ zone_id: 'your-zone-id', protocol: 'tcp/8883', // Use 1883 for plain MQTT dns: { type: 'CNAME', name: 'mqtt.example.com' }, origin_direct: ['tcp://mqtt-broker.internal:8883'], tls: 'full', // Use 'off' for plain MQTT }); ``` **Benefits:** DDoS protection, hide broker IP, TLS termination at edge ### 4. SMTP Relay Email submission (port 587). **WARNING**: See [gotchas.md](gotchas.md#smtp-reverse-dns) **Terraform:** ```hcl resource "cloudflare_spectrum_application" "smtp" { zone_id = var.zone_id protocol = "tcp/587" dns { type = "CNAME" name = "smtp.example.com" } origin_direct = ["tcp://mail-server.internal:587"] tls = "full" # STARTTLS support } ``` **Limitations:** - Spectrum IPs lack reverse DNS (PTR records) - Many mail servers reject without valid rDNS - Best for internal/trusted relay only ### 5. Database Proxy MySQL/PostgreSQL. **Use with caution** - security critical. **PostgreSQL:** ```typescript const postgresApp = await client.spectrum.apps.create({ zone_id: 'your-zone-id', protocol: 'tcp/5432', dns: { type: 'CNAME', name: 'postgres.example.com' }, origin_dns: { name: 'db-primary.internal.example.com' }, origin_port: 5432, tls: 'strict', // REQUIRED ip_firewall: true, // REQUIRED }); ``` **MySQL:** ```hcl resource "cloudflare_spectrum_application" "mysql" { zone_id = var.zone_id protocol = "tcp/3306" dns { type = "CNAME" name = "mysql.example.com" } origin_dns { name = "mysql-primary.internal.example.com" } origin_port = 3306 tls = "strict" ip_firewall = true } ``` **Security:** - ALWAYS use `tls: "strict"` - ALWAYS use `ip_firewall: true` - Restrict to known IPs via zone firewall - Use strong DB authentication - Consider VPN or Cloudflare Access instead ### 6. RDP (Remote Desktop) **Requires IP firewall.** **Terraform:** ```hcl resource "cloudflare_spectrum_application" "rdp" { zone_id = var.zone_id protocol = "tcp/3389" dns { type = "CNAME" name = "rdp.example.com" } origin_direct = ["tcp://windows-server.internal:3389"] tls = "off" # RDP has own encryption ip_firewall = true # REQUIRED } ``` **Security:** ALWAYS `ip_firewall: true`, whitelist admin IPs, RDP is DDoS/brute-force target ### 7. Multi-Origin Failover High availability with load balancer. **Terraform:** ```hcl resource "cloudflare_load_balancer" "database_lb" { zone_id = var.zone_id name = "db-lb.example.com" default_pool_ids = [cloudflare_load_balancer_pool.db_primary.id] fallback_pool_id = cloudflare_load_balancer_pool.db_secondary.id } resource "cloudflare_load_balancer_pool" "db_primary" { name = "db-primary-pool" origins { name = "db-1"; address = "192.0.2.1" } monitor = cloudflare_load_balancer_monitor.postgres_monitor.id } resource "cloudflare_load_balancer_pool" "db_secondary" { name = "db-secondary-pool" origins { name = "db-2"; address = "192.0.2.2" } monitor = cloudflare_load_balancer_monitor.postgres_monitor.id } resource "cloudflare_load_balancer_monitor" "postgres_monitor" { type = "tcp"; port = 5432; interval = 30; timeout = 5 } resource "cloudflare_spectrum_application" "postgres_ha" { zone_id = var.zone_id protocol = "tcp/5432" dns { type = "CNAME"; name = "postgres.example.com" } origin_dns { name = cloudflare_load_balancer.database_lb.name } origin_port = 5432 tls = "strict" ip_firewall = true } ``` **Benefits:** Automatic failover, health monitoring, traffic distribution, zero-downtime deployments ## See Also - [configuration.md](configuration.md) - Origin type setup - [gotchas.md](gotchas.md) - Protocol limitations - [api.md](api.md) - SDK reference