diff --git a/blueprints/cloudflare-ddns/cloudflare-ddns.svg b/blueprints/cloudflare-ddns/cloudflare-ddns.svg
new file mode 100644
index 00000000..efe800bc
--- /dev/null
+++ b/blueprints/cloudflare-ddns/cloudflare-ddns.svg
@@ -0,0 +1,8 @@
+
diff --git a/blueprints/cloudflare-ddns/docker-compose.yml b/blueprints/cloudflare-ddns/docker-compose.yml
new file mode 100644
index 00000000..179139d8
--- /dev/null
+++ b/blueprints/cloudflare-ddns/docker-compose.yml
@@ -0,0 +1,16 @@
+# For more details, see:
+# - https://github.com/favonia/cloudflare-ddns
+services:
+ cloudflare-ddns:
+ image: favonia/cloudflare-ddns:1
+ network_mode: host
+ restart: unless-stopped
+ user: "1000:1000"
+ read_only: true
+ cap_drop: [all]
+ security_opt: [no-new-privileges:true]
+ environment:
+ - CLOUDFLARE_API_TOKEN=${CLOUDFLARE_API_TOKEN:?}
+ - DOMAINS=${DOMAINS:?}
+ - PROXIED=false
+ - IP6_PROVIDER=none
diff --git a/blueprints/cloudflare-ddns/template.toml b/blueprints/cloudflare-ddns/template.toml
new file mode 100644
index 00000000..f40da5ad
--- /dev/null
+++ b/blueprints/cloudflare-ddns/template.toml
@@ -0,0 +1,9 @@
+variables = {}
+
+[config]
+domains = []
+mounts = []
+
+[config.env]
+CLOUDFLARE_API_TOKEN = ""
+DOMAINS = "example.org,www.example.org,example.io"
diff --git a/meta.json b/meta.json
index 8ed6fc81..51502273 100644
--- a/meta.json
+++ b/meta.json
@@ -1299,6 +1299,23 @@
"console"
]
},
+ {
+ "id": "cloudflare-ddns",
+ "name": "Cloudflare DDNS",
+ "version": "1.15.1",
+ "description": "A small, feature-rich, and robust Cloudflare DDNS updater.",
+ "logo": "cloudflare-ddns.svg",
+ "links": {
+ "github": "https://github.com/favonia/cloudflare-ddns",
+ "website": "https://github.com/favonia/cloudflare-ddns",
+ "docs": "https://github.com/favonia/cloudflare-ddns"
+ },
+ "tags": [
+ "cloud",
+ "networking",
+ "ddns"
+ ]
+ },
{
"id": "cloudflared",
"name": "Cloudflared",