Sign inSign up

anujdatar/duckdns

By anujdatar

•Updated almost 3 years ago

Docker container for DuckDNS, works with docker secrets, on ARM and x86

Image
0

8.3K

anujdatar/duckdns repository overview

⁠DuckDNS Docker

GitHub⁠

Update IP on DuckDNS periodically. Works with docker secrets. Tested on amd64, armv7 and arm64.

Uses Alpine Linux for a minimal footprint. Uses a cronjob to run the standard DuckDNS curl script using no external dependencies.

Container packages available from Docker Hub and Github Container Registry (ghcr.io)

  • Docker Hub Image: anujdatar/duckdns
  • GHCR Image: ghcr.io/anujdatar/duckdns

⁠Parameters / Environment Variables

#ParameterDefaultNotesDescription
1FREQUENCY5OPTIONALhow often you want to update IP on DuckDNS (default = every 5 minutes)
2SUBDOMAINS-REQUIREDyour registered DuckDNS subdomains. Multiple comma separated subdomains allowed, no spaces.
3TOKEN-REQUIREDDuckDNS token
4TZUTCOPTIONALtimezone so logs can be in local tz, instead of UTC

⁠Usage

⁠Docker cli
docker run -d \
  -e SUBDOMAINS=<your-comma-separated-subdomains> \
  -e TOKEN=<your-duckdns-token> \
  -e TZ=America/New_York \
  --restart unless-stopped \
  --name duckdns \
  ghcr.io/anujdatar/duckdns
⁠docker-compose
version: "3"
services:
  duckdns:
    image: ghcr.io/anujdatar/duckdns
    container_name: duckdns
    restart: unless-stopped
    environment:
      - SUBDOMAINS=<your-comma-separated-subdomains>
      - TOKEN=<your-duckdns-token>
      - TZ=America/New_York
      - FREQUENCY=1  # OPTIONAL, default is 5
⁠using docker-compose and docker secrets

In case you plan to commit your docker-compose files to repos and wish to keep tokens/domains secure

version: "3"
services:
  testduckdns:
    image: ghcr.io/anujdatar/duckdns
    container_name: duckdns
    restart: unless-stopped
    environment:
      - SUBDOMAINS_FILE=/run/secrets/duckdns_subdomains
      - TOKEN_FILE=/run/secrets/duckdns_token
      - TZ=America/New_York
      - FREQUENCY=1  # OPTIONAL, default is 5
    secrets:
      - duckdns_subdomains
      - duckdns_token

secrets:
  duckdns_subdomains:
    file: duckdns_subdomains.txt
  duckdns_token:
    file: duckdns_token.txt

Your secret files should just be plain text strings containing subdomains/tokens

⁠duckdns_subdomains.txt
subdomain1,subdomain2
⁠duckdns_token.txt
your_duckdns_token

⁠Building

docker build -t duckdns .

Tag summary

Content type

Image

Digest

sha256:2f4352a08…

Size

9.2 MB

Last updated

almost 3 years ago

docker pull anujdatar/duckdns