Hetzner Cloud & Multi-Provider DNS
epd includes native integrations with Hetzner Cloud and automated DNS synchronization across Cloudflare and Hetzner DNS.
1. Multi-Provider DNS Automation
epd can automatically manage and synchronize A and AAAA records for all configured service routes.
Configuration (epd.yml)
yaml
# Unified DNS configuration
dns:
provider: cloudflare # or "hetzner"
api_token: ${DNS_API_TOKEN}
# zone_id: ... # Optional; auto-discovered from domain name
proxied: true # Cloudflare CDN/proxy (default: true)
ttl: 300 # Hetzner default: 300; Cloudflare: 1 (auto)
auto_sync: true # Sync records automatically on setup and deploy(Legacy cloudflare: configuration is also supported).
CLI Commands
bash
# Check status of domains vs server IPs
epd dns status
# Synchronize DNS records
epd dns sync
# Preview changes without modifying records
epd dns sync --dry-run
# Disable Cloudflare CDN proxy (DNS-only)
epd dns sync --no-proxied2. Hetzner Cloud Integration
Manage and provision Hetzner Cloud servers directly with epd hetzner:
CLI Commands
bash
# List all Hetzner servers in your project
epd hetzner list
# Inspect available server types, vCPUs, RAM, and pricing (EUR/mo)
epd hetzner types
# Inspect available datacenter locations
epd hetzner locations
# Create a new server (default: cx22 in fsn1 with ubuntu-24.04)
epd hetzner create prod-web-1 --type cx22 --location fsn1
# Create and automatically prepare with Docker, PM2, and Traefik:
epd hetzner create prod-web-1 --setup
# Delete a server
epd hetzner delete prod-web-1Dynamic Target Servers in epd.yml
Instead of static IP addresses, you can target servers by name or label selector:
yaml
hetzner:
api_token: ${HETZNER_API_TOKEN}
servers:
web:
hosts:
- hetzner:prod-web-1 # Target single server by name
- hetzner:label:app=web,env=prod # Target all servers matching labels
port: 3000
domains: [example.com]When deploying (epd deploy or epd setup), epd dynamically queries the Hetzner Cloud API to resolve targets to their live public IP addresses.
Related Documentation
- Getting Started Guide: Deploy your first app in 5 minutes.
- GitHub Actions CI/CD: Automate deploys on every push.
- CLI Reference: Full command reference for
epd hetznerandepd dns.