All Projects → pboehm → Ddns

pboehm / Ddns

Licence: mit
A self-hosted Dynamic DNS solution similar to DynDNS or NO-IP

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Ddns

Jotoba
A free online, self-hostable, multilang Japanese dictionary.
Stars: ✭ 87 (-76.68%)
Mutual labels:  webservice
xsd-reader
Pure PHP XSD Reader (XML Schema)
Stars: ✭ 45 (-87.94%)
Mutual labels:  webservice
httpcache
An HTTP server that proxies all requests to other HTTP servers and this servers caches all incoming responses objects
Stars: ✭ 23 (-93.83%)
Mutual labels:  webservice
ip2country
fast ip -> country lookup using asn database
Stars: ✭ 48 (-87.13%)
Mutual labels:  webservice
lachesis
👨‍💻 A work-in-progress web services mass scanner written in Rust
Stars: ✭ 55 (-85.25%)
Mutual labels:  webservice
pinipig
🚀 Performant webservice framework
Stars: ✭ 25 (-93.3%)
Mutual labels:  webservice
Angular-Springboot
E- Commerce Application Built Integrating Angular and Spring Web Services
Stars: ✭ 58 (-84.45%)
Mutual labels:  webservice
Ilruntime hotgames
基于ILRuntime的热更新能力实现的可以直接使用的框架,友情赠送C# WebService + WebSocketServer服务器端。
Stars: ✭ 293 (-21.45%)
Mutual labels:  webservice
pretend
A decorator based http webservice client written in typescript
Stars: ✭ 34 (-90.88%)
Mutual labels:  webservice
openmrs-module-webservices.rest
Provides RESTful web services for OpenMRS
Stars: ✭ 68 (-81.77%)
Mutual labels:  webservice
go-12factor-example
Example the 12factor app using golang
Stars: ✭ 20 (-94.64%)
Mutual labels:  webservice
MAQS
Magenic's automation quick start
Stars: ✭ 46 (-87.67%)
Mutual labels:  webservice
httoop
HTTOOP - a fully object oriented HTTP protocol library written in python
Stars: ✭ 15 (-95.98%)
Mutual labels:  webservice
Polyfiller
Never worry about polyfills again.
Stars: ✭ 114 (-69.44%)
Mutual labels:  webservice
simpleadmin
Create admin dashboards for Web / Mobile / API applications
Stars: ✭ 85 (-77.21%)
Mutual labels:  webservice
convey
CSV processing and web related data types mutual conversion
Stars: ✭ 16 (-95.71%)
Mutual labels:  webservice
EasyRetro
An Easy to use retrofit based network/api call extention for android
Stars: ✭ 16 (-95.71%)
Mutual labels:  webservice
Cppwebframework
​The C++ Web Framework (CWF) is a MVC web framework, Open Source, under MIT License, using C++ with Qt to be used in the development of web applications.
Stars: ✭ 348 (-6.7%)
Mutual labels:  webservice
Hunt Framework
A Web framework for D Programming Language. Full-stack high-performance.
Stars: ✭ 256 (-31.37%)
Mutual labels:  webservice
correios-java-sdk
Correios Java SDK
Stars: ✭ 28 (-92.49%)
Mutual labels:  webservice

ddns - Dynamic DNS

CircleCI Docker Image Size (tag) Docker Pulls GitHub

A self-hosted Dynamic DNS solution similar to DynDNS or NO-IP.

You can use a hosted version at ddns.pboehm.de where you can register a host under the d.pboehm.de domain (e.g test.d.pboehm.de).

Recent Changes

ddns has been fully restructured and now uses the PowerDNS Remote Backend instead of the Pipe Backend, which is far easier to deploy. It now serves both the frontend and the backend over HTTP using different ports.

The old ddns source code can be found at the legacy tag.

How can I update my IP if it changes?

ddns is built around a small webservice, so that you can update your IP address simply by calling an URL periodically through curl. Hosts that haven't been updated for 10 days will be automatically removed. This can be configured in your own instance.

An API similar to DynDNS/NO-IP has not been implemented yet.

Self-Hosting

Requirements

  • A custom domain where the registrar allows setting NS records for subdomains. This is important because not all DNS providers support this.
  • A server with docker and docker-compose installed
  • The following ports should be opened in the firewall:
    • 53/udp
    • 80/tcp
    • 443/tcp

DNS-Setup

For the domain you want to use with ddns (example.net in the following sections, please adjust this to your domain) you have to create the following two DNS records:

  • ddns.example.net as a CNAME or A/AAAA record pointing to the server ddns will be running on. This record will be used for accessing the ddns frontend in your browser or via curl. It is also the target for the corresponding NS record.
  • d.example.net as an NS record pointing to the previously created ddns.example.net record. This will delegate all subdomains under d.example.net to the PowerDNS server running on ddns.example.net.

ddns-Setup

The setup is now automated using docker-compose and only some customization has to be made in a docker-compose.override.yml file (a sample is available here).

Configuring the Setup

The setup included in this repository contains all the components described above and uses caddy as a web server, because it provides automatic HTTPS using Lets Encrypt.

git clone [email protected]:pboehm/ddns.git
cd ddns/docker
cp docker-compose.override.yml.sample docker-compose.override.yml

Please adjust the settings in docker-compose.override.yml marked with the #<<< .... comments as follows:

  • adjust the domain part in lines marked with # <<< ADJUST DOMAIN according to your DNS-Setup
  • insert your email address in lines marked with # <<< INSERT EMAIL which is required for getting certificates from Lets Encrypt

Finally execute the following docker-compose command, which creates 4 containers in detached mode which are also started automatically after reboot. For updating an existing installation use the same command because it automatically rebuilds the containers.

docker-compose --project-name ddns up -d --build
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].