about summary refs log tree commit diff
path: root/tools/dnsmasq-leases-html/README.md
blob: 2437deb57e09707c64ec7fa065ce4ba8b6d54772 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Generates a static HTML page with a list of all the leases allocated by `dnsmasq`.

A simple template written in the jinja syntax is used.

The file containing the leases is expected to be at `/var/lib/dnsmasq/dnsmasq.leases`, but this can be overwritten by setting the environment variable `DNSMASQ_LEASES`.

The output of the script is written to `/var/lib/dnsmasq/leases.html` by default, but the destination can be overwritten by setting the environment variable `DNSMASQ_LEASES_OUT`.

The script can be executed automatically by `dnsmasq` if the configuration for `dhcp-script` is set to the path of the script. This will only be executed when a *new* lease is created or an *old* lease is deleted. To execute the script when a lease is *updated* you need to use the configuration `script-on-renewal`.

A configuration looks like this:

``` ini
dhcp-script=${pkgs.tools.dnsmasq-to-html}/bin/dnsmasq-leases-html
script-on-renewal
```

## nginx
To serve the page with nginx, you can use the following configuration:

``` nix
services.nginx = {
  enable = true;
  virtualHosts."dnsmasq" = {
    listen = [
      {
        addr = "192.168.6.1";
        port = 8067;
      }
    ];
    locations."/" = {
      root = "/var/lib/dnsmasq";
      index = "leases.html";
    };
  };
};
```