Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/xjonathanlei/cfdydns

Cloudflare dynamic DNS client
https://github.com/xjonathanlei/cfdydns

cloudflare ddns

Last synced: about 2 months ago
JSON representation

Cloudflare dynamic DNS client

Awesome Lists containing this project

README

        


cfdydns

**Cloudflare dynamic DNS client**

[![crates-badge](https://img.shields.io/crates/v/cfdydns.svg)](https://crates.io/crates/cfdydns)

A simplistic dynamic DNS client that only works with Cloudflare, for only one domain. It's easily configurable via environment variables, making it an ideal choice to use in containers.

## Installation

The recommended way of using `cfdydns` is through containers. Built containers are available in:

- [GitHub Container Registry](https://github.com/xJonathanLEI/cfdydns/pkgs/container/cfdydns): `ghcr.io/xjonathanlei/cfdydns:latest`
- [Docker Hub](https://hub.docker.com/r/xjonathanlei/cfdydns): `xjonathanlei/cfdydns:latest`

You may also install the binary directly. With the Rust toolchain installed:

```console
cargo install --locked cfdydns
```

## Getting started

`cfdydns` is configurable via command line options and environment variables. Running `cfdydns --help` reveals the options:

| Option | Env var | Optional | Description |
| ------------- | ------------------- | -------- | ------------------------------------------------------------------------ |
| `--fqdn` | `CFDYDNS_FQDN` | No | Fully-qualified domain name to set A record on |
| `--zone` | `CFDYDNS_ZONE` | No | Zone name of the FQDN (e.g. `example.com`) |
| `--api-token` | `CFDYDNS_API_TOKEN` | No | Cloudflare API token with the `DNS: Edit` permission for the target zone |
| `--interval` | `CFDYDNS_INTERVAL` | Yes | Number of seconds to wait between each check |

> [!TIP]
>
> `cfdydns` does not create new records for you. The target `A` record for the FQDN must already exist.

## Why not [ddclient](https://github.com/ddclient/ddclient)?

`ddclient` is hard to configure and barely maintained. Who cares about all the DNS provider integration when you're only using Cloudflare anyways.

## License

Licensed under either of

- Apache License, Version 2.0 ([LICENSE-APACHE](./LICENSE-APACHE) or )
- MIT license ([LICENSE-MIT](./LICENSE-MIT) or )

at your option.