DDNS Bridge is a lightweight Go application that serves as an interface for updating DNS records via a simple URL. It supports providers with a web API, allowing dynamic DNS updates with minimal effort.
Features:
- Easy-to-use HTTP endpoint for DNS updates
- Supports multiple DNS providers with API integration
- Secure and efficient implementation in Go
Perfect for automating DDNS updates on your own terms!
We recommend using DDNS Bridge via Docker
docker-compose.yaml
User Authentication is secured by a random generated secret on startup. The environment variable SECRET_KEY
provides an option to use your own secret that remains valid across restarts.
If the environment variable REGISTER_KEY
is set, it is necessary to specify the value when creating new users
By default, all data in an SQLite database at /app/data/db.sqlite
.
Optionally, an external MySQL (MariaDB) database can be used by setting the environment variables:
DB_HOST
(MySQL host_ip:port)DB_USER
(MySQL username)DB_PASS
(MySQL password)DB_NAME
(MySQL databasename)
Creates a new user.
Parameters:
Name | Required | Type | Description |
---|---|---|---|
key |
optional | string | Value of the environment variable REGISTER_KEY |
Body (JSON):
Name | Required | Type | Description |
---|---|---|---|
username |
required | string | - |
password |
required | string | - |
Return the token of the provided user.
Body (JSON):
Name | Required | Type | Description |
---|---|---|---|
username |
required | string | - |
password |
required | string | - |
Requires Token Header
Return information of the signed in user.
Requires Token Header
List information of webhooks.
Parameters:
Name | Required | Type | Description |
---|---|---|---|
webhook |
optional | string | Limit the result to specified webhook |
Requires Token Header
Creates a new webhook for the signed in user.
Body (JSON):
Name | Required | Type | Description |
---|---|---|---|
name |
required | string | Unique name of the new webhook |
Requires Token Header
Removes webhook with the specified webhook
.
Parameters:
Name | Required | Type | Description |
---|---|---|---|
webhook |
required | string | ID of the webhook |
Requires Token Header
List task
information of the webhook
.
Parameters:
Name | Required | Type | Description |
---|---|---|---|
webhook |
required | string | ID of the webhook |
task |
optional | string | Limit the result to specified task |
Requires Token Header
Create a new task
under the specified webhook
Parameters:
Name | Required | Type | Description |
---|---|---|---|
webhook |
required | string | ID of the webhook |
Body (JSON):
Name | Required | Type | Description |
---|---|---|---|
name |
required | string | Unique name of the new task |
service |
required | string | Service provider identifier |
service_params |
required | object | Service specific parameters |
Requires Token Header
Removes the specified task
Parameters:
Name | Required | Type | Description |
---|---|---|---|
webhook |
required | string | ID of the webhook |
task |
required | string | ID of the task |
Updates the webhook specified by its token
Parameters:
Name | Required | Type | Description |
---|---|---|---|
token |
required | string | Update token of desired the webhook |
ipv4 |
optional | string | At least one of ipv4 or ipv6 needs to be provided |
ipv6 |
optional | string | At least one of ipv4 or ipv6 needs to be provided |