diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..e8ef95d --- /dev/null +++ b/README.md @@ -0,0 +1,123 @@ +[![Coverity Status](https://img.shields.io/coverity/scan/knot-dns.svg)](https://scan.coverity.com/projects/knot-dns) +[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/knot-dns.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:knot-dns) +[![Documentation Status](https://readthedocs.org/projects/knot/badge/?version=master)](https://knot.readthedocs.io/en/master/) + +# Requirements + +[doc/requirements.rst](doc/requirements.rst) + +# Installation + +[doc/installation.rst](doc/installation.rst) + +## 1. Install prerequisites + +### Debian based distributions + +#### Update the system: +```bash +sudo apt-get update +sudo apt-get upgrade +``` + +#### Install prerequisites: +```bash +sudo apt-get install \ + libtool autoconf automake make pkg-config liburcu-dev libgnutls28-dev libedit-dev liblmdb-dev +``` + +#### Install optional packages: +```bash +sudo apt-get install \ + libcap-ng-dev libsystemd-dev libidn2-0-dev libprotobuf-c-dev protobuf-c-compiler libfstrm-dev libmaxminddb-dev libnghttp2-dev libmnl-dev +``` + +### Fedora like distributions + +#### Update the system: +```bash +dnf upgrade +``` + +#### Install basic development tools: +```bash +dnf install @buildsys-build +``` + +#### Install prerequisites: +```bash +dnf install \ + libtool autoconf automake pkgconfig userspace-rcu-devel gnutls-devel libedit-devel lmdb-devel +``` + +#### Install optional packages: +```bash +dnf install \ + libcap-ng-devel systemd-devel libidn2-devel protobuf-c-devel fstrm-devel libmaxminddb-devel libnghttp2-devel libmnl-devel +``` + +When compiling on RHEL based system, the Fedora EPEL repository has to be +enabled. Also for RHEL 6, forward compatibility package gnutls30-devel +with newer GnuTLS is required instead of gnutls-devel. + +## 2. Install Knot DNS + +Get the source code: +```bash +git clone https://gitlab.nic.cz/knot/knot-dns.git +``` +Or extract source package to knot-dns directory. + +Compile the source code: +```bash +cd knot-dns +autoreconf -if +./configure +make +``` + +Install Knot DNS into system: +```bash +sudo make install +sudo ldconfig +``` + +# Running + +### 1. Ensure some configuration + +[doc/configuration.rst](doc/configuration.rst) + +Please see [samples/knot.sample.conf](samples/knot.sample.conf), +[project documentation](https://www.knot-dns.cz/documentation/), +or `man 5 knot.conf` for more details. Basically the configuration should specify: +- network interfaces +- served zones + +E.g. use the default configuration file: +```bash +cd /etc/knot +mv knot.sample.conf knot.conf +``` +Modify the configuration file: +```bash +editor knot.conf +``` + +### 2. Prepare working directory + +```bash +mv example.com.zone /var/lib/knot/ +``` + +### 3. Start the server + +[doc/operation.rst](doc/operation.rst) + +This can be done by running the `knotd` command. Alternatively, your distribution +should have an init script available, if you installed Knot DNS from a binary package. + +Start the server in foreground to see if it runs: +```bash +knotd -c /etc/knot/knot.conf +``` |