dstapp / docker-ddns

Easy-to-deploy dynamic DNS with Docker, Go and Bind9

self-hosted docker selfhosted dns ddns dynamic-dns

docker-ddns

Easy-to-deploy dynamic DNS with Docker, Go and Bind9

Features

  • Easy to deploy using Docker Compose
  • Uses a custom Bind9 configuration file for secure and flexible DDNS
  • Supports multiple domains and records
  • Sends update requests via a secure TLS connection
  • Provides a simple web interface for managing your domains and records

Prerequisites

  • A domain name and a registrar that supports dynamic DNS updates
  • A server running Docker
  • A Bind9 DNS server running on the same server as Docker

Installation

  1. Clone the repository:
git clone https://github.com/valiantlambda/docker-ddns.git
  1. Copy the bind9.conf file to your Bind9 configuration directory, typically /etc/bind/named.conf.local:
cp bind9.conf /etc/bind/named.conf.local
  1. Edit the bind9.conf file and replace the example.com domain with your own domain name.
  2. Edit the docker-compose.yaml file and replace the example.com domain with your own domain name.
  3. Start the Docker container:
docker-compose up -d

Usage

To add a new record, visit the web interface at https://your-server-ip:8080. Click on the "Add Record" button and enter the following information:

  • Domain: The domain name for the record.
  • Hostname: The hostname for the record.
  • IP Address: The IP address to associate with the record.
  • TTL: The time-to-live for the record, in seconds.

To update an existing record, simply edit the record in the web interface and click on the "Update Record" button.

To delete a record, click on the "Delete Record" button for the record you want to delete.

Security

The docker-ddns application uses a secure TLS connection to send update requests to the Bind9 DNS server. This ensures that the update requests are encrypted and cannot be intercepted or tampered with.

Troubleshooting

If you are having trouble getting docker-ddns to work, please check the following:

  • Make sure that your domain name is correctly configured in the bind9.conf file.
  • Make sure that your Bind9 DNS server is running on the same server as Docker.
  • Make sure that the Docker container is running and has access to the Bind9 DNS server.
  • Check the Docker container logs for any errors.

Contributing

Contributions are welcome! Please read the contributing guidelines before submitting a pull request.