https://github.com/erning/dldns
Dynamic DNS for Linode.
https://github.com/erning/dldns
Last synced: about 1 month ago
JSON representation
Dynamic DNS for Linode.
- Host: GitHub
- URL: https://github.com/erning/dldns
- Owner: erning
- Created: 2021-12-01T09:12:44.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2025-08-06T09:24:37.000Z (11 months ago)
- Last Synced: 2025-08-06T11:25:04.795Z (11 months ago)
- Language: Go
- Homepage:
- Size: 17.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# dldns
Dynamic DNS client for Linode.
This program detects the local IP address and automatically updates the corresponding DNS record if it changes. IPv6 is also supported.
## Supported Devices
Pre-built binaries are available in [Releases](https://github.com/erning/dldns/releases) for the following architectures:
| Binary | Architecture | Devices |
|--------|--------------|---------|
| `dldns-amd64` | x86_64 | Generic x86_64 Linux, OpenWrt x86 |
| `dldns-mips64` | MIPS64 (big-endian, softfloat) | Ubiquiti ER4, ERLite, USG |
| `dldns-mipsle` | MIPS32 (little-endian, softfloat) | Ubiquiti ERX |
| `dldns-arm64` | ARM64 | GL.iNet GL-MT3000, GL-MT2500, GL-BE3600, GL-MT3600BE |
### Device Architecture Reference
| Device | CPU | Go Build Flags |
|--------|-----|----------------|
| **Ubiquiti ER4** | Cavium Octeon MIPS64 | `GOARCH=mips64 GOMIPS64=softfloat` |
| **Ubiquiti ERLite** | Cavium Octeon MIPS64 | `GOARCH=mips64 GOMIPS64=softfloat` |
| **Ubiquiti USG** | Cavium Octeon MIPS64 | `GOARCH=mips64 GOMIPS64=softfloat` |
| **Ubiquiti ERX** | MediaTek MT7621 MIPS | `GOARCH=mipsle GOMIPS=softfloat` |
| **GL.iNet GL-MT3000** | MediaTek MT7981B ARM Cortex-A53 | `GOARCH=arm64` |
| **GL.iNet GL-MT2500** | MediaTek MT7981B ARM Cortex-A53 | `GOARCH=arm64` |
| **GL.iNet GL-BE3600** | MediaTek ARM Cortex-A53 | `GOARCH=arm64` |
| **GL.iNet GL-MT3600BE** | MediaTek Quad A53 | `GOARCH=arm64` |
## Usage
```sh
dldns -token -domain -4 -6 [-v]
```
| Flag | Description |
|------|-------------|
| `-token` | Linode API token (required) |
| `-domain` | Linode domain ID (required) |
| `-4` | Enable IPv4 update |
| `-6` | Enable IPv6 update |
| `-v` | Verbose mode |
| `` | Subdomain name to update (required) |
At least one of `-4` or `-6` must be specified.
## Quick Start
Download the pre-built binary for your device:
```sh
# Example for Ubiquiti ER4/ERLite/USG
curl -L -o dldns https://github.com/erning/dldns/releases/latest/download/dldns-mips64
chmod +x dldns
scp dldns user@router:
```
## Building from Source
```sh
git clone https://github.com/erning/dldns
cd dldns
# For MIPS64 (ER4, ERLite, USG)
CGO_ENABLED=0 GOOS=linux GOARCH=mips64 GOMIPS64=softfloat go build -ldflags "-s -w"
# For MIPS32 little-endian (ERX)
CGO_ENABLED=0 GOOS=linux GOARCH=mipsle GOMIPS=softfloat go build -ldflags "-s -w"
# For ARM64 (GL.iNet devices)
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags "-s -w"
# For x86_64
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w"
```
## License
MIT