scaleway-ddns (v2.1.1)
Simple Scaleway dynamic DNS service by API written in Crystal.
:rocket: Suggestions for new improvements are welcome in the issue tracker.
Installation and Usage
Docker
You can run scaleway-ddns
using Docker or Docker Compose. Replace example values with your actual configuration.
Docker Hub
Run directly from Docker Hub:
docker run -d \
--name scaleway-ddns \
-e SCW_SECRET_KEY="your-scaleway-secret-key" \
-e IDLE_MINUTES="10" \
-e DOMAIN_LIST="myfirstdomain.com,anotherone.com" \
-e ENABLE_IPV4="true" \
-e ENABLE_IPV6="false" \
d1ceward/scaleway-ddns:latest
GitHub Packages
Run from GitHub Container Registry:
docker run -d \
--name scaleway-ddns \
-e SCW_SECRET_KEY="your-scaleway-secret-key" \
-e IDLE_MINUTES="10" \
-e DOMAIN_LIST="myfirstdomain.com,anotherone.com" \
-e ENABLE_IPV4="true" \
-e ENABLE_IPV6="false" \
ghcr.io/d1ceward/scaleway-ddns:latest
Docker Compose
Recommended for multi-container setups or easier management:
services:
scaleway_ddns:
image: d1ceward/scaleway-ddns:latest # Use Docker Hub image
# Or use GitHub Packages:
# image: ghcr.io/d1ceward/scaleway-ddns:latest
restart: unless-stopped
environment:
SCW_SECRET_KEY: your-scaleway-secret-key
IDLE_MINUTES: 10
DOMAIN_LIST: myfirstdomain.com,anotherone.com
ENABLE_IPV4: true # Optional, enables IPv4 address updates (default: true)
ENABLE_IPV6: false # Optional, enables IPv6 address updates (default: false)
Environment Variables:
SCW_SECRET_KEY
(required): Your Scaleway API secret key.IDLE_MINUTES
: Minutes between IP checks (default: 60).DOMAIN_LIST
: Comma-separated domains to update.ENABLE_IPV4
: Set totrue
orfalse
to enable/disable IPv4 updates.ENABLE_IPV6
: Set totrue
orfalse
to enable/disable IPv6 updates.
Linux
Download the executable:
wget --no-verbose -O scaleway-ddns https://github.com/d1ceward/scaleway-ddns/releases/download/v2.1.1/scaleway-ddns-linux-amd64
Make it executable:
chmod +x scaleway-ddns
Run the service:
./scaleway-ddns run
Documentation available here : https://d1ceward.github.io/scaleway-ddns/
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/d1ceward/scaleway-ddns. By contributing you agree to abide by the Code of Merit.
- Fork it (https://github.com/d1ceward/scaleway-ddns/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Development building and running
- Install corresponding version of Crystal lang (cf:
.crystal-version
file) - Install Crystal dependencies with
shards install
- Build with
shards build
The newly created binary should be at bin/scaleway-ddns
Running tests
crystal spec
Environment Variables
SCW_SECRET_KEY
(required): Secret key from Scaleway required for IP update.IDLE_MINUTES
: Number of minutes of inactivity between IP checks (default: 60, min: 1, max: 1440).DOMAIN_LIST
: Comma-separated list of domains to update (e.g.,example.com,another.com
).ENABLE_IPV4
: Enables IPv4 address updates. Set tofalse
to disable (default:true
).ENABLE_IPV6
: Enables IPv6 address updates. Set totrue
to enable (default:false
).
Contributors
- d1ceward - creator and maintainer