How to install duckdns and cloudflare plugins

The problem I’m having:

how to install duckdns and cloudflare plugins.

How I installed and ran Caddy

I have a lxc on proxmox for caddy with 1vcpu, 512mib ram, 8gib disk

i ran :
apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf ‘https://dl.cloudsmith.io/public/caddy/stable/gpg.key’ | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf ‘https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt’ | tee /etc/apt/sources.list.d/caddy-stable.list
chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg
chmod o+r /etc/apt/sources.list.d/caddy-stable.list
apt update
apt install caddy

This just installs default caddy without other plugins
I don’t know what to do next I see people do xcaddy and download from the webserver but I’m all cli so I don’t have a browser. Also I heard I can do uhh do caddy add-packages

This seems way to complicated
With xcaddy I have to download golang and xcaddy and compile it on my machine but I don’t got enough ram so it going cause an OOM
The option I want to go is curl it
I also saw this option
dpkg-divert --divert /usr/bin/caddy.default --rename /usr/bin/caddy
mv ./caddy /usr/bin/caddy.custom
update-alternatives --install /usr/bin/caddy caddy /usr/bin/caddy.default 10
update-alternatives --install /usr/bin/caddy caddy /usr/bin/caddy.custom 50
systemctl restart caddy

I plan to go this after my default install

curl -fsSL -o caddy ‘https://caddyserver.com/api/download?os=linux&arch=amd64&p=github.com/caddy-dns/duckdns&p=github.com/caddy-dns/cloudflare
chmod +x caddy
./caddy list-modules | grep -E ‘duckdns|cloudflare’
dpkg-divert --divert /usr/bin/caddy.default --rename /usr/bin/caddy
mv ./caddy /usr/bin/caddy.custom
update-alternatives --install /usr/bin/caddy caddy /usr/bin/caddy.default 10
update-alternatives --install /usr/bin/caddy caddy /usr/bin/caddy.custom 50
systemctl restart caddy

is this correct?

also what does non standard This module does not come with Caddy. It can be added by using xcaddy or our download page. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. do this mean it not official and is it safe to do so?

also to create env do i
nano /etc/caddy/caddy.env
DUCKDNS=your-actual-token-here
chmod 600 /etc/caddy/caddy.env
systemctl edit caddy
[Service]
EnvironmentFile=/etc/caddy/caddy.env
systemctl daemon-reload
nano /etc/caddy/Caddyfile
{
acme_dns duckdns {env.DUCKDNS_API_TOKEN}
}

I put this on top of my caddyfile, is it right?

System environment:

debian 13 lxc, amd64

Your plan is mostly fine. Non-standard just means the module is not shipped or maintained by the Caddy project directly. It can still be fine but you are trusting the maintainer of said module.

The main fix is that your env var name must match your Caddyfile.

Use:

DUCKDNS_API_TOKEN=your-token-here

Then:

{
  acme_dns duckdns {env.DUCKDNS_API_TOKEN}
}

Your custom binary approach is okay but verify before replacing the service binary:

./caddy list-modules | grep -E 'duckdns|cloudflare'
./caddy version

After replacing/restarting:

systemctl restart caddy
caddy list-modules | grep -E 'duckdns|cloudflare'

Also I would suggest using a least-privilege Cloudflare API token, not a global API key.