VitoTechnitiumDns/README.md
Corentin BARNICHON 0d7b62539d first commit
2026-04-16 18:13:36 +02:00

3.8 KiB

Vito Technitium DNS Plugin

A Vito plugin that adds Technitium DNS Server as a DNS provider, enabling zone and DNS record management directly from Vito.

Summary

Vito ships with Cloudflare as a built-in DNS provider. This plugin adds Technitium as an additional option using Vito's plugin system — no core files are modified.

Once enabled, the plugin registers Technitium in the DNS provider list. You can then connect your self-hosted Technitium instance, import zones, and create, update, or delete DNS records from the Vito dashboard.

Key differences from Cloudflare

  • Self-hosted: Technitium runs on your own infrastructure. You provide the server URL and port.
  • Authentication: Uses a single API token (generated from the Technitium web console), passed as a query parameter.
  • Zone-based: Technitium manages authoritative zones. Only Primary zones are listed by default.
  • No proxy support: Unlike Cloudflare, Technitium is a pure DNS server. The proxied flag is always false.
  • Record identification: Technitium does not assign numeric IDs to records. Records are identified by their domain name, type, and data. This plugin uses base64-encoded composite IDs internally.

Supported operations

  • Connect and authenticate with Technitium HTTP API
  • List and retrieve Primary zones
  • Create, update, and delete DNS records (A, AAAA, CNAME, MX, TXT, NS, SRV, CAA, PTR)

Supported record types

Type Content field Priority
A IPv4 address
AAAA IPv6 address
CNAME Target hostname
MX Mail server hostname
TXT Text value
NS Name server hostname
SRV Target hostname
CAA flags tag "value"
PTR Pointer name

Setup

  1. Open your Technitium DNS web console (usually http://your-server:5380).
  2. Navigate to Administration → Sessions → Create API Token and generate a non-expiring token.
  3. Enable the plugin in Vito (Admin → Plugins).
  4. Add a new DNS provider, select Technitium, and fill in:
    • Server URL: The full URL with port (e.g. http://dns.example.com:5380)
    • API Token: The token you generated
    • Zone Filter (optional): Comma-separated list of zones to show

Zone Filter

Technitium may host many zones (including internal, secondary, or forwarder zones). By default, the plugin only shows Primary zones and excludes internal ones.

If you want to further restrict which zones appear in Vito, use the optional Zone Filter field. Enter a comma-separated list of zone names (e.g. example.com, mysite.org). Only matching zones will be shown.

If the field is left empty, all Primary zones are returned.

Security Notes

  • The API token grants full access to your Technitium DNS server. Keep it secure.
  • If your Technitium instance is not exposed to the internet, make sure the Vito server can reach it on the configured port.
  • Consider using HTTPS if the Technitium web console is accessible over the network (Technitium supports TLS certificates).

Development

To develop locally, place the plugin at:

app/Vito/Plugins/LiittleCookie/VitoTechnitiumDns/

The namespace must be App\Vito\Plugins\LiittleCookie\VitoTechnitiumDns.

Then go to Admin → Plugins → Discover to install and enable it.

Community & Open Source

This plugin is community-built and open source. It is not officially maintained by the Vito core team.

Contributions, bug reports, and feature requests are welcome.

Licensed under the same terms as the Vito project.