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:
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
# build artifacts
|
||||||
|
*.log
|
||||||
|
*.tmp
|
||||||
|
.DS_Store
|
||||||
42
README.md
Normal file
42
README.md
Normal 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
3
repository.yaml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
name: Technitium
|
||||||
|
url: https://git.kenschiano.net/kschiano/Hassio_Addons
|
||||||
|
maintainer: kschiano
|
||||||
14
technitium_dns/Dockerfile
Normal file
14
technitium_dns/Dockerfile
Normal 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
38
technitium_dns/README.md
Normal 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
|
||||||
25
technitium_dns/config.yaml
Normal file
25
technitium_dns/config.yaml
Normal 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
|
||||||
Reference in New Issue
Block a user