1.5 KiB
1.5 KiB
Cloudflare DNS Module
Declarative DNS management for Cloudflare using flarectl.
Usage
Add to your host configuration:
{
imports = [
../../modules/cloudflare-dns
];
cloudflare-dns = {
enable = true;
apiToken = "YOUR_CLOUDFLARE_API_TOKEN";
zoneId = "YOUR_ZONE_ID";
records = [
{
name = "uptime";
type = "A";
content = "YOUR_SERVER_IP";
proxied = true;
}
{
name = "monitoring";
type = "CNAME";
content = "uptime.example.com";
proxied = true;
}
];
};
}
Getting Your API Token
- Go to https://dash.cloudflare.com/profile/api-tokens
- Click "Create Token"
- Use "Edit zone DNS" template
- Select your zone (domain)
- Copy the token
Getting Your Zone ID
- Go to https://dash.cloudflare.com
- Click on your domain
- Look for "Zone ID" on the right sidebar
- Copy the ID
Options
apiToken- Cloudflare API token (required)zoneId- Cloudflare zone ID (required)records- List of DNS records to managename- Record name (e.g., "uptime" for uptime.example.com)type- Record type (A, AAAA, CNAME, etc., default: A)content- Record content (IP address, hostname, etc.)proxied- Use Cloudflare proxy (default: true)ttl- TTL value (1 = auto, default: 1)
Usage Notes
- Records are updated on system activation
- Use
sudo systemctl start cloudflare-dns-updateto manually update - API token should be stored securely (consider using sops-nix)