Skip to content

Dynamic DNS service based on Scaleway DNS

License

Notifications You must be signed in to change notification settings

aerialls/scaleway-ddns

Repository files navigation

scaleway-ddns

Build status Go report card Go version

Dynamic DNS service based on Scaleway DNS.

Setup

From binaries

Download the most suitable binary from the releases tab. Builds are available for Linux, macOS and Windows.

tar xf scaleway-ddns_X.X.X_linux_amd64.tar.gz
./scaleway-ddns_X.X.X_linux_amd64/scaleway-ddns

Using the docker image

docker run --rm -d  --name scaleway-ddns -v `pwd`:/config aerialls/scaleway-ddns:latest --config /config/scaleway-ddns.yml

Usage

./scaleway-ddns --config /etc/scaleway-ddns/scaleway-ddns.yml --dry-run --verbose

Parameters

  • --config - Specify the location of the configuration file (required)
  • --dry-run - Do not perform update actions (default false)
  • --verbose - Display debug messages (default false)
  • --help - Display the help message block

Configuration

scaleway:
  project_id: __PROJECT_ID__
  access_key: __ACCESS_KEY__
  secret_key: __SECRET_KEY__

domain:
  name: contoso.com
  record: public
  ttl: 60

interval: 300

ipv4:
  enabled: true
  url: https://api-ipv4.ip.sb/ip

ipv6:
  enabled: true
  url: https://api-ipv6.ip.sb/ip

telegram:
  enabled: true
  token: __TELEGRAM_TOKEN__
  chat_id: __TELEGRAM_CHAT_ID__

Note: IPv6 is disabled by default.

Telegram

It's possible to send a Telegram message (in markdown format) when the DNS record changes.

telegram:
  enabled: true
  token: __TELEGRAM_TOKEN__
  chat_id: __TELEGRAM_CHAT_ID__
  template: DNS record *{{ .RecordName }}.{{ .Domain }}* has been updated

The following variables can be used in the template message.

  • RecordName
  • RecordType
  • Domain
  • PreviousIP
  • NewIP