Files
vim-ale/duckdns.sh
AJ ONeal 23100394ac ref(installerconf): rename config keys and add full URL support
Renames:
- github_repo → github_releases (back-compat kept)
- github_source → github_sources (back-compat kept)
- gitea_repo → gitea_releases (back-compat kept)

New keys:
- gitea_sources, gitlab_releases, gitlab_sources

All keys now accept either owner/repo shorthand or full URLs:
- github_releases = sharkdp/bat
- github_releases = https://github.com/sharkdp/bat
- gitea_releases = https://git.rootprojects.org/root/pathman

Defaults: github → github.com, gitlab → gitlab.com.
Gitea has no default (self-hosted only).

Updated all 73 releases.conf files from github_repo to github_releases.
2026-03-11 11:51:43 -06:00
..
2023-01-15 03:23:45 +00:00

title, homepage, tagline
title homepage tagline
DuckDNS.sh https://github.com/BeyondCodeBootcamp/DuckDNS.sh DuckDNS.sh: Dynamic DNS updater for https://duckdns.org. Works on all POSIX*ish* systems (Mac, Linux, Docker, BSD, etc).

To update or switch versions, run webi duckdns.sh@stable (or @v1.0.3, @beta, etc).

Files

These are the files / directories that are created and/or modified with this install:

~/.config/envman/PATH.env
~/.local/bin/duckdns.sh
~/.config/duckdns.sh/

Cheat Sheet

DuckDNS.sh (duckdns.sh) is the best Dynamic DNS client to date. Not only does it have some nice sub commands and work on all Posix systems, but it can also register itself with your system launcher - systemd on Linux and launchctl on macOS.

Paste your token from duckdns.org to start.

# duckdns.sh auth <subdomain>
# duckdns.sh auth foobar # do NOT include '.duckdns.org'

Set to launch on login (Mac) or on boot (Linux)

# duckdns.sh enable <subdomain>
duckdns.sh enable foobar

Usage

Use -v to filter out all matches so that only non-matches are left.

USAGE
    duckdns.sh <subcommand> [arguments...]

SUBCOMMANDS
    myip                         - show this device's ip(s)
    ip <subdomain>               - show subdomain's ip(s)

    list                         - show subdomains
    auth <subdomain>             - add Duck DNS token
    update <subdomain>           - update subdomain to device ip
    set <subdomain> <ip> [ipv6]  - set ipv4 and/or ipv6 explicitly
    clear <subdomain>            - unset ip(s)
    run <subdomain>              - check ip and update every 5m
    enable <subdomain>           - enable on boot (Linux) or login (macOS)
    disable <subdomain>          - disable on boot or login

    help                         - show this menu
    version                      - show version and exit

How to check your current IP address

duckdns.sh myip

This is the same as

curl -fsSL 'https://api.ipify.org?format=text'
curl -fsSL 'https://api64.ipify.org?format=text'

How to check your domain's current DNS records

duckdns.sh ip foobar

This is the same as

dig +short A foobar.duckdns.org
dig +short AAAA foobar.duckdns.org

How to manually set your domain's DNS records

duckdns.sh set foobar 127.0.0.1 ::1