https://github.com/mario-campos/dyndnsd
Dynamic DNS Daemon for OpenBSD
https://github.com/mario-campos/dyndnsd
dns dynamic-dns-client openbsd
Last synced: about 2 months ago
JSON representation
Dynamic DNS Daemon for OpenBSD
- Host: GitHub
- URL: https://github.com/mario-campos/dyndnsd
- Owner: mario-campos
- License: bsd-3-clause
- Created: 2017-04-08T19:13:49.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2025-09-29T13:55:58.000Z (6 months ago)
- Last Synced: 2025-11-16T04:01:46.669Z (4 months ago)
- Topics: dns, dynamic-dns-client, openbsd
- Language: C
- Homepage: https://mario-campos.github.io/software/dyndnsd
- Size: 306 KB
- Stars: 22
- Watchers: 5
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-openbsd - dyndnsd - Dynamic DNS Daemon for OpenBSD (Third Party repositories / Interviews with OpenBSD developers)
- awesome-openbsd - dyndnsd - Dynamic DNS Daemon for OpenBSD (Third Party repositories / Related projects)
README
# dyndnsd [](https://github.com/mario-campos/dyndnsd/actions/workflows/c.yml)
dyndnsd is a Dynamic-DNS daemon for OpenBSD. It is minimal, lightweight, intuitive, and generic/extensible enough to support any Dynamic-DNS provider.
## Example
First, create the configuration file, */etc/dyndnsd.conf*:
```
run "curl https://www.duckdns.org/update?domains=${DYNDNSD_FQDN}&token=sometoken&ip=${DYNDNSD_IPADDR}"
interface em0 {
domain www.example.com
}
interface em1 {
domain ftp.example.com
}
```
Test the configuration file:
```shell
$ dyndnsd -n
$
```
Then, start the daemon:
```shell
$ dyndnsd
$
```
## Build
dyndnsd has no external dependencies—it's only dependency is libevent, but that's included in OpenBSD base—on so compiling dyndnsd is straightforward:
```shell
make
```
## TODO
### Features
- [x] route(4)
- [x] kqueue(2)
- [x] pledge(2)
- [x] drop privilege
### Code Quality
- [ ] Fuzz Testing
- [x] Valgrind
- [x] cppcheck