Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dappnode/dyndns-server
A Dynamic DNS server implementation for DAppNode
https://github.com/dappnode/dyndns-server
Last synced: 9 days ago
JSON representation
A Dynamic DNS server implementation for DAppNode
- Host: GitHub
- URL: https://github.com/dappnode/dyndns-server
- Owner: dappnode
- License: gpl-3.0
- Created: 2018-10-12T15:52:29.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2022-12-10T16:30:57.000Z (about 2 years ago)
- Last Synced: 2023-03-10T04:11:39.261Z (almost 2 years ago)
- Language: JavaScript
- Size: 203 KB
- Stars: 3
- Watchers: 8
- Forks: 4
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# dyndns-server
A Dynamic DNS server implementation for DAppNode.
In most of the cases, nodes running at home are using a dynamic IP provided by the ISP. Clients configured to connect to a provided IP will eventually lose connectivity to the DAppNode because its IP will change. At the moment we don't have any truly distributed, cross-platform and user friendly alternative to solve this, so we make use of an optional centralized service (which can be easily replicated) until we find a proper solution.
## Installation
Configure variables in docker-compose.yml to fit your needs.
Bind server can be updated remotely with a key using RFC 2136 standard. Feature is enabled by specifing `KEY_NAME` and `KEY_PATH` envirnoment variables. Keyfile can be generated with `tsig-keygen -a hmac-sha512 $KEY_NAME > $KEY_PATH`.
Then the services can be deployed using docker compose:
```
$ docker-compose build
$ docker-compose up -d
```## Usage
The server expects the following parameters in a GET call from the client:
`address` Public Ethereum address generated in the client.
`timestamp` Current UNIX timestamp. If the timestamp is not under some tolerance window (by default +/- 10min.) the request is not valid.
`sig` Signature of the timestamp by the address previously provided.
## Client request example
```
curl https://ns.dappnode.io/?address=0x8bb3A7F48F8c684EEF5BbE56c4c49c3Df636cd02×tamp=1537958488&sig=0x97e9c5bfb4e46f73b0ef570a69f5fb39c6576b456506f4015bd0b64a4cd62a6b7a5278cbd3e070c4ce3177a8fbbe72801680b10c1384a6dcc8c369ec3f6ceeb31b
```