A highly secure, zero-trust Cloudflare DNS GUI & DDNS updater with Action-Based MFA.
83
A self-hosted, highly secure GUI and Dynamic DNS (DDNS) updater for your Cloudflare zones. Built with Zero Trust principles in mind.
The most secure method to prevent your passwords from being logged in your terminal history is to use Docker Compose with a '.env' file.
API_TOKEN=your_cloudflare_restricted_api_token
PASSWORD=your_secure_master_password
services:
cloudflare-dns-gui:
image: mxlit/cloudflare-dns-gui:latest
container_name: cloudflare-dns-gui
ports:
- "3000:3000"
env_file:
- .env
volumes:
- ./data:/app/data
restart: unless-stopped
docker compose up -d
If you prefer a single command (Warning: your secrets will be saved in your terminal's history file), you can pass them via '-e' flags:
docker run -d \
--name cloudflare-dns-gui \
-p 3000:3000 \
-e API_TOKEN="your_cloudflare_restricted_api_token" \
-e PASSWORD="your_secure_master_password" \
-v /path/to/your/data:/app/data \
--restart unless-stopped \
mxlit/cloudflare-dns-gui:latest
API_TOKEN: Create this in Cloudflare. It only needs 'Zone.DNS' (Edit) permissions for your specific zones.PASSWORD: The master password to log into the web interface.⚠️ IMPORTANT PERMISSION NOTE: Because this container is hardened and runs as an unprivileged
nodeuser (UID 1000) instead ofroot, it cannot write to host directories owned byroot. If Docker creates the/path/to/your/datadirectory automatically, it will be owned byrootand the app will crash with anEACCESerror when saving MFA settings. To fix this, you must grant permissions on the host:sudo chown -R 1000:1000 /path/to/your/data
Content type
Image
Digest
sha256:c59becf20…
Size
53.1 MB
Last updated
about 2 months ago
docker pull mxlit/cloudflare-dns-gui