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