lazydns

Configuration (Core)

This document describes the active configuration shape used by lazydns. The project uses a plugin-driven configuration where most runtime behavior is provided by plugins declared in the plugins list. Example configuration files are available under the examples/ directory and are recommended as a starting point.

Top-level fields

Note: the legacy server section is no longer used — server listeners are configured as plugins (e.g. udp_server, tcp_server, doh_server, dot_server, doq_server).

Minimal example

# Logging
log:
  level: info
  format: text

# Enable admin API and metrics
admin:
  enabled: true
  addr: "127.0.0.1:8080"

metrics:
  enabled: true
  addr: "127.0.0.1:9090"

# Plugin list (each plugin is an object with `tag`, `type` and `args`)
plugins:
  - tag: forward
    type: forward
    args:
      concurrent: 2
      upstreams:
        - addr: "8.8.8.8:53"
        - addr: "1.1.1.1:53"

  - tag: udp_server
    type: udp_server
    args:
      entry: forward
      listen: ":5354"

Plugin declaration shape

Each entry in the top-level plugins array follows this shape:

Example:

- tag: domain_reject_list
  type: domain_set
  args:
    files:
      - "reject-list.txt"
    auto_reload: true

Common plugin argument patterns

Paths and updates

Where to find examples

Further reading