mirror of
https://github.com/mje-nz/zerotier-dns.git
synced 2024-05-11 05:55:15 +00:00
Reformatting README with new Docker instructions
This commit is contained in:
55
README.md
55
README.md
@ -6,33 +6,72 @@ ztDNS is a dedicated DNS server for a ZeroTier virtual network.
|
||||
|
||||
ztDNS pulls device names from Zerotier and makes them available by name using either IPv4 assigned addresses or IPv6 assigned addresses.
|
||||
|
||||
## Installing
|
||||
## Getting Started
|
||||
|
||||
1. First use ```go get``` to install the latest version, or download a precompiled relesase from [https://github.com/uxbh/ztdns/releases](https://github.com/uxbh/ztdns/releases)
|
||||
### Traditional
|
||||
|
||||
If you prefer the traditional installation route:
|
||||
|
||||
#### Requirements
|
||||
|
||||
* [Go tools](https://golang.org/doc/install) - if not using a precompiled release
|
||||
|
||||
#### Install
|
||||
|
||||
1. First use ```go get``` to install the latest version, or download a precompiled release from [https://github.com/uxbh/ztdns/releases](https://github.com/uxbh/ztdns/releases)
|
||||
```
|
||||
go get -u github.com/uxbh/ztdns/
|
||||
go build
|
||||
```
|
||||
2. **If you are running on linux**, run ```sudo setcap cap_net_bind_service=+eip ./ztdns``` to enable non-root users to bind privileged ports.
|
||||
2. **If you are running on Linux**, run `sudo setcap cap_net_bind_service=+eip ./ztdns` to enable non-root users to bind privileged ports. On other operating systems, the program may need to be run as an administrator.
|
||||
3. Add a new API access token to your user under the account tab at [https://my.zerotier.com](https://my.zerotier.com/).
|
||||
If you do not want to store your API access token in the config file you can also run the
|
||||
server with the ```env``` command: ```env 'ZTDNS_ZT.API=<<APIToken>>' ./ztdns server```
|
||||
4. Run ```ztdns mkconfig``` to generate a sample config file.
|
||||
5. Add your API access token and Network ID, and interface name to the config.
|
||||
6. Start the server using ```ztdns server```.
|
||||
If you do not want to store your API access token in the config file you can also run the
|
||||
server with the `env` command: `env 'ZTDNS_ZT.API=<<APIToken>>' ./ztdns server`
|
||||
4. Run `ztdns mkconfig` to generate a sample config file.
|
||||
5. Add your API access token, Network ID, and interface name to the config.
|
||||
6. Start the server using `ztdns server`.
|
||||
7. Add a DNS entry in your ZeroTier members pointing to the member running ztdns.
|
||||
|
||||
Once the server is up and running you will be able to resolve names based on the short name and suffix defined in the config file (zt by default) from ZeroTier.
|
||||
|
||||
```
|
||||
dig @serveraddress member.zt A
|
||||
dig @serveraddress member.zt AAAA
|
||||
ping member.zt
|
||||
```
|
||||
|
||||
### Docker
|
||||
|
||||
If you prefer to run the server with Docker:
|
||||
|
||||
#### Requirements
|
||||
|
||||
* [Docker](https://docs.docker.com/install/)
|
||||
* [Docker Compose](https://docs.docker.com/compose/install/)
|
||||
|
||||
#### Install
|
||||
|
||||
1. Clone or download this repo
|
||||
1. Create a `.ztdns.toml` file in the main directory by copying the `.ztdns.toml.example` file.
|
||||
1. Add your API access token, Network ID, and interface name to the newly created config file.
|
||||
1. By default it will be bound to port 5356 on the host, that can be changed to standard DNS port 53 by modifying the `docker-compose.yml` file. *You must be running Docker with root permissions in order to bind the privileged port properly.*
|
||||
1. Run `docker-compose up` to start the server.
|
||||
1. Add a DNS entry in your ZeroTier members pointing to the member running ztdns.
|
||||
|
||||
Once the server is up and running you will be able to resolve names based on the short name and suffix defined in the config file (zt by default) from ZeroTier.
|
||||
|
||||
```
|
||||
# remove -p 5356 if running on port 53
|
||||
dig @127.0.0.1 -p 5356 member.zt A
|
||||
dig @127.0.0.1 -p 5356 member.zt AAAA
|
||||
ping member.zt
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
||||
Thanks for considering contributing to the project. We welcome contributions, issues or requests from anyone, and are greatful for any help. Problems or questions? Feel free to open an issue on GitHub.
|
||||
|
||||
Please make sure your contributions adhere to the following guidelines:
|
||||
|
||||
* Code must adhere to the official Go [formating](https://golang.org/doc/effective_go.html#formatting) guidelines (i.e. uses [gofmt](https://golang.org/cmd/gofmt/)).
|
||||
* Pull requests need to be based on and opened against the `master` branch.
|
||||
|
Reference in New Issue
Block a user