- Rust 87.8%
- HTML 10.5%
- Makefile 1.4%
- Shell 0.3%
| .forgejo/workflows | ||
| crates | ||
| scripts | ||
| tests/integration | ||
| .gitignore | ||
| buildenv.sh | ||
| Cargo.toml | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
my_dns
What this is
Managed DNS daemon providing zones, records, forwarders, and listeners. Built with Rust, Tokio, Axum, and hickory-dns. It exposes both a DNS server (UDP/TCP port 53) and an IPC control plane over Unix sockets for zone and record management.
The server stores configuration in SQLite and supports caching with TTL-based eviction, recursive forwarding, and configurable listeners per zone.
What this repository contains
| Crate / Directory | Description |
|---|---|
my_dns_server |
DNS daemon + JSON-RPC control server — zone/record/forwarder/listener management |
my_dns_sdk |
Client library — models, record types, validation, protocol, auth, and socket helpers |
my_dns_ui |
Admin dashboard — Axum-based web UI served over Unix socket |
my_dns_cli |
Command-line interface for DNS management |
my_dns_examples |
SDK usage examples and integration tests |
tests/integration |
Integration test suite |
Key server capabilities:
zone.*— create, list, get, update, delete DNS zonesrecord.*— manage A, AAAA, CNAME, MX, NS, PTR, SOA, SRV, TXT, and CAA recordsforwarder.*— configure upstream forwarders and forward policieslistener.*— manage DNS listeners (address + port bindings)health.check/system.version/system.config_*— operational endpoints
Role in the stack
my_dns provides managed DNS resolution and zone administration within the Mycelium and Hero stack. It is consumed by other services that need programmatic DNS control — for example, assigning hostnames to VMs, routing internal traffic, or publishing service discovery records.
The server listens on a Unix socket at ~/hero/var/sockets/my_dns/rpc.sock for control-plane RPCs, and on configured UDP/TCP addresses for DNS queries.
Relation to ThreeFold
This technology is used within the ThreeFold ecosystem and was first deployed on the ThreeFold Grid. The component itself is designed as reusable infrastructure technology and should be understood by its technical function first, independent of any specific deployment.
Ownership
This repository is owned and maintained by TF-Tech NV, a Belgian company responsible for the development and maintenance of this technology.
License
This project is licensed under the Apache License 2.0 — see the LICENSE file for details.