README.md 1.71 KB
Newer Older
Bernhard Geier's avatar
Bernhard Geier committed
1
2
# Install nsupdate.info on Debian with Ansible

Citronalco's avatar
Citronalco committed
3
This Playbook installs everything you need to run your own dynamic DNS service:
Bernhard Geier's avatar
Bernhard Geier committed
4
5
6
7
8
9
10
11
12
13
* nsupdate.info as main service
* PostgreSQL as database
* Nginx with uwsgi as webserver
* Bind9 for DNS
* certbot for TLS certificates
* Postfix as local mail relay

I found the installation of nsupdate.info pretty hard and the documentation too brief, so I used Ansible to document my experiences. Study, share, improve :)

#### Requirements:
Bernhard Geier's avatar
Bernhard Geier committed
14
* Server with Debian 10 or 11 and fixed IPv4+IPv6 addresses (e.g. `12.34.56.78` and `2a03:1000:53:123::12`)
Bernhard Geier's avatar
Bernhard Geier committed
15
16
17
18
19
20
21
22
23
24
* A domain (e.g. `example.com`)
* Some DNS entries: If you own the domain "example.com" and want to run a dynamic DNS service on "dyn.example.com" then set this entries in the nameserver of "example.com":
  * A and AAAA records for this server:
    * `dyn.example.com A 12.34.56.78`
    * `dyn.example.com AAAA 2a03:1000:53:123::12`
  * NS record to this server:
    * `dyn.example.com NS dyn.example.com`
  * If you use a secondary DNS server then additionally a NS rercord pointing to that server:
    * `dyn.example.com NS ljhgl2389ukjdhkwhd239uesadswd.free.ns.buddyns.com`

Citronalco's avatar
Citronalco committed
25
#### Configuration:
Bernhard Geier's avatar
Bernhard Geier committed
26
27
See `host_vars/dyn.example.com`

Bernhard Geier's avatar
Bernhard Geier committed
28
29
30
31
32
#### Usage:
1. Install Ansible (`apt-get install ansible`)
1. Make sure you can log in on the server as root, without having to type in a password. (Use SSH Public Key authentication.)
1. Edit the file `hosts` and set your server's hostname and IP address
1. In directory `host_vars` rename the file `dyn.example.com` to your server's hostname and set your preferences in that file
Citronalco's avatar
Citronalco committed
33
1. Execute `ansible-playbook -i hosts nsupdate.yml` to start the installation. You can use the option  "--diff" to see what Ansible does on your server.