feat: add Technitium DNS Home Assistant add-on

- repository.yaml manifest for HA add-on store
- technitium_dns add-on using upstream technitium/dns-server image
- config.yaml with ports 53/udp, 53/tcp, 5380/tcp and password schema
- Dockerfile symlinks /etc/dns to /data/dns for persistent config
- READMEs for repo and add-on
This commit is contained in:
2026-08-07 22:40:09 -04:00
commit 7412f5b2b7
6 changed files with 126 additions and 0 deletions

4
.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
# build artifacts
*.log
*.tmp
.DS_Store

42
README.md Normal file
View File

@@ -0,0 +1,42 @@
# Hassio_Addons
Home Assistant add-on repository hosting the Technitium DNS add-on.
## Add-ons
| Add-on | Description |
|---|---|
| [technitium_dns](./technitium_dns/) | Technitium DNS Server — local DNS with ad-blocking, web console, acts as secondary to a primary Technitium instance in Kubernetes via DNS Replication |
## Add this repository to Home Assistant
**Settings → Add-ons → Add-on Store → ⋮ (top right) → Repositories**
```
https://git.kenschiano.net/kschiano/Hassio_Addons.git
```
Then refresh the add-on store and install **Technitium DNS**.
## Repo layout
```
Hassio_Addons/
├── repository.yaml # repository manifest (read by HA)
└── technitium_dns/
├── config.yaml # add-on metadata, ports, schema
├── Dockerfile # thin layer on technitium/dns-server:latest
└── README.md
```
## Update workflow
1. Bump `version` in `technitium_dns/config.yaml`.
2. Commit and push to `git.kenschiano.net/kschiano/Hassio_Addons.git`.
3. In Home Assistant: refresh the add-on store, update the add-on, rebuild.
## Notes
- The add-on uses the upstream `technitium/dns-server` image directly — no custom build pipeline needed.
- Config persists to the add-on config volume (`/data/dns` symlinked to `/etc/dns`).
- For primary/secondary replication setup, see `technitium_dns/README.md`.

3
repository.yaml Normal file
View File

@@ -0,0 +1,3 @@
name: Technitium
url: https://git.kenschiano.net/kschiano/Hassio_Addons
maintainer: kschiano

14
technitium_dns/Dockerfile Normal file
View File

@@ -0,0 +1,14 @@
ARG BUILD_FROM=ghcr.io/hassio-addons/base:latest
FROM technitium/dns-server:latest
# Home Assistant add-on requirements
ENV DATA_DIR="/data/dns"
# Technitium stores its config in /etc/dns by default; use the add-on data
# directory so settings persist across restarts.
RUN mkdir -p /data/dns && \
ln -s /data/dns /etc/dns
# Home Assistant expects a run command via S6/entrypoint; Technitium ships its own.
ENTRYPOINT []
CMD ["dotnet", "DnsServerApp.dll"]

38
technitium_dns/README.md Normal file
View File

@@ -0,0 +1,38 @@
# Technitium DNS - Home Assistant Add-on
Runs the [Technitium DNS Server](https://technitium.com/dns/) inside Home Assistant as a supervised add-on.
## Features
- Ad-blocking DNS server with web console on port 5380
- Local DNS records, conditional forwarding, DNS-over-TLS/HTTPS
- Persists config to the add-on config volume
- Designed to act as **secondary** to a primary Technitium instance via DNS Replication
## Installation
1. Add this repository in Home Assistant:
**Settings → Add-ons → Add-on Store → ⋮ → Repositories**
```
https://git.kenschiano.net/kschiano/Hassio_Addons.git
```
2. Refresh the add-on store, then install **Technitium DNS**.
3. Set `admin_password` and `timezone` in the add-on config.
4. Start the add-on and open the web UI at `http://homeassistant.local:5380`.
## Failover / Replication setup
This add-on is intended to run as a **secondary** to a primary Technitium instance deployed to Kubernetes. See the repository root README for the full primary/secondary replication plan.
Quick steps:
1. On the **Primary** (k8s): Settings → Replication → generate API key, add this host as secondary (`https://homeassistant.local:5380`).
2. On this add-on: Settings → Replication → set the same API key, enable secondary mode.
## Updating the add-on
The add-on pulls `technitium/dns-server:latest` upstream. To update:
1. Rebuild the add-on image: **Settings → Add-ons → Technitium DNS → Rebuild**
2. Or restart the add-on after bumping `version` in `config.yaml`.
## Repository
Source: https://git.kenschiano.net/kschiano/Hassio_Addons

View File

@@ -0,0 +1,25 @@
name: Technitium DNS
version: 1.0.0
slug: technitium_dns
description: Technitium DNS Server add-on for Home Assistant
arch:
- amd64
- aarch64
- armv7
init: false
url: https://github.com/technitiumsoftware/dnsserver
webui: http://[HOST]:[PORT:5380]/
ports:
53/udp: 53
53/tcp: 53
5380/tcp: 5380
map:
- addon_config:rw
- ssl
options:
admin_password: CHANGE_ME
timezone: UTC
schema:
admin_password: password
timezone: str
image: technitium/dns-server